Apple va presentar la setmana passada, entre altres coses el nou Apple TV amb el sistema operatiu tvOS. El fet que les aplicacions de l'App Store es puguin instal·lar a la nova caixa negra, sens dubte, va fer més feliços els desenvolupadors.
Els desenvolupadors tenen dues opcions. Poden escriure una aplicació nativa que tingui accés complet al maquinari d'Apple TV. El SDK disponible (conjunt de biblioteques per a desenvolupadors) és molt similar al que els desenvolupadors ja coneixen de l'iPhone, l'iPad, i els llenguatges de programació són els mateixos: Objective-C i el Swift més jove.
Però per a aplicacions més senzilles, Apple va oferir als desenvolupadors una segona opció en forma de TVML - Television Markup Language. Si creieu que el nom TVML s'assembla sospitosament a HTML, teniu raó. Realment és un llenguatge de marques basat en XML i molt semblant a HTML, només que és molt més senzill i té una sintaxi més estricta. Però és absolutament perfecte per a aplicacions com Netflix. I els usuaris també es beneficiaran, perquè l'estricte de TVML farà que les aplicacions multimèdia semblin i funcionin de la mateixa manera.
Camí a la primera aplicació
Així que el primer que vaig haver de fer va ser descarregar la nova versió beta de l'entorn de desenvolupament Xcode (la versió 7.1 està disponible). aquí). Això em va donar accés a l'SDK de tvOS i vaig poder iniciar un nou projecte dirigit específicament a l'Apple TV de quarta generació. L'aplicació pot ser només per a tvOS, o el codi es pot afegir a una aplicació iOS existent per crear una aplicació "universal", un model similar a les aplicacions d'iPhone i iPad actuals.
Primer problema: Xcode només ofereix la possibilitat de crear una aplicació nativa. Però vaig trobar molt ràpidament una secció a la documentació que ajudarà els desenvolupadors a canviar aquest esquelet i preparar-lo per TVML. Bàsicament, són unes poques línies de codi a Swift que, només a l'Apple TV, creen un objecte a pantalla completa i carreguen la part principal de l'aplicació, que ja està escrita en JavaScript.
Problema dos: les aplicacions TVML són realment molt semblants a una pàgina web i, per tant, tot el codi també es carrega des d'Internet. L'aplicació en si és en realitat només un "carregador d'arrencada", conté només un mínim de codi i els elements gràfics més bàsics (icona de l'aplicació i similars). Al final, vaig posar amb èxit el codi JavaScript principal directament a l'aplicació i vaig tenir la possibilitat de mostrar almenys un missatge d'error personalitzat quan l'Apple TV no està connectat a Internet.
El tercer petit problema: iOS 9 i amb ell tvOS requereix estrictament que totes les comunicacions cap a Internet es facin encriptades mitjançant HTTPS. Aquesta és una característica introduïda a iOS 9 per a totes les aplicacions i el motiu és la pressió sobre la privadesa dels usuaris i la seguretat de les dades. Per tant, serà necessari desplegar un certificat SSL al servidor web. Es pot comprar per tan sols 5 dòlars (120 corones) a l'any, o podeu utilitzar, per exemple, el servei CloudFlare, que s'encarregarà d'HTTPS per si mateix, automàticament i sense inversió. La segona opció és desactivar aquesta restricció per a l'aplicació, que és possible de moment, però definitivament no la recomanaria.
Després d'unes hores de lectura de la documentació, on encara hi ha petits errors ocasionals, vaig elaborar una aplicació molt bàsica però que funcionava. Mostrava el text popular "Hola món" i dos botons. Vaig passar unes dues hores intentant que el botó estigués actiu i realment fes alguna cosa. Però tenint en compte les primeres hores del matí, vaig preferir anar a dormir... i això va ser bo.
L'altre dia, vaig tenir la brillant idea de descarregar una aplicació TVML de mostra preparada directament des d'Apple. Vaig trobar el que buscava molt ràpidament al codi i el botó estava en directe i funcionava. Entre altres coses, també vaig descobrir les dues primeres parts del tutorial de tvOS a Internet. Tots dos recursos van ajudar molt, així que vaig començar un nou projecte i vaig començar la meva primera aplicació real.
Primera aplicació real
Vaig començar completament des de zero, la primera pàgina de TVML. L'avantatge és que Apple ha preparat 18 plantilles TVML preparades per als desenvolupadors que només cal copiar de la documentació. L'edició d'una plantilla va trigar aproximadament una hora, principalment perquè estava preparant la nostra API per enviar el TVML acabat amb totes les dades necessàries a l'Apple TV.
La segona plantilla només va trigar uns 10 minuts. He afegit dos JavaScript: la major part del codi que contenen prové directament d'Apple, així que per què reinventar la roda. Apple ha preparat scripts que s'encarreguen de carregar i mostrar plantilles TVML, inclòs l'indicador de càrrega de contingut recomanat i la possible visualització d'errors.
En menys de dues hores, vaig poder muntar una aplicació PLAY.CZ molt senzilla però funcional. Pot mostrar una llista d'emissores de ràdio, pot filtrar-la per gènere i pot iniciar la ràdio. Sí, moltes coses no estan a l'aplicació, però les bases funcionen.
[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]
L'avantatge és que l'aplicació no és bàsicament més que una versió especial del lloc web, que funciona amb JavaScript i també podeu utilitzar CSS per modificar l'aparença.
Apple encara necessita algunes coses més per preparar. La icona de l'aplicació no és una, sinó dues: més petita i més gran. La novetat és que la icona no és una imatge simple, sinó que conté un efecte de paral·laxi i es compon de 2 a 5 capes (fons, objectes al mig i primer pla). Totes les imatges actives de l'aplicació poden contenir el mateix efecte.
Cada capa és en realitat només una imatge sobre un fons transparent. Apple ha preparat la seva pròpia aplicació per compilar aquestes imatges en capes i es compromet a llançar aviat un connector d'exportació per a Adobe Photoshop.
Un altre requisit és una imatge "Prestat superior". Si l'usuari col·loca l'aplicació en una posició destacada a la fila superior (al prestatge superior), l'aplicació també ha de proporcionar contingut per a l'escriptori a sobre de la llista d'aplicacions. Pot haver-hi només una imatge simple o pot ser una àrea activa, per exemple amb una llista de pel·lícules preferides o, en el nostre cas, emissores de ràdio.
Molts desenvolupadors estan començant a explorar les possibilitats del nou tvOS. La bona notícia és que escriure una aplicació de contingut és molt fàcil i Apple ha recorregut un llarg camí per als desenvolupadors amb TVML. La creació d'una aplicació (per exemple, PLAY.CZ o iVyszílő) hauria de ser fàcil i ràpid. Hi ha moltes possibilitats que un gran nombre d'aplicacions estiguin llestes al mateix temps que el nou Apple TV surt a la venda.
Escriure una aplicació nativa o portar un joc d'iOS a tvOS serà més difícil, però no gaire. El major obstacle seran els diferents controls i un límit de 200 MB per aplicació. Una aplicació nativa només pot descarregar una part limitada de les dades de la botiga, i tota la resta s'ha de descarregar addicionalment, i no hi ha cap garantia que el sistema no suprimirà aquestes dades. No obstant això, els desenvolupadors segurament afrontaran aquesta limitació ràpidament, també gràcies a la disponibilitat d'un conjunt d'eines anomenades "App Thinning", que també formen part d'iOS 9.
Bonic article. Gràcies. Potser amb el temps veurem d'Apple també una solució d'usuari per preparar aplicacions (solucions) més senzilles, com és possible amb FileMaker per a iOS, sense que jo sigui desenvolupador.
En teoria... el carregador Swift té unes quantes línies que segueixen sent les mateixes, només canvia l'URL del primer fitxer TVML. Si algú vol, probablement pot escriure un script que pugui executar de manera remota una compilació amb el vostre URL i enviar un fitxer IPA. O si tens un Mac, no és cap problema enviar el projecte, on només has de posar l'URL i començar la compilació. L'avantatge és que si el TVML es troba fora de l'aplicació, en realitat només necessiteu una compilació pública i possiblement una privada (de desenvolupament), i només podeu canviar el TVML al servidor i, per tant, el funcionament de l'aplicació.
"L'aplicació pot ser només per a tvOS, o el codi es pot afegir a una aplicació iOS existent per crear una aplicació "única per a tots", un model similar a les aplicacions d'iPhone i iPad actuals".
Em pregunto què vols dir? Personalment, no he trobat enlloc una manera de fer una compilació que inclourà iPhone, iPad i Apple TV universals... com que són SDK separats (similars a OSX), necessiteu un objectiu addicional per a tvOS i, per tant, també una compilació independent. Em falta alguna cosa?
a Xcode 7.1, les aplicacions tvOS es poden afegir com un altre objectiu a un projecte ja existent, similar a les aplicacions per a Apple Watch o potser un giny per al centre de notificacions. Tanmateix, encara no sé com es pujarà a la botiga... Suposo que Xcode enviarà un paquet i l'App Store el dividirà... Probablement semblant al que fan amb el Watch ara
no.. al meu entendre, aquestes són 2 coses completament diferents.. watch és una extensió.. o almenys fins a watchOS 2.0.. es va donar juntament amb l'objectiu d'iOS i ni tan sols funcionava sense un iPhone. ATV és una entitat independent.. d'això parlo, si la construcció per a ATV serà independent (cal pagar 2$) i a més iOS paga 2$, o serà possible concedir un universal 2$ de creació tant per a iOS com per a ATV. Família per a ATV..
així que es mostrarà el llançament real, però realment es comporta igual que el codi d'Apple Watch, per exemple. En cas contrari, la documentació estableix que serà possible afegir codi per a tvOS a l'aplicació existent i, per tant, serà possible vendre una aplicació (una entitat a l'App Store) tant per a iOS com per a tvOS alhora: una compra per a el client, o com una entitat independent: una compra independent per a iOS i per a tvOS.
Només per aclarir, no són 200 MB per aplicació, sinó 200 MB emmagatzemats localment i la resta es descarrega de la xarxa quan calgui
Gràcies, això és el que vaig pensar, però probablement ho he escrit malament. Tot el que superi els 200 MB (o tot el que es descarrega addicionalment) s'emmagatzema com a memòria cau i si el sistema decideix que s'està quedant sense espai, comença a suprimir-lo, cosa que probablement no passarà fins que hi hagi prou espai lliure i després el contingut menys utilitzat. s'eliminarà, de manera que a la pràctica probablement no suposarà gaire problema.
Què més he d'esbrinar, suposadament aquest límit no s'aplicarà als jocs, o el joc podria ser més gran que 200 MB just a la base. Però encara no sé exactament com es vol dir això. És molt possible que Apple encara estigui ajustant aquesta política segons els comentaris dels desenvolupadors.
hehe Pokemon TCG – 4 GB, Comanda el caos en línia – 1,6 GB Hearthstone 1,3 GB Tinc molta curiositat per això.
hi havia informació que els jocs tenen un mode especial. Ara estic reunint els detalls i completarem l'article.
No puc fer-ho, i demano disculpes per endavant si ofeixo algú, però només tinc una alegria enorme, sincera i genuïna que volia compartir amb vosaltres...
L'endemà de l'anunci del nou Apple TV, no vaig ser mandrós i em vaig apuntar a la loteria d'Apple (haig d'escollir?) amb la possibilitat d'aconseguir un Developer Kit fins i tot abans que surti a la venda.
Ahir al vespre, Apple em va escriure que em va seleccionar per al primer lot :)
Per tant, no sóc el mateix que l'autor d'aquest article, i sincerament estic treballant a Preschool Brasnicce per a Apple TV, disponible a la vostra App Store durant l'octubre :)
així que tinc la sensació que tots els que es van registrar probablement ho van aconseguir :) També vaig fer la comanda ahir i en tinc moltes ganes... I conec una persona més que també està esperant el seu lliurament...
De totes maneres, fins ara sembla que probablement hi haurà moltes aplicacions quan comencin les vendes :)
Probablement tothom no, no m'ho van donar :(
:( Ho sento per vostè.
Si algú vol, tinc vuit adhesius blancs d'Apple... Puc enviar-los per correu...