Затвори рекламата

Apple миналата седмица представи, наред с други неща новия Apple TV с операционната система tvOS. Фактът, че приложенията от App Store могат да се инсталират в новата черна кутия със сигурност зарадва най-много разработчиците.

Разработчиците имат две възможности. Те могат да напишат родно приложение, което има пълен достъп до хардуера на Apple TV. Наличният SDK (набор от библиотеки за разработчици) е много подобен на това, което разработчиците вече познават от iPhone, iPad, а езиците за програмиране са същите - Objective-C и по-младият Swift.

Но за по-прости приложения Apple предложи на разработчиците втора опция под формата на TVML - Television Markup Language. Ако смятате, че името TVML изглежда подозрително като HTML, вие сте прави. Това наистина е език за маркиране, базиран на XML и много подобен на HTML, само че е много по-прост и има по-строг синтаксис. Но е абсолютно перфектен за приложения като Netflix. И потребителите също ще се възползват, защото строгостта на TVML ще направи мултимедийните приложения да изглеждат и работят почти по същия начин.

Път до първото приложение

Така че първото нещо, което трябваше да направя, беше да изтегля новата бета версия на средата за разработка на Xcode (налична е версия 7.1 тук). Това ми даде достъп до tvOS SDK и успях да започна нов проект, специално насочен към четвъртото поколение Apple TV. Приложението може да бъде само за tvOS или кодът може да се добави към съществуващо приложение за iOS, за да се създаде „универсално“ приложение – модел, подобен на приложенията за iPhone и iPad днес.

Първи проблем: Xcode предлага само възможността за създаване на родно приложение. Но много бързо намерих раздел в документацията, който ще помогне на разработчиците да променят този скелет и да го подготвят за TVML. По принцип това са няколко реда код в Swift, които само на Apple TV създават обект на цял екран и зареждат основната част от приложението, което вече е написано на JavaScript.

Проблем втори: TVML приложенията наистина приличат много на уеб страница и следователно целият код се зарежда от интернет. Самото приложение всъщност е просто "bootloader", то съдържа само минимум код и най-основните графични елементи (икона на приложението и други подобни). В крайна сметка успешно поставих основния код на JavaScript директно в приложението и получих възможност поне да показвам персонализирано съобщение за грешка, когато Apple TV не е свързан към интернет.

Третият малък проблем: iOS 9 и с него tvOS стриктно изискват цялата комуникация към интернет да се извършва криптирана чрез HTTPS. Това е функция, въведена в iOS 9 за всички приложения и причината е натиск върху поверителността на потребителите и сигурността на данните. Така че ще е необходимо да разположите SSL сертификат на уеб сървъра. Може да бъде закупен само за $5 (120 крони) на година или можете да използвате например услугата CloudFlare, която ще се погрижи за HTTPS сама, автоматично и без инвестиции. Вторият вариант е да изключите това ограничение за приложението, което засега е възможно, но определено не бих го препоръчал.

След няколко часа четене на документацията, където все още има случайни дребни грешки, разработих много елементарно, но работещо приложение. Той показва популярния текст „Hello World“ и два бутона. Прекарах около два часа, опитвайки се да накарам бутона да бъде активен и наистина да направя нещо. Но имайки предвид ранните часове на сутринта, предпочетох да заспя… и това беше хубаво нещо.

Онзи ден ми хрумна добрата идея да изтегля готово примерно приложение за TVML директно от Apple. Намерих това, което търсех много бързо в кода и бутонът беше активен и работещ. Освен всичко друго, открих и първите две части от урока за tvOS в Интернет. И двата ресурса помогнаха много, така че започнах нов проект и започнах първото си истинско приложение.

Първо реално приложение

Започнах изцяло от нулата, първата страница на TVML. Предимството е, че Apple е подготвил 18 готови TVML шаблона за разработчици, които просто трябва да бъдат копирани от документацията. Редактирането на един шаблон отне около час, главно защото подготвях нашия API да изпрати готовия TVML с всички необходими данни до Apple TV.

Вторият шаблон отне само около 10 минути. Добавих два JavaScript - по-голямата част от кода в тях идва директно от Apple, така че защо да изобретяваме колелото. Apple са подготвили скриптове, които се грижат за зареждането и показването на TVML шаблони, включително препоръчителния индикатор за зареждане на съдържание и показване на възможни грешки.

За по-малко от два часа успях да събера едно много голо, но работещо приложение PLAY.CZ. Може да покаже списък с радиостанции, да го филтрира по жанр и да стартира радиото. Да, много неща не са в приложението, но основните неща работят.

[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]

Предимството е, че приложението всъщност не е нищо повече от специална версия на уебсайта, която се захранва от JavaScript и можете също да използвате CSS, за да промените външния вид.

Apple все още изисква още няколко неща за подготовка. Иконата на приложението не е една, а две - по-малка и по-голяма. Новото е, че иконата не е просто изображение, а съдържа паралакс ефект и е съставена от 2 до 5 слоя (фон, обекти в средата и преден план). Всички активни изображения в приложението могат да съдържат същия ефект.

Всеки слой всъщност е просто изображение на прозрачен фон. Apple подготви собствено приложение за компилиране на тези многослойни изображения и обещава скоро да пусне плъгин за експортиране за Adobe Photoshop.

Друго изискване е изображение "На горния рафт". Ако потребителят постави приложението на видно място в най-горния ред (на най-горния рафт), приложението трябва също да предостави съдържание за работния плот над списъка с приложения. Може да има или просто обикновена снимка, или може да бъде активна зона, например със списък с любими филми или, в нашия случай, радиостанции.

Много разработчици тепърва започват да изследват възможностите на новата tvOS. Добрата новина е, че писането на приложение за съдържание е много лесно и Apple е извървяла дълъг път за разработчиците с TVML. Създаването на приложение (например PLAY.CZ или iVyszílő) трябва да е лесно и бързо. Има голям шанс голям брой приложения да бъдат готови едновременно с пускането в продажба на новия Apple TV.

Писането на родно приложение или пренасянето на игра от iOS към tvOS ще бъде по-предизвикателно, но не много. Най-голямото препятствие ще бъдат различни контроли и ограничение от 200 MB за приложение. Родното приложение може да изтегли само ограничена част от данните от магазина, а всичко останало трябва да се изтегли допълнително и няма гаранция, че системата няма да изтрие тези данни. Разработчиците обаче със сигурност ще се справят с това ограничение бързо, също благодарение на наличието на набор от инструменти, наречени „App Thinning“, които също са част от iOS 9.

Теми: , ,
.