Zamknij reklame

Apple w zeszłym tygodniu zaprezentowało m.in nowego Apple TV z systemem operacyjnym tvOS. Największą radość twórców z pewnością sprawił fakt, że w nowej czarnej skrzynce można zainstalować aplikacje z App Store.

Deweloperzy mają dwie możliwości. Mogą napisać natywną aplikację, która będzie miała pełny dostęp do sprzętu Apple TV. Dostępny SDK (zestaw bibliotek dla programistów) jest bardzo podobny do tego, co programiści znają już z iPhone'a, iPada, a języki programowania są takie same - Objective-C i młodszy Swift.

Jednak w przypadku prostszych aplikacji Apple zaoferował programistom drugą opcję w postaci TVML - Television Markup Language. Jeśli uważasz, że nazwa TVML podejrzanie przypomina HTML, masz rację. Jest to tak naprawdę język znaczników oparty na XML i bardzo podobny do HTML, tyle że jest znacznie prostszy i ma bardziej rygorystyczną składnię. Ale jest absolutnie idealny do aplikacji takich jak Netflix. Użytkownicy również na tym skorzystają, ponieważ rygorystyczność TVML sprawi, że aplikacje multimedialne będą wyglądać i działać tak samo.

Ścieżka do pierwszej aplikacji

Pierwszą rzeczą, którą musiałem zrobić, było pobranie nowej wersji beta środowiska programistycznego Xcode (dostępna jest wersja 7.1 tutaj). Dzięki temu uzyskałem dostęp do zestawu SDK systemu tvOS i mogłem rozpocząć nowy projekt ukierunkowany specjalnie na Apple TV czwartej generacji. Aplikacja może działać tylko na tvOS lub kod można dodać do istniejącej aplikacji na iOS, aby stworzyć „uniwersalną” aplikację – model podobny do dzisiejszych aplikacji na iPhone'a i iPada.

Problem pierwszy: Xcode oferuje jedynie możliwość tworzenia aplikacji natywnej. Ale bardzo szybko znalazłem sekcję w dokumentacji, która pomoże programistom zmienić ten szkielet i przygotować go dla TVML. Zasadniczo jest to kilka linii kodu w Swift, które bezpośrednio na Apple TV tworzą obiekt pełnoekranowy i ładują główną część aplikacji, która jest już napisana w JavaScript.

Problem drugi: aplikacje TVML są naprawdę bardzo podobne do strony internetowej, dlatego też cały kod jest również ładowany z Internetu. Sama aplikacja to właściwie tylko „bootloader”, zawiera jedynie minimum kodu i najbardziej podstawowe elementy graficzne (ikonę aplikacji i tym podobne). Ostatecznie udało mi się umieścić główny kod JavaScript bezpośrednio w aplikacji i uzyskać możliwość przynajmniej wyświetlenia niestandardowego komunikatu o błędzie, gdy Apple TV nie jest podłączony do Internetu.

Trzeci mały problem: iOS 9, a wraz z nim tvOS, rygorystycznie wymagają, aby cała komunikacja z Internetem odbywała się w sposób szyfrowany za pośrednictwem protokołu HTTPS. Jest to funkcja wprowadzona w iOS 9 dla wszystkich aplikacji, a jej powodem jest presja na prywatność użytkowników i bezpieczeństwo danych. Konieczne będzie więc wdrożenie certyfikatu SSL na serwerze WWW. Można go kupić już za 5 dolarów (120 koron) rocznie lub można skorzystać np. z usługi CloudFlare, która sama, automatycznie i bez inwestycji, zajmie się HTTPS. Drugą opcją jest wyłączenie tego ograniczenia dla aplikacji, co na razie jest możliwe, ale zdecydowanie tego nie polecam.

Po kilku godzinach czytania dokumentacji, w której wciąż zdarzają się drobne błędy, opracowałem bardzo prostą, ale działającą aplikację. Wyświetlał popularny tekst „Hello World” i dwa przyciski. Spędziłem około dwóch godzin, próbując aktywować przycisk i faktycznie coś zrobić. Ale biorąc pod uwagę wczesną porę, wolałem iść spać… i to było dobre.

Któregoś dnia wpadłem na genialny pomysł, aby pobrać gotową przykładową aplikację TVML bezpośrednio od Apple. Bardzo szybko znalazłem w kodzie to, czego szukałem, a przycisk był aktywny i działał. Między innymi odkryłem w Internecie także dwie pierwsze części tutoriala dotyczącego tvOS. Obydwa zasoby bardzo mi pomogły, więc rozpocząłem nowy projekt i uruchomiłem moją pierwszą prawdziwą aplikację.

Pierwsza prawdziwa aplikacja

Zacząłem zupełnie od zera, od pierwszej strony TVML. Zaletą jest to, że Apple przygotowało dla programistów 18 gotowych szablonów TVML, które wystarczy skopiować z dokumentacji. Edycja jednego szablonu zajęła około godziny, głównie dlatego, że przygotowywałem nasze API do przesłania gotowego TVML ze wszystkimi niezbędnymi danymi do Apple TV.

Drugi szablon zajął tylko około 10 minut. Dodałem dwa skrypty JavaScript — większość zawartego w nich kodu pochodzi bezpośrednio od Apple, więc po co wymyślać koło na nowo. Apple przygotowało skrypty, które dbają o ładowanie i wyświetlanie szablonów TVML, w tym o zalecany wskaźnik ładowania treści i wyświetlanie ewentualnych błędów.

W niecałe dwie godziny udało mi się stworzyć bardzo gołą, ale działającą aplikację PLAY.CZ. Może wyświetlić listę stacji radiowych, może filtrować ją według gatunku i może uruchomić radio. Tak, wielu rzeczy nie ma w aplikacji, ale podstawy działają.

[youtube id=”kLKvWC-rj7Q” szerokość=”620″ wysokość=”360″]

Zaletą jest to, że aplikacja to w zasadzie nic innego jak specjalna wersja strony internetowej, która działa w oparciu o JavaScript i można także modyfikować jej wygląd za pomocą CSS.

Apple potrzebuje jeszcze kilku rzeczy do przygotowania. Ikona aplikacji to nie jedna, ale dwie – mniejsza i większa. Nowością jest to, że ikona nie jest prostym obrazem, ale zawiera efekt paralaksy i składa się z 2 do 5 warstw (tło, obiekty na środku i na pierwszym planie). Wszystkie aktywne obrazy w aplikacji mogą zawierać ten sam efekt.

Każda warstwa to właściwie tylko obraz na przezroczystym tle. Apple przygotowało własną aplikację do kompilacji tych warstwowych obrazów i obiecuje wkrótce udostępnić wtyczkę eksportującą do programu Adobe Photoshop.

Kolejnym wymogiem jest wizerunek „z najwyższej półki”. Jeśli użytkownik umieści aplikację w widocznym miejscu w górnym rzędzie (na najwyższej półce), aplikacja musi także udostępniać zawartość na komputer nad listą aplikacji. Może to być albo zwykły obrazek, albo może to być obszar aktywny, na przykład z listą ulubionych filmów lub, w naszym przypadku, stacji radiowych.

Wielu programistów dopiero zaczyna odkrywać możliwości nowego tvOS. Dobra wiadomość jest taka, że ​​pisanie aplikacji obsługującej treści jest bardzo łatwe, a firma Apple przeszła długą drogę dla programistów dzięki TVML. Budowa aplikacji (np. PLAY.CZ lub iVyszílő) powinna być łatwa i szybka. Jest duża szansa, że ​​w momencie pojawienia się w sprzedaży nowego Apple TV duża liczba aplikacji będzie gotowa.

Napisanie aplikacji natywnej lub przeniesienie gry z iOS na tvOS będzie większym wyzwaniem, ale nie większym. Największą przeszkodą będą różne elementy sterujące i limit 200 MB na aplikację. Aplikacja natywna może pobrać tylko ograniczoną część danych ze sklepu, a całą resztę trzeba pobrać dodatkowo i nie ma gwarancji, że system tych danych nie usunie. Jednak programiści z pewnością szybko poradzą sobie z tym ograniczeniem, także dzięki dostępności zestawu narzędzi o nazwie „App Thinning”, które również wchodzą w skład iOS 9.

Tematy: , ,
.