Platforma developerska Samsung SmartTV

smart_tv_32

Współczesne telewizory oferują znacznie więcej niż tylko „zwykłe” oglądanie programów telewizyjnych. Praktycznie standardem w obecnie sprzedawanych telewizorach jest dostęp do internetu oraz możliwość uruchamiania dedykowanych aplikacji. Jednym z liderów tego rynku jest koreański producent, firma Samsung. W swoich telewizorach i czytnikach BlueRay udostępnia ona platformę SmartTV, która umożliwia instalację aplikacji pobranych z serwisu Samsung Hub. Dodatkowo wykorzystując środowisko developerskie można samodzielnie tworzyć własne aplikacje. Taką aplikację można później wgrać do swojego telewizora lub udostępnić w serwisie Samsunga w ogólnodostępnym sklepie” z aplikacjami. W tym artykule chciałbym przedstawić, możliwości platformy developerskiej dla środowiska SmartTV.


Pierwsza edycja systemu SmartTV miała miejsce w 2010 roku. Od tego czasu co roku wydawana jest nowa seria telewizorów oraz dedykowane dla niej środowisko programistyczne. Z roku na rok każda następna odsłona środowiska SmartTV przynosi nowe możliwości. Obecnie dostępna jest już testowa wersja platformy na rok 2013. Niestety na stronie producenta nie ma jeszcze bliższych informacji o przewidywanej specyfikacji. Poniżej zamieszczam tabelę opisującą  możliwości każdej z dotychczasowych platform:

Źródło: http://www.samsungdforum.com/Devtools/Spec

  • AppEngine – silnik środowiska. Od wersji 2011 wspierany jest html5. Niestety implementacja html5 jest tylko częściowa i według moich testów przeprowadzonych na podstawie strony http://html5test.com/ wynosi tylko 268 punktów na 500 możliwych. Dla przykładu przeglądarka Firefox 17 uzyskała w tym samym teście 392 punkty.
  • Flash – obsługa Flash w wersji 10.1 oraz języka ActionScript 3.
  • DRM – mechanizm obsługi zabezpieczonych treści.
  • VOD – wspierane algorytmy usługi wideo na życzenie.
  • Live streaming–algorytmy odtwarzania treści multimedialnych na żywo.

Instalacja środowiska IDE
Do wyboru mamy dwie wersje IDE: plugin do Eclipsa lub autorską aplikację Samsunga. Najnowsza wersja 4.0 jest jeszcze w fazie beta, dlatego zainstalowałem ostatnią stabilną wersję 3.5.2 z edytorem Eclipse. Producent dostarcza paczkę gotową do instalacji. Znajdują się w niej Eclipse, plugin Samsunga oraz serwera Apache. Użytkownicy Linuxa lub systemu Mac nie będą zadowoleni. Producent udostępnił tylko wersje IDE dla systemu Windows w wersji x86. Przed instalacją musimy się upewnić, czy mamy zainstalowane środowisko Java JRE w wersji 1.6 lub wyższej, bibliotekę DirectX, biblioteki .NET Framework2.0 oraz Visual C++ Redistributable Package 2005, 2010. Podczas instalacji nie miałem zainstalowanej Javy w wersji 32-bitowej oraz jednej z bibliotek Visual C++. O ile błąd niekompatybilności Javy był dość łatwy do identyfikacji (Eclipse się nie uruchamiał się i pojawiło wyskakujące okienko z informacją o niekompatybilności bibliotek dll), to drugi błąd okazał się znacznie mniej czytelny. Był problem z uruchomieniem Emulatora, ale nie pojawiały się żadne komunikaty o błędach. Dopiero po przejrzeniu logów systemowych stało się jasne, że brakuje biblioteki Visual C++. Dobrze by było, żeby projektanci pluginu zwrócili większą uwagę na obsługę błędów uruchomienia Emulatora.

Funkcjonalności IDE
Po instalacji środowiska IDE, zobaczmy, jakie funkcje mamy do dyspozycji. Jeszcze przed uruchomieniem Eclipsa zwracają uwagę odnośniki do emulatorów — oddzielne dla każdej z wersji systemu 2010, 2011 oraz 2012. Dodatkowo jest narzędzie do automatyzacji testów. Po uruchomieniu Eclipsa widać nową opcję w menu: „Samsung SMART TV SDK”. Są w niej następujące opcje:

Jest możliwość importowania, tworzenia, uruchomienia, debugowania oraz generowania pakietu aplikacji. Projektowanie stron ułatwia edytor scen. Można w nim wizualnie rozmieszczać elementy html na stronie oraz ustalać ich parametry.

Po chwili pracy od razu zaczynam lubić to środowisko. Wszystkie opcje działają bez zarzutu. Bazowanie na środowisku Eclipse wydaje się być dobrym posunięciem. Uzyskujemy silne środowisko IDE uzupełnione o funkcje potrzebne do tworzenia aplikacji w środowisku SmartTV.

Struktura aplikacji
Środowisko SmartTV pozwala tworzyć aplikacje wykorzystujące wszystkie funkcjonalności telewizora. Są one oparte na strukturze aplikacji WWW i uruchamiane w środowisku przeglądarki WWW. Za pomocą dodatkowych pluginów użytkownicy aplikacji mają na przykład dostęp do następujących funkcji:

  • zmiana głośności telewizora, zmienianie programów, uruchamianie strumienia video z zewnętrznego źródła,
  • zapisywanie i odczytywanie danych zapisanych w pamięci TV za pomocą File Api.

Mamy do dyspozycji dwa rodzaje aplikacji: JavaScript i Flash. Przy wyborze aplikacji JS możemy korzystać z HTML5, CSS3 oraz JQuery w wersji 1.4.2. Możemy oczywiście dodać do swojego projektu nowszą wersję JQuery. Chcąc uruchomić animację Flash, możemy wykorzystać Flash w wersji 10.1 oraz ActionScript 3.0.
Aplikacja SmartTV składa się z następujących elementów:

  • index.html – struktura aplikacji,
  • Main.css – style,
  • Main.js – zachowanie aplikacji,
  • Config.xml – zawiera informacje o środowisku, wersji aplikacji, trybie wyświetlania aplikacji.

Aplikacja może być wyświetlana w trzech różnych trybach:

  • aplikacja pełnoekranowa,
  • aplikacja wyświetlana na części ekranu – na pozostałej części może być wyświetlany obraz telewizyjny,
  • pasek – aplikacja jest uruchomiona w trakcie normalnej pracy telewizora.

Niestety, jak wynika z dokumentacji w Europie dostępne są wyłącznie aplikacje w trybie pełnoekranowym.

Uruchomienie aplikacji
W każdym momencie projektowania aplikacji możemy uruchomić ją w terminalu. Nie ma jednak większej przyjemności niż uruchomienie aplikacji na prawdziwym telewizorze. Działanie aplikacji na telewizorze może różnić się od sposobu działania na emulatorze:

  • mniejsza ilość dostępnej pamięci, mogą wystąpić błędy przekroczenia zajętości pamięci,
  • czasy reakcji przycisków zdalnego sterowania mogą się różnić,
  • rzeczywisty obraz na TV może być wyświetlany odmiennie,
  • odtwarzacz video działa odmiennie.

Z tych względów jak najszybciej należy zweryfikować poprawność działania aplikacji na rzeczywistym TV. Proces wdrożenia aplikacji na telewizor składa się z kilku etapów opisanych poniżej.

  1. Pakowanie aplikacji
    Aby można było wdrożyć aplikację, należy ja spakować. Polega to na umieszczeniu odpowiednich informacji o aplikacji w plikach konfiguracyjnych oraz scaleniu wszystkich plików projektu do jednego w formacie .zip.
  2. Umieszczenie na serwerze WWW
    Spakowaną aplikację należy umieścić na serwerze WWW w katalogu http://<ipAddress>/widget/. Serwer WWW powinien znajdować się w tej samej podsieci co telewizor.
  3. Podłączenie TV do Internetu
    Telewizor SmartTV musi być podłączony do sieci internetowej. Ponadto w tej samej podsieci musi być podłączony serwer WWW, na którym wgrana jest aplikacja.
  4. Zalogowanie się do systemu SmartTV
    Telewizor musi być uruchomiony w trybie programowania. W tym celu musimy w aplikacji SmartHUB zalogować się na konto „develop”. Jeśli wcześniej nie było założone konto o takiej nazwie, musimy je utworzyć.
  5. Uruchomienie aplikacji
    Po wykonaniu tych czynności możemy zainstalować aplikację. W tym celu wybieramy następujące opcje w telewizorze: Development -> Settings -> User Application Synchronization. Zostaną zainstalowane lub zaktualizowane wszystkie aplikacje, jakie umieściliśmy na serwerze WWW.
    Szczegółowe instrukcje na temat wdrożenia aplikacji możemy znaleźć na stronie: http://www.samsungdforum.com/upload_files/files/guide/data/html/html_3/getting_started/test_app_on_tv.html

Umieszczenie aplikacji w AppStore Samsunga
Po zakończeniu testów możemy umieścić aplikację na serwerach Samsunga i udostępnić ją innym użytkownikom. Aby to zrobić należy:

  • zerejestrować się jako sprzedawca aplikacji,
  • zarejestrować nową aplikację w panelu sprzedawcy aplikacji  – w tym celu definiujemy nazwę, kategorię, język, w których krajach ma być dostępna oraz cenę zakupu aplikacji przez klienta,
  • otrzymać unikalną nazwę oraz identyfikator aplikacji,
  • wgrać aplikację i przesłać ją do weryfikacji.

Po pozytywnej weryfikacji aplikacja jest dostępna w App Store Samsunga.

Podsumowanie
Telewizory, obok smartfonów i tabletów, stają się kolejnymi urządzeniami, na których możemy uruchamiać aplikacje. Rozwiązanie, które proponuje Samsung, wydaje się być ciekawą propozycją. Duża popularność telewizorów wśród nabywców w połączeniu z przygotowanym środowiskiem developerskim zachęca twórców do tworzenia aplikacji na tę platformę. Można się spodziewać, że będzie to coraz powszechniejszy trend.

Lista odnośników

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *