Haftasonu evde internete bağlı Samsung televizyondaki uygulamalardan Youtube ile müzik dinlerken <<Televizyonların uygulama geliştirme ortamları nasıldır acaba>> diye düşündüm. Akşamında beyin takımı ile konuşurken tesadüfen yine bu konu açıldı ve ardından ufak bir deneme yapmak için araştırmaya giriştim.
Literatürü ve platformu farklı olsa da bir web geliştiricisinin kolaylıkla adapte olabileceği bir ortam söz konusu. Buyrun :
- Mimari, .NET Framework ile benzer rolde bir çatı üzerine kurulu : AppEngine
- Uygulamaların yüklenmesi, kaldırılması ve diğer işlemler için Application Manager kullanılıyor.
- Uygulama ile ilgili tüm ayarlar, config.xml dosyasında yer alır. Xml tabanlı bu dosyada yer alan çeşitli xml etiketleri ile uygulamanın tam ekran mı çalıştırılacağı, genişlik ve yüksekliği, versiyonu vb. bilgiler, uygulama bir televizyona kurulurken kullanılır. config.xml, uygulamanın root klasöründe yer almalıdır.
- Yazılım geliştirme ortamı için Samsung Smart TV Software Development Kit (SDK) indirilip kurulmalıdır. Uygulamanın yapısal görüntüsü için html, görsel dizaynı için css, davranışlarını programlamak için javascript dosyaları hazırlanır.
- Bir uygulama çalıştırıldığında AppEngine önce config.xml dosyasına bakar ve gerekli konfigürasyon bilgilerini alır, güncel bir versiyon var mı diye kontrol eder. Ardından programın giriş noktası index.html dosyasına bakar.

- SDK'da sunulan hazır javascript plugin kütüphanelerinden faydalanarak televizyon kanalları dışında video yayını yapmak, ses açmak, imaj galerisi hazırlamak, dosya sistemi ile çalışmak, kumadadan yapılan girişleri yakalamak oldukça kolay.
- Uygulamanın yazılım geliştirme sürecinde test yapmak için internete bağlı bir Samsung Smart TV olması lazım. Lokal yada uzakta yer alan Apache sunucusu üzerine dağıtılan kodları, televizyona geliştirici logini olarak yüklemek mümkün. Bu işlemi 1 defa yaptıktan sonra "Senkronize Et" diyerek kodları doğrudan televizyon üzerinde test edebilirsiniz. Programı televizyona yayınlamadan önce SDK ile gelen ve görsel editörden kullanılabilen Smart TV Emülatör kullanılarak da test yapılabilir.
- Bir Smart TV uygulaması scene'lerden oluşur. Her scene, bir web sayfası gibi düşünülebilir. Scene üzerinde Button, DatePicker, CheckBox gibi hazır komponentler, görsel editörde Component Library'den sürükle-bırak yöntemiyle kullanılabilir.
- Bunların haricinde Application Manager ve AppEngine çatısı, üyelik sistemi için Single Sign On (Tek oturum açma) altyapısına destek vermektedir. Bu sayede televizyondan uygulamayı kullanırken bir defa login olup, uygulamayı daha sonra kullandığımızda tekrar login olmamıza gerek kalmamaktadır. Bütün uygulamaların üyelik sistemi Samsung Smart TV'de bağımsız bir ekrandan yönetilir.
- Uygulama geliştiriciler kaynak olarak SDK'yı kurduktan sonra menüdeki HELP'den faydalanabilirler. Bunun yanında aşağıda paylaştığım Documents linkinde bulabileceğiniz 100 sayfalık App Development Guide for Samsung TV, detaylı başvuru kaynağı olarak kullanılabilir.
Kaynaklar
SDK : http://www.samsungdforum.com/Devtools/Sdkdownload
Documents : http://www.samsungdforum.com/upload_files/files/guide/data/html/documents2.html
Tutorial : http://www.samsungdforum.com/upload_files/files/guide/data/html/tutorials2.html
Developer : http://developer.samsung.com/home.do
Spec & Feature : http://www.samsungdforum.com/Devtools/Spec