Apple het verlede week onder meer aangebied die nuwe Apple TV met die tvOS-bedryfstelsel. Die feit dat toepassings van die App Store in die nuwe swart boks geïnstalleer kan word, het die ontwikkelaars beslis die gelukkigste gemaak.
Ontwikkelaars het twee opsies. Hulle kan 'n inheemse toepassing skryf wat volle toegang tot die Apple TV-hardeware het. Die beskikbare SDK (stel biblioteke vir ontwikkelaars) is baie soortgelyk aan wat ontwikkelaars reeds van die iPhone, iPad ken, en die programmeertale is dieselfde - Objective-C en die jonger Swift.
Maar vir eenvoudiger toepassings het Apple ontwikkelaars 'n tweede opsie aangebied in die vorm van TVML - Television Markup Language. As jy voel dat die naam TVML verdag soos HTML lyk, is jy reg. Dit is regtig 'n opmerktaal gebaseer op XML en baie soortgelyk aan HTML, maar dit is baie eenvoudiger en het 'n strenger sintaksis. Maar dit is absoluut perfek vir toepassings soos Netflix. En gebruikers sal ook baat vind, want die strengheid van TVML sal multimediatoepassings baie dieselfde laat lyk en werk.
Pad na die eerste aansoek
Die eerste ding wat ek dus moes doen, was om die nuwe beta-weergawe van die Xcode-ontwikkelingsomgewing af te laai (weergawe 7.1 is beskikbaar hier). Dit het my toegang tot die tvOS SDK gegee en kon 'n nuwe projek begin wat spesifiek die vierde generasie Apple TV gerig het. Die toepassing kan slegs tvOS wees, of die kode kan by 'n bestaande iOS-toepassing gevoeg word om 'n "universele" toepassing te skep - 'n model soortgelyk aan iPhone- en iPad-toepassings vandag.
Probleem een: Xcode bied slegs die vermoë om 'n inheemse toepassing te skep. Maar ek het baie vinnig 'n afdeling in die dokumentasie gevind wat ontwikkelaars sal help om hierdie skelet te verander en dit vir TVML voor te berei. Basies is dit 'n paar reëls kode in Swift wat, net op die Apple TV, 'n volskermvoorwerp skep en die hoofgedeelte van die toepassing laai, wat reeds in JavaScript geskryf is.
Probleem twee: TVML-toepassings is regtig baie soortgelyk aan 'n webblad, en daarom word al die kode ook vanaf die internet gelaai. Die toepassing self is eintlik net 'n "bootloader", dit bevat slegs 'n minimum kode en die mees basiese grafiese elemente (toepassingsikoon en dies meer). Op die ou end het ek die hoof JavaScript-kode suksesvol direk in die toepassing geplaas en het die vermoë gekry om ten minste 'n persoonlike foutboodskap te vertoon wanneer die Apple TV nie aan die internet gekoppel is nie.
Die derde klein probleempie: iOS 9 en daarmee saam tvOS vereis streng dat alle kommunikasie na die internet geënkripteer via HTTPS plaasvind. Dit is 'n kenmerk wat in iOS 9 vir alle toepassings bekendgestel is en die rede is druk op gebruikersprivaatheid en datasekuriteit. Dit sal dus nodig wees om 'n SSL-sertifikaat op die webbediener te ontplooi. Dit kan vir so min as $5 (120 krone) per jaar gekoop word, of jy kan byvoorbeeld die CloudFlare-diens gebruik, wat outomaties en sonder belegging vir HTTPS sal sorg. Die tweede opsie is om hierdie beperking vir die toepassing af te skakel, wat vir nou moontlik is, maar ek sal dit beslis nie aanbeveel nie.
Na 'n paar uur se dokumentasie gelees het, waar daar nog af en toe klein foute is, het ek 'n baie basiese maar werkende toepassing uitgewerk. Dit het die gewilde teks "Hello World" en twee knoppies vertoon. Ek het ongeveer twee ure probeer om die knoppie aktief te kry en eintlik iets te doen. Maar as ek die vroeë oggendure in ag neem, het ek verkies om te gaan slaap ... en dit was 'n goeie ding.
Ek het nou die dag die blink idee gehad om 'n klaargemaakte voorbeeld TVML-toepassing direk vanaf Apple af te laai. Ek het baie vinnig gevind waarna ek gesoek het in die kode en die knoppie was lewendig en werk. Ek het onder andere ook die eerste twee dele van die tvOS-tutoriaal op die internet ontdek. Albei hulpbronne het baie gehelp, so ek het 'n nuwe projek begin en my eerste regte toepassing begin.
Eerste werklike toepassing
Ek het heeltemal van voor af begin, die eerste TVML-bladsy. Die voordeel is dat Apple 18 klaargemaakte TVML-sjablone vir ontwikkelaars voorberei het wat net uit die dokumentasie gekopieer moet word. Die redigering van een sjabloon het ongeveer 'n uur geneem, hoofsaaklik omdat ek ons API voorberei het om die voltooide TVML met al die nodige data na die Apple TV te stuur.
Die tweede sjabloon het slegs ongeveer 10 minute geneem. Ek het twee JavaScripts bygevoeg - die meeste van die kode daarin kom direk van Apple af, so hoekom moet jy die wiel herontdek. Apple het skrifte voorberei wat sorg vir die laai en vertoon van TVML-sjablone, insluitend 'n aanbevole inhoudlaai-aanwyser en moontlike foutvertoning.
In minder as twee uur kon ek 'n baie kaal, maar funksionele PLAY.CZ-toepassing saamstel. Dit kan 'n lys van radiostasies vertoon, dit kan dit volgens genre filtreer en dit kan die radio begin. Ja, baie dinge is nie in die toepassing nie, maar die basiese beginsels werk.
[youtube id=”kLKvWC-rj7Q” width=”620″ hoogte=”360″]
Die voordeel is dat die toepassing basies niks meer as 'n spesiale weergawe van die webwerf is nie, wat deur JavaScript aangedryf word en jy kan ook CSS gebruik om die voorkoms te verander.
Apple benodig nog 'n paar dinge om voor te berei. Die toepassingsikoon is nie een nie, maar twee - kleiner en groter. Die nuwigheid is dat die ikoon nie 'n eenvoudige beeld is nie, maar 'n parallakseffek bevat en bestaan uit 2 tot 5 lae (agtergrond, voorwerpe in die middel en voorgrond). Alle aktiewe beelde oor die toepassing kan dieselfde effek bevat.
Elke laag is eintlik net 'n prent op 'n deursigtige agtergrond. Apple het sy eie toepassing voorberei vir die samestelling van hierdie gelaagde beelde en beloof om binnekort 'n uitvoerinprop vir Adobe Photoshop vry te stel.
Nog 'n vereiste is 'n "Top Rak"-prent. As die gebruiker die toepassing in 'n prominente posisie in die boonste ry (op die boonste rak) plaas, moet die toepassing ook inhoud vir die rekenaar bo die lys toepassings verskaf. Daar kan óf net 'n eenvoudige prentjie wees óf dit kan 'n aktiewe area wees, byvoorbeeld met 'n lys gunstelingflieks of, in ons geval, radiostasies.
Baie ontwikkelaars begin net die moontlikhede van die nuwe tvOS ondersoek. Die goeie nuus is dat die skryf van 'n inhoudtoepassing baie maklik is, en Apple het 'n lang pad gevorder vir ontwikkelaars met TVML. Die bou van 'n toepassing (byvoorbeeld PLAY.CZ of iVyszílő) moet maklik en vinnig wees. Daar is 'n goeie kans dat 'n groot aantal toepassings gereed sal wees op dieselfde tyd as wat die nuwe Apple TV te koop gaan.
Om 'n inheemse toepassing te skryf of 'n speletjie van iOS na tvOS oor te dra, sal meer uitdagend wees, maar nie veel nie. Die grootste struikelblok sal verskillende kontroles en 'n limiet van 200 MB per toepassing wees. 'n Inheemse toepassing kan slegs 'n beperkte deel van die data van die winkel aflaai, en alles anders moet addisioneel afgelaai word, en daar is geen waarborg dat die stelsel nie hierdie data sal uitvee nie. Ontwikkelaars sal egter beslis vinnig hierdie beperking hanteer, ook danksy die beskikbaarheid van 'n stel nutsmiddels genaamd "App Thinning", wat ook deel is van iOS 9.
Lekker artikel. Dankie. Miskien sal ons mettertyd van Apple ook 'n gebruikersoplossing sien vir die voorbereiding van eenvoudiger toepassings (oplossings), soos moontlik met FileMaker vir iOS, sonder dat ek 'n ontwikkelaar is.
In teorie ... is die Swift-laaier 'n paar reëls wat steeds dieselfde is, net die URL vir die eerste TVML-lêer verander. As iemand wil, kan hulle waarskynlik 'n skrip skryf wat 'n bou met jou URL kan laat loop en 'n IPA-lêer kan terugstuur. Of as jy 'n Mac het, is dit geen probleem om die projek te stuur nie, waar jy net die URL plaas en die bou begin. Die voordeel is dat as die TVML buite die toepassing is, jy eintlik net een publieke bou en moontlik een private (ontwikkelings) bou nodig het, en jy kan net die TVML op die bediener verander en dus die funksionering van die toepassing.
"Die toepassing kan slegs tvOS wees, of die kode kan by 'n bestaande iOS-toepassing gevoeg word om 'n 'een-grootte-pas-almal'-toepassing te skep - 'n model soortgelyk aan iPhone- en iPad-toepassings vandag."
Ek wonder wat jy bedoel? Persoonlik het ek nêrens 'n manier gevind om 1 bou te maak wat universele iPhone, iPad en Apple TV sal insluit nie.. aangesien dit aparte SDK's is (soortgelyk aan OSX), benodig jy 'n ekstra teiken vir tvOS en dus ook 'n aparte bou. Ek mis iets ?
in Xcode 7.1 kan tvOS-toepassings as 'n ander teiken by 'n reeds bestaande projek gevoeg word - soortgelyk aan toepassings vir die Apple Watch of dalk 'n legstuk vir die kennisgewingsentrum. Ek weet egter nog nie hoe dit na die winkel gelaai gaan word nie... Ek neem aan dat Xcode een pakkie sal stuur en die App Store sal dit dan verdeel... Seker soortgelyk aan wat hulle nou met die Watch doen
nee.. volgens my is dit 2 heeltemal verskillende dinge.. horlosie is 'n uitbreiding.. of ten minste was dit tot watchOS 2.0.. dit is saam met die iOS-teiken gegee en het nie eers sonder 'n iPhone gewerk nie.. ATV is 'n aparte entiteit .. dit is waarvan ek praat , of die bou vir ATV apart sal wees (jy moet vir 2$ betaal) en daarby betaal iOS vir 2$, of sal dit moontlik wees om 'n universele toe te staan 2$ gebou vir beide iOS en ATV. familie vir ATV..
so die regte bekendstelling sal wys, maar dit tree regtig dieselfde op as die Apple Watch-kode, byvoorbeeld. Andersins stel die dokumentasie dat dit moontlik sal wees om kode vir tvOS by die bestaande toepassing te voeg en dus sal dit moontlik wees om een toepassing (een entiteit in die App Store) vir beide iOS en tvOS gelyktydig te verkoop - een aankoop vir die kliënt, of as 'n aparte entiteit - 'n aparte aankoop vir iOS en vir tvOS.
Net om duidelik te maak, dit is nie 200MB per toepassing nie, maar 200MB wat plaaslik gestoor word en die res word van die net afgelaai wanneer nodig
Dankie, dit is wat ek gedink het, maar ek het dit seker verkeerd bewoord. Alles bo 200MB (of alles wat addisioneel afgelaai is) word as 'n kas gestoor en as die stelsel besluit dat dit min spasie is, begin dit dit uitvee - wat waarskynlik nie sal gebeur totdat daar genoeg vrye spasie is en dan die inhoud wat die minste gebruik word nie. sal uitgevee word, so dit sal in die praktyk waarskynlik nie veel van 'n probleem wees nie.
Wat anders moet ek uitvind, hierdie limiet sal glo nie van toepassing wees op speletjies nie, of die speletjie kan groter as 200MB reg by die basis wees. Maar ek weet nog nie presies hoe dit presies bedoel word nie. Dit is heel moontlik dat Apple steeds hierdie beleid aanpas volgens terugvoer van ontwikkelaars.
hehe Pokémon TCG – 4 GB, Bestel chaos aanlyn – 1,6 GB Hearthstone 1,3 GB Ek is baie nuuskierig hieroor.
daar was inligting dat die speletjies 'n spesiale modus het. Ek sit nou die besonderhede bymekaar en ons sal die artikel voltooi.
Ek kan dit nie doen nie, en ek vra by voorbaat om verskoning as ek iemand aanstoot gee, maar ek het net 'n groot, opregte en opregte vreugde wat ek met julle wou deel...
Die dag na die aankondiging van die nuwe Apple TV was ek nie lui nie en het vir die Apple-lotery (sal ek kies?) ingeskryf met die moontlikheid om 'n Developer Kit te bekom nog voordat dit te koop is.
Gisteraand het Apple vir my geskryf dat hy my gekies het vir die eerste groep :)
So, ek is nie dieselfde as die skrywer van hierdie artikel nie, en ek werk eerlikwaar aan Preschool Brasnicce vir Apple TV - beskikbaar in jou App Store gedurende Oktober :)
so ek het 'n gevoel dat almal wat geregistreer het dit seker gekry het :) Ek het ook gister bestel en ek sien baie, baie uit daarna... En ek ken nog een persoon wat ook wag vir sy aflewering...
In elk geval, tot dusver blyk dit dat daar waarskynlik baie toepassings sal wees wanneer verkope begin :)
Almal het seker nie - hulle het dit nie vir my gegee nie :(
:( Ek voel jammer vir jou.
As iemand wil, ek het agt wit Apple-plakkers … ek kan dit pos …