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 апликациите се навистина многу слични на веб-страница, и затоа целиот код е исто така вчитан од Интернет. Самата апликација е всушност само „подигач“, содржи само минимум код и најосновните графички елементи (икона за апликација и слично). На крајот, успешно го ставив главниот код на JavaScript директно во апликацијата и добив можност барем да прикажам приспособена порака за грешка кога Apple TV не е поврзан на Интернет.
Третиот мал проблем: iOS 9 и со него tvOS строго бараат целата комуникација кон Интернет да се одвива шифрирана преку HTTPS. Ова е функција воведена во iOS 9 за сите апликации и причината е притисокот врз приватноста на корисниците и безбедноста на податоците. Значи, ќе биде неопходно да се распореди SSL сертификат на веб-серверот. Може да се купи за само 5 долари (120 круни) годишно, или можете да ја користите, на пример, услугата CloudFlare, која ќе се грижи за HTTPS сама по себе, автоматски и без инвестиции. Втората опција е да се исклучи ова ограничување за апликацијата, што засега е можно, но дефинитивно не би го препорачал.
По неколку часа читање на документацијата, каде што сè уште има повремени ситни грешки, разработив една многу основна, но работна апликација. Го прикажуваше популарниот текст „Здраво свет“ и две копчиња. Поминав околу два часа обидувајќи се да го натерам копчето да биде активно и всушност да направам нешто. Но, со оглед на раните утрински часови, претпочитав да спијам... и тоа беше добра работа.
Пред некој ден, имав светла идеја да преземам готов примерок TVML апликација директно од Apple. Го најдов тоа што го барав многу брзо во кодот и копчето беше во живо и работеше. Меѓу другото, на Интернет ги открив и првите два дела од туторијалот за tvOS. Двата ресурси помогнаа многу, па започнав нов проект и ја започнав мојата прва вистинска апликација.
Првата вистинска апликација
Почнав целосно од нула, првата ТВМЛ страница. Предноста е што Apple подготви 18 готови TVML шаблони за програмери кои само треба да се копираат од документацијата. Уредувањето на еден шаблон траеше околу еден час, првенствено затоа што го подготвував нашето API за испраќање на готовиот TVML со сите потребни податоци до Apple TV.
Вториот шаблон траеше само 10 минути. Додадов два JavaScript-и - најголемиот дел од кодот во нив доаѓа директно од Apple, па зошто повторно да го измислиме тркалото. Apple подготви скрипти кои се грижат за вчитување и прикажување на TVML шаблони, вклучувајќи го препорачаниот индикатор за вчитување на содржината и можниот приказ на грешки.
За помалку од два часа, успеав да составам многу гола, но функционална апликација PLAY.CZ. Може да прикаже список на радио станици, може да го филтрира по жанр и може да го стартува радиото. Да, многу работи не се во апликацијата, но основите функционираат.
[YouTube id=”kLKvWC-rj7Q” ширина=”620″ висина=”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.
Убава статија. Благодарам. Можеби со текот на времето ќе видиме од Apple и корисничко решение за подготовка на поедноставни апликации (решенија), како што е можно со FileMaker за iOS, без јас да бидам програмер.
Во теорија... подигнувачот на Swift е неколку линии кои се уште се исти, се менува само URL-то за првата датотека TVML. Ако некој сака, веројатно може да напише скрипта што од далечина би можела да изврши градба со вашата URL-адреса и да испрати назад IPA-датотека. Или ако имате Mac, не е проблем да го испратите проектот, каде што само го ставате URL-то и ја започнувате изградбата. Предноста е што ако TVML е надвор од апликацијата, всушност ви треба само една јавна верзија и евентуално една приватна (развојна) градба, а можете само да ја промените TVML на серверот, а со тоа и функционирањето на апликацијата.
„Апликацијата може да биде само tvOS или кодот може да се додаде на постоечка апликација за iOS за да се создаде апликација „една големина“ - модел сличен на апликациите за iPhone и iPad денес.
Се прашувам што сакаш да кажеш? Лично, никаде не најдов начин да направам 1 градба која ќе вклучува универзални iPhone, iPad и Apple TV.. бидејќи тие се посебни SDK (слични на OSX), потребна ви е дополнителна цел за tvOS а со тоа и посебна градба. Нешто ми фали?
во Xcode 7.1 tvOS апликациите може да се додадат како друга цел на веќе постоечки проект - слично на апликациите за Apple Watch или можеби додаток за центарот за известувања. Сепак, сеуште не знам како ќе биде поставен во продавницата... Претпоставувам дека Xcode ќе испрати еден пакет и App Store потоа ќе го подели... Веројатно слично како што прават со часовникот сега
неоо.. според мене тоа се 2 сосема различни работи.. часовникот е екстензија.. или барем беше до watchOS 2.0.. се даваше заедно со iOS таргетот и не работеше ни без ајфон.. ATV е посебен ентитет.. тоа е она што го зборувам, дали изградбата за ATV ќе биде посебна (треба да платите за 2$) и дополнително iOS платено за 2$, или ќе може да се додели универзален Изградба од 2$ и за iOS и за ATV. семејство за ATV..
така што ќе се покаже вистинското лансирање, но навистина се однесува исто како кодот на Apple Watch, на пример. Инаку, во документацијата стои дека ќе може да се додаде код за tvOS на постоечката апликација и со тоа ќе може да се продаде една апликација (еден ентитет во App Store) и за iOS и tvOS истовремено - едно купување за клиентот, или како посебен ентитет - посебно купување за iOS и за tvOS.
Само за појаснување, не се 200 MB по апликација, туку 200 MB складирани локално, а остатокот се презема од мрежата кога е потребно
Ви благодарам, така мислев, но веројатно погрешно го напишав. Сè што е над 200 MB (или сè што е дополнително преземено) се чува како кеш и ако системот одлучи дека му снемува простор, почнува да го брише - што веројатно нема да се случи додека нема доволно слободен простор, а потоа најмалку користената содржина ќе биде избришан, така што во пракса веројатно нема да биде голем проблем.
Што друго треба да дознаам, демек оваа граница нема да важи за игрите, или играта може да биде поголема од 200 MB токму во основата. Но, сè уште не знам точно како точно се мисли на ова. Сосема е можно дека Apple сè уште ја прилагодува оваа политика според повратните информации од програмерите.
hehe Pokemon TCG – 4 GB, Нарачајте хаос преку Интернет – 1,6 GB Hearthstone 1,3 GB Навистина сум љубопитен за ова.
имаше информации дека игрите имаат посебен режим. Сега ги собирам деталите и ќе ја комплетираме статијата.
Не можам да го сторам тоа и однапред се извинувам ако навредам некого, но имам огромна, искрена и вистинска радост што сакав да ја споделам со вас...
Ден по објавувањето на новиот Apple TV, не бев мрзлив и се пријавив на лотаријата на Apple (да изберам?) со можност да добијам Developer Kit уште пред да излезе во продажба.
Вчера вечер, Apple ми напиша дека ме избрал за првата серија :)
Значи, јас не сум истиот автор на оваа статија и искрено работам на Preschool Brasnicce за Apple TV - достапен во вашата App Store во текот на октомври :)
па имам чувство дека сите што се пријавиле веројатно го добиле :) И јас вчера нарачав и стварно многу се радувам... И знам уште еден човек кој исто така чека на испорака...
Како и да е, досега се чини дека веројатно ќе има многу апликации кога ќе започне продажбата :)
Сите веројатно не - не ми дадоа :(
:( Жал ми е за тебе.
Ако некој сака, имам осум бели налепници на Apple… Можам да ги испратам по пошта…