Apple a prezentat săptămâna trecută, printre altele noul Apple TV cu sistemul de operare tvOS. Faptul că aplicațiile din App Store pot fi instalate în noua cutie neagră, cu siguranță, i-a bucurat cel mai mult pe dezvoltatori.
Dezvoltatorii au două opțiuni. Ei pot scrie o aplicație nativă care are acces deplin la hardware-ul Apple TV. SDK-ul disponibil (setul de biblioteci pentru dezvoltatori) este foarte asemănător cu ceea ce cunosc deja dezvoltatorii de pe iPhone, iPad, iar limbajele de programare sunt aceleași - Objective-C și mai tânărul Swift.
Dar pentru aplicații mai simple, Apple a oferit dezvoltatorilor o a doua opțiune sub forma TVML - Television Markup Language. Dacă simțiți că numele TVML arată în mod suspect de HTML, aveți dreptate. Este într-adevăr un limbaj de marcare bazat pe XML și foarte asemănător cu HTML, doar că este mult mai simplu și are o sintaxă mai strictă. Dar este absolut perfect pentru aplicații precum Netflix. Și utilizatorii vor beneficia și ei, deoarece strictețea TVML va face ca aplicațiile multimedia să arate și să funcționeze la fel.
Calea către prima aplicație
Așa că primul lucru pe care a trebuit să-l fac a fost să descarc noua versiune beta a mediului de dezvoltare Xcode (versiunea 7.1 este disponibilă aici). Acest lucru mi-a oferit acces la SDK-ul tvOS și am putut începe un nou proiect care vizează în mod specific Apple TV de a patra generație. Aplicația poate fi doar pentru tvOS sau codul poate fi adăugat la o aplicație iOS existentă pentru a crea o aplicație „universală” – un model similar cu aplicațiile pentru iPhone și iPad de astăzi.
Problema unu: Xcode oferă doar posibilitatea de a crea o aplicație nativă. Dar am găsit foarte repede o secțiune în documentație care îi va ajuta pe dezvoltatori să schimbe acest schelet și să-l pregătească pentru TVML. Practic, sunt câteva linii de cod în Swift care, doar pe Apple TV, creează un obiect pe ecran complet și încarcă partea principală a aplicației, care este deja scrisă în JavaScript.
Problema a doua: aplicațiile TVML sunt într-adevăr foarte asemănătoare cu o pagină web și, prin urmare, tot codul este încărcat și de pe Internet. Aplicația în sine este de fapt doar un „bootloader”, conține doar un minim de cod și cele mai elementare elemente grafice (pictograma aplicației și altele asemenea). În cele din urmă, am introdus cu succes codul principal JavaScript direct în aplicație și am avut posibilitatea de a afișa cel puțin un mesaj de eroare personalizat atunci când Apple TV nu este conectat la Internet.
A treia mică problemă: iOS 9 și cu el tvOS necesită strict ca toată comunicarea către Internet să aibă loc criptată prin HTTPS. Aceasta este o caracteristică introdusă în iOS 9 pentru toate aplicațiile și motivul este presiunea asupra confidențialității utilizatorilor și a securității datelor. Deci va fi necesar să implementați un certificat SSL pe serverul web. Poate fi achiziționat cu doar 5 USD (120 de coroane) pe an sau puteți folosi, de exemplu, serviciul CloudFlare, care se va ocupa de HTTPS de la sine, automat și fără investiții. A doua opțiune este dezactivarea acestei restricții pentru aplicație, ceea ce este posibil deocamdată, dar cu siguranță nu l-aș recomanda.
După câteva ore de citit documentația, unde există încă erori minore ocazionale, am elaborat o aplicație foarte simplă, dar funcțională. Afișa textul popular „Hello World” și două butoane. Am petrecut aproximativ două ore încercând ca butonul să fie activ și să fac ceva. Dar ținând cont de primele ore ale dimineții, am preferat să dorm... și asta a fost un lucru bun.
Zilele trecute, am avut ideea strălucitoare să descarc un exemplu de aplicație TVML gata făcută direct de la Apple. Am găsit foarte repede ceea ce căutam în cod și butonul era activ și funcționa. Printre altele, am descoperit și primele două părți ale tutorialului tvOS pe Internet. Ambele resurse au ajutat foarte mult, așa că am început un nou proiect și am început prima mea aplicație reală.
Prima aplicație reală
Am început complet de la zero, prima pagină TVML. Avantajul este că Apple a pregătit 18 șabloane TVML gata făcute pentru dezvoltatori, care trebuie doar copiate din documentație. Editarea unui șablon a durat aproximativ o oră, în primul rând pentru că pregăteam API-ul nostru pentru a trimite TVML-ul final cu toate datele necesare către Apple TV.
Al doilea șablon a durat doar aproximativ 10 minute. Am adăugat două JavaScript - cea mai mare parte a codului din ele vine direct de la Apple, așa că de ce să reinventez roata. Apple a pregătit scripturi care se ocupă de încărcarea și afișarea șabloanelor TVML, inclusiv indicatorul de încărcare a conținutului recomandat și posibila afișare a erorilor.
În mai puțin de două ore, am reușit să alcătuiesc o aplicație PLAY.CZ foarte simplă, dar funcțională. Poate afișa o listă de posturi de radio, o poate filtra după gen și poate porni radioul. Da, multe lucruri nu sunt în aplicație, dar elementele de bază funcționează.
[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]
Avantajul este că aplicația nu este în esență altceva decât o versiune specială a site-ului web, care este alimentată de JavaScript și puteți folosi și CSS pentru a modifica aspectul.
Apple încă mai are nevoie de câteva lucruri de pregătit. Pictograma aplicației nu este una, ci două - mai mică și mai mare. Noutatea este că icoana nu este o simplă imagine, ci conține un efect de paralaxă și este compusă din 2 până la 5 straturi (fond, obiecte în mijloc și prim plan). Toate imaginile active din aplicație pot conține același efect.
Fiecare strat este de fapt doar o imagine pe un fundal transparent. Apple și-a pregătit propria aplicație pentru compilarea acestor imagini stratificate și promite că va lansa în curând un plugin de export pentru Adobe Photoshop.
O altă cerință este o imagine „Raft de sus”. Dacă utilizatorul plasează aplicația într-o poziție vizibilă pe rândul de sus (pe raftul de sus), aplicația trebuie să furnizeze și conținut pentru desktop deasupra listei de aplicații. Poate fi fie doar o simplă poză, fie poate fi o zonă activă, de exemplu cu o listă de filme preferate sau, în cazul nostru, posturi de radio.
Mulți dezvoltatori abia încep să exploreze posibilitățile noului tvOS. Vestea bună este că scrierea unei aplicații de conținut este foarte ușoară, iar Apple a parcurs un drum lung pentru dezvoltatorii cu TVML. Crearea unei aplicații (de exemplu PLAY.CZ sau iVyszilő) ar trebui să fie ușoară și rapidă. Există șanse mari ca un număr mare de aplicații să fie gata în același timp când noul Apple TV va fi pus în vânzare.
Scrierea unei aplicații native sau portarea unui joc de pe iOS pe tvOS va fi mai dificilă, dar nu cu mult. Cel mai mare obstacol va fi diferitele controale și o limită de 200 MB per aplicație. O aplicație nativă poate descărca doar o parte limitată a datelor din magazin și orice altceva trebuie descărcat suplimentar și nu există nicio garanție că sistemul nu va șterge aceste date. Cu toate acestea, dezvoltatorii se vor ocupa cu siguranță de această limitare rapid, și datorită disponibilității unui set de instrumente numite „App Thinning”, care fac, de asemenea, parte din iOS 9.
Frumos articol. Mulțumiri. Poate că în timp vom vedea de la Apple și o soluție de utilizator pentru pregătirea de aplicații (soluții) mai simple, așa cum este posibil cu FileMaker pentru iOS, fără ca eu să fiu dezvoltator.
În teorie... încărcătorul Swift este format din câteva linii care sunt încă aceleași, doar URL-ul pentru primul fișier TVML se modifică. Dacă cineva dorește, probabil că poate scrie un script care ar putea rula de la distanță o construcție cu adresa URL și să trimită înapoi un fișier IPA. Sau dacă ai un Mac, nu este nicio problemă să trimiți proiectul, unde doar pui URL-ul și pornești construirea. Avantajul este că, dacă TVML-ul este în afara aplicației, de fapt aveți nevoie doar de o construcție publică și, eventual, de una privată (de dezvoltare), și puteți modifica doar TVML-ul de pe server și, prin urmare, funcționarea aplicației.
„Aplicația poate fi doar pentru tvOS sau codul poate fi adăugat la o aplicație iOS existentă pentru a crea o aplicație „one-size-fits-all” – un model similar cu aplicațiile pentru iPhone și iPad de astăzi.”
Mă întreb ce vrei să spui? Personal, nu am găsit nicăieri o modalitate de a face 1 build care să includă iPhone universal, iPad și Apple TV.. deoarece sunt SDK-uri separate (asemănătoare cu OSX), aveți nevoie de o țintă suplimentară pentru tvOS și, prin urmare, și de o build separată. Îmi lipsește ceva?
în Xcode 7.1 aplicațiile tvOS pot fi adăugate ca o altă țintă la un proiect deja existent - similar cu aplicațiile pentru Apple Watch sau poate un widget pentru centrul de notificări. Totuși, încă nu știu cum va fi încărcat în magazin... Presupun că Xcode va trimite un pachet și apoi App Store îl va împărți... Probabil similar cu ceea ce fac acum cu ceasul
nu.. dupa parerea mea astea sunt 2 lucruri complet diferite.. ceasul este o extensie.. sau cel putin a fost pana la watchOS 2.0.. a fost dat impreuna cu target-ul iOS si nici macar nu mergea fara iPhone.. ATV-ul este o entitate separată.. despre asta vorbesc, dacă build-ul pentru ATV va fi separat (trebuie să plătiți pentru 2$) și în plus iOS a plătit pentru 2$, sau va fi posibil să acordați un universal 2$ build atât pentru iOS, cât și pentru ATV. Familie pentru ATV..
așa că lansarea reală se va arăta, dar într-adevăr se comportă la fel ca și codul Apple Watch, de exemplu. În caz contrar, documentația precizează că va fi posibil să adăugați cod pentru tvOS la aplicația existentă și astfel va fi posibil să vindeți o aplicație (o entitate în App Store) atât pentru iOS, cât și pentru tvOS în același timp - o achiziție pentru clientul sau ca entitate separată - o achiziție separată pentru iOS și pentru tvOS.
Doar pentru a clarifica, nu sunt 200 MB per aplicație, ci 200 MB stocați local și restul descărcat de pe net atunci când este necesar
Mulțumesc, asta am crezut, dar probabil am formulat greșit. Tot ce depășește 200 MB (sau tot ce este descărcat suplimentar) este stocat ca cache și dacă sistemul decide că rămâne fără spațiu, începe să-l ștergă - ceea ce probabil nu se va întâmpla până când nu va fi suficient spațiu liber și apoi conținutul cel mai puțin folosit. va fi ștearsă, așa că, în practică, probabil că nu va fi o problemă prea mare.
Ce altceva trebuie să aflu, se presupune că această limită nu se va aplica pentru jocuri, sau jocul ar putea fi mai mare de 200 MB chiar la bază. Dar încă nu știu exact cum se înțelege asta. Este foarte posibil ca Apple să ajusteze încă această politică în funcție de feedback-ul de la dezvoltatori.
hehe Pokemon TCG – 4 GB, Comanda haos online – 1,6 GB Hearthstone 1,3 GB Sunt foarte curios de asta.
au existat informații că jocurile au un mod special. Acum adun detaliile și vom completa articolul.
Nu pot face asta și îmi cer scuze anticipat dacă jignesc pe cineva, dar am doar o bucurie imensă, sinceră și nealterată pe care am vrut să o împărtășesc cu voi...
A doua zi după anunțarea noului Apple TV, nu am fost leneș și m-am înscris la loteria Apple (sa aleg?) cu posibilitatea de a obține un Developer Kit chiar înainte de a fi pus în vânzare.
Ieri seară, Apple mi-a scris că m-a selectat pentru primul lot :)
Deci, nu sunt același cu autorul acestui articol și, sincer, lucrez la Preschool Brasnicce pentru Apple TV - disponibil în App Store în luna octombrie :)
asa ca am senzatia ca toti cei care s-au inregistrat probabil l-au primit :) Am comandat si ieri si abia astept cu nerabdare... Si mai cunosc o persoana care isi asteapta si livrarea...
Oricum, până acum se pare că probabil vor exista o mulțime de aplicații când încep vânzările :)
Probabil că nu toată lumea - nu mi l-au dat :(
:( Imi pare rau pentru tine.
Dacă dorește cineva, am opt autocolante albe Apple... Le pot trimite prin poștă...