Apple pagājušajā nedēļā cita starpā prezentēja jaunais Apple TV ar tvOS operētājsistēmu. Izstrādātājus visvairāk iepriecināja fakts, ka jaunajā melnajā kastē var instalēt lietojumprogrammas no App Store.
Izstrādātājiem ir divas iespējas. Viņi var uzrakstīt vietējo lietotni, kurai ir pilna piekļuve Apple TV aparatūrai. Pieejamais SDK (bibliotēku komplekts izstrādātājiem) ir ļoti līdzīgs tam, ko izstrādātāji jau zina no iPhone, iPad, un programmēšanas valodas ir vienādas - Objective-C un jaunākā Swift versija.
Taču vienkāršākām lietojumprogrammām Apple piedāvāja izstrādātājiem otru iespēju TVML formātā – Television Markup Language. Ja jums šķiet, ka nosaukums TVML aizdomīgi izskatās pēc HTML, jums ir taisnība. Tā patiešām ir iezīmēšanas valoda, kuras pamatā ir XML un ļoti līdzīga HTML, tikai tā ir daudz vienkāršāka un tai ir stingrāka sintakse. Bet tas ir absolūti ideāls tādām lietojumprogrammām kā Netflix. Ieguvēji būs arī lietotāji, jo TVML stingrība ļaus multivides lietojumprogrammām izskatīties un darboties gandrīz vienādi.
Ceļš uz pirmo pieteikumu
Tāpēc pirmais, kas man bija jādara, bija lejupielādēt jauno Xcode izstrādes vides beta versiju (ir pieejama versija 7.1 šeit). Tas man deva piekļuvi tvOS SDK un varēju sākt jaunu projektu, kas īpaši paredzēts ceturtās paaudzes Apple TV. Lietojumprogramma var būt paredzēta tikai tvOS, vai arī kodu var pievienot esošai iOS lietotnei, lai izveidotu “universālu” lietotni — modeli, kas līdzīgs iPhone un iPad lietotnēm mūsdienās.
Pirmā problēma: Xcode piedāvā tikai iespēju izveidot vietējo lietotni. Bet es ļoti ātri atradu sadaļu dokumentācijā, kas palīdzēs izstrādātājiem mainīt šo skeletu un sagatavot to TVML. Būtībā tās ir dažas Swift koda rindiņas, kas tikai Apple TV rada pilnekrāna objektu un ielādē galveno programmas daļu, kas jau ir rakstīta JavaScript.
Otrā problēma: TVML lietojumprogrammas patiešām ir ļoti līdzīgas tīmekļa lapai, un tāpēc viss kods tiek ielādēts no interneta. Pati lietojumprogramma patiesībā ir tikai "bootloader", tajā ir tikai minimāls kods un elementārākie grafiskie elementi (lietojumprogrammas ikona un tamlīdzīgi). Galu galā es veiksmīgi ievietoju galveno JavaScript kodu tieši lietotnē un ieguvu iespēju vismaz parādīt pielāgotu kļūdas ziņojumu, kad Apple TV nav savienots ar internetu.
Trešā mazā problēma: iOS 9 un līdz ar to tvOS stingri pieprasa, lai visa saziņa ar internetu notiktu šifrēti, izmantojot HTTPS. Šī funkcija ir ieviesta operētājsistēmā iOS 9 visām lietotnēm, un iemesls ir spiediens uz lietotāju privātumu un datu drošību. Tāpēc tīmekļa serverī būs jāizvieto SSL sertifikāts. To var iegādāties jau par USD 5 (120 kronām) gadā, vai arī var izmantot, piemēram, CloudFlare servisu, kas par HTTPS parūpēsies pats, automātiski un bez investīcijām. Otrs variants ir atslēgt šo ierobežojumu aplikācijai, kas pagaidām ir iespējams, bet noteikti neieteiktu.
Pēc dažām stundām, lasot dokumentāciju, kur joprojām ik pa laikam ir nelielas kļūdas, es izstrādāju ļoti vienkāršu, bet strādājošu lietojumprogrammu. Tajā bija redzams populārs teksts "Sveika pasaule" un divas pogas. Es pavadīju apmēram divas stundas, mēģinot aktivizēt pogu un kaut ko darīt. Bet, ņemot vērā agrās rīta stundas, es labāk gāju gulēt... un tas bija labi.
Kādu dienu man radās spilgta doma lejupielādēt gatavu TVML aplikācijas paraugu tieši no Apple. Kodā ļoti ātri atradu meklēto, un poga darbojās un darbojās. Cita starpā es atklāju arī pirmās divas tvOS apmācības daļas internetā. Abi resursi ļoti palīdzēja, tāpēc sāku jaunu projektu un sāku savu pirmo reālo pieteikumu.
Pirmais reālais pieteikums
Sāku pilnīgi no nulles, pirmo TVML lapu. Priekšrocība ir tāda, ka Apple izstrādātājiem ir sagatavojis 18 gatavas TVML veidnes, kuras tikai jānokopē no dokumentācijas. Vienas veidnes rediģēšana aizņēma apmēram stundu, galvenokārt tāpēc, ka es gatavoju mūsu API, lai nosūtītu gatavo TVML ar visiem nepieciešamajiem datiem uz Apple TV.
Otrā veidne aizņēma tikai aptuveni 10 minūtes. Esmu pievienojis divus JavaScript — lielākā daļa tajos esošā koda nāk tieši no Apple, tad kāpēc no jauna izgudrot riteni. Apple ir sagatavojis skriptus, kas rūpējas par TVML veidņu ielādi un parādīšanu, tostarp ieteicamo satura ielādes indikatoru un iespējamo kļūdu parādīšanu.
Nepilnu divu stundu laikā man izdevās salikt pavisam pliku, bet funkcionējošu PLAY.CZ aplikāciju. Tas var parādīt radio staciju sarakstu, to var filtrēt pēc žanra un var sākt radio. Jā, lietotnē nav daudz lietu, taču pamati darbojas.
[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]
Priekšrocība ir tāda, ka aplikācija būtībā nav nekas cits kā speciāla mājas lapas versija, kuru darbina JavaScript, kā arī var izmantot CSS, lai modificētu izskatu.
Apple joprojām ir jāsagatavo vēl dažas lietas. Lietojumprogrammas ikona ir nevis viena, bet divas - mazāka un lielāka. Jaunums ir tāds, ka ikona nav vienkāršs attēls, bet satur paralakses efektu un sastāv no 2 līdz 5 slāņiem (fons, objekti vidū un priekšplānā). Visi aktīvie attēli visā lietojumprogrammā var saturēt tādu pašu efektu.
Katrs slānis patiesībā ir tikai attēls uz caurspīdīga fona. Apple ir sagatavojis savu lietojumprogrammu šo slāņu attēlu apkopošanai un sola drīzumā izlaist eksporta spraudni Adobe Photoshop.
Vēl viena prasība ir attēls "Augšējais plaukts". Ja lietotājs novieto lietotni redzamā vietā augšējā rindā (augšējā plauktā), lietotnei ir jānodrošina saturs arī darbvirsmai virs lietotņu saraksta. Var būt vai nu tikai vienkāršs attēls, vai arī tā var būt aktīva zona, piemēram, ar iecienītāko filmu sarakstu vai, mūsu gadījumā, radio stacijām.
Daudzi izstrādātāji tikai sāk izpētīt jaunās tvOS iespējas. Labās ziņas ir tādas, ka satura lietotnes rakstīšana ir ļoti vienkārša, un Apple ir gājusi garu ceļu izstrādātājiem ar TVML. Lietojumprogrammas izveidei (piemēram, PLAY.CZ vai iVyszílő) jābūt vienkāršai un ātrai. Pastāv liela iespēja, ka liela daļa aplikāciju būs gatavas vienlaikus ar jaunā Apple TV nonākšanu pārdošanā.
Vietējās lietotnes rakstīšana vai spēles pārnešana no iOS uz tvOS būs sarežģītāka, taču ne tik daudz. Lielākais šķērslis būs dažādas vadīklas un 200 MB ierobežojums vienai lietotnei. Vietējā lietojumprogramma no veikala var lejupielādēt tikai ierobežotu daļu datu, un viss pārējais ir jālejupielādē papildus, un nav garantijas, ka sistēma šos datus neizdzēsīs. Tomēr izstrādātāji noteikti ātri tiks galā ar šo ierobežojumu, arī pateicoties rīku komplektam ar nosaukumu "App Thinning", kas arī ir daļa no iOS 9.
Jauks raksts. Paldies. Iespējams, ar laiku no Apple redzēsim arī lietotāja risinājumu vienkāršāku aplikāciju (risinājumu) sagatavošanai, kā tas ir iespējams ar FileMaker for iOS, man nebūšot izstrādātājs.
Teorētiski... Swift ielādētājs ir dažas rindiņas, kas joprojām ir nemainīgas, mainās tikai pirmā TVML faila URL. Ja kāds vēlas, viņš, iespējams, var uzrakstīt skriptu, kas varētu attālināti palaist būvējumu ar jūsu URL un nosūtīt atpakaļ IPA failu. Vai arī, ja jums ir mac, nav problēmu nosūtīt projektu, kurā vienkārši ievietojat URL un sāciet būvniecību. Priekšrocība ir tāda, ka, ja TVML atrodas ārpus lietojumprogrammas, jums faktiski ir nepieciešams tikai viens publiskais būvējums un, iespējams, viens privāts (izstrādes) būvējums, un jūs varat mainīt tikai TVML serverī un līdz ar to arī lietojumprogrammas darbību.
"Lietotne var būt paredzēta tikai tvOS, vai arī kodu var pievienot esošai iOS lietotnei, lai izveidotu "viena izmēra" lietotni — modeli, kas līdzīgs iPhone un iPad lietotnēm mūsdienās."
Interesanti, ko tu ar to domā? Personīgi es nekur neesmu atradis veidu, kā izveidot 1 būvējumu, kurā būtu iekļauti universālie iPhone, iPad un Apple TV.. tā kā tie ir atsevišķi SDK (līdzīgi kā OSX), jums ir nepieciešams papildu mērķis tvOS un līdz ar to arī atsevišķs būvējums. Man kaut kā pietrūkst ?
Xcode 7.1 tvOS lietojumprogrammas var pievienot kā vēl vienu mērķi jau esošam projektam — līdzīgi kā Apple Watch lietojumprogrammām vai, iespējams, logrīkam paziņojumu centram. Tomēr es vēl nezinu, kā tas tiks augšupielādēts veikalā... Pieļauju, ka Xcode nosūtīs vienu paku un App Store to pēc tam sadalīs... Droši vien līdzīgi kā tagad dara ar Watch
nē.. manā skatījumā tās ir 2 pilnīgi dažādas lietas.. pulkstenis ir paplašinājums.. vai vismaz tā bija līdz watchOS 2.0.. tika dots kopā ar iOS mērķi un pat bez iPhone nedarbojās.. ATV ir atsevišķs entītis.. par to es runāju , vai ATV būvējums būs atsevišķs (jāmaksā 2$) un papildus iOS maksāja 2$, vai varēs iedot universālu 2$ build gan iOS, gan ATV.. tad domāju nē, jo pat iOS target nepiedāvā ierīču saimi priekš ATV..
tāpēc tiks parādīta reālā palaišana, taču tā patiešām darbojas tāpat kā, piemēram, Apple Watch kods. Pretējā gadījumā dokumentācijā norādīts, ka esošajai aplikācijai būs iespējams pievienot tvOS kodu un tādējādi varēs pārdot vienu lietotni (vienu entītiju App Store) gan iOS, gan tvOS vienlaicīgi - vienu pirkumu par klientam vai kā atsevišķa vienība - atsevišķs pirkums iOS un tvOS.
Skaidrības labad jāsaka, ka tie nav 200 MB vienai lietotnei, bet gan 200 MB, kas tiek saglabāti lokāli, un pārējais tiek lejupielādēts no tīkla, kad nepieciešams.
Paldies, tā arī domāju, bet laikam nepareizi formulēju. Viss, kas pārsniedz 200 MB (vai viss papildus lejupielādētais) tiek saglabāts kā kešatmiņa un, ja sistēma nolemj, ka tai sāk pietrūkt vietas, tā sāk to dzēst - kas, visticamāk, nenotiks, kamēr nebūs pietiekami daudz brīvas vietas un tad vismazāk izmantotais saturs tiks dzēsta, tāpēc praksē tas, visticamāk, neradīs lielas problēmas.
Kas man vēl jānoskaidro, it kā šis limits uz spēlēm neattieksies, vai spēle var būt lielāka par 200 MB tieši pamatnē. Bet es joprojām nezinu, kā tieši tas ir domāts. Pilnīgi iespējams, ka Apple joprojām koriģē šo politiku atbilstoši izstrādātāju atsauksmēm.
hehe Pokemon TCG – 4 GB, Pasūtiet haosu tiešsaistē – 1,6 GB Hearthstone 1,3 GB Mani tas ļoti interesē.
bija informācija, ka spēlēm ir īpašs režīms. Es tagad apkopoju detaļas, un mēs pabeigsim rakstu.
Es to nevaru izdarīt, un jau iepriekš atvainojos, ja kādu aizvainoju, bet man vienkārši ir milzīgs, patiess un patiess prieks, ar kuru vēlējos padalīties ar jums...
Nākamajā dienā pēc jaunā Apple TV izziņošanas man nebija slinkums un pieteicos Apple loterijai (vai es izvēlēšos?) ar iespēju iegūt Developer Kit vēl pirms tā nonākšanas pārdošanā.
Vakar vakarā Apple man rakstīja, ka izvēlējās mani pirmajai partijai :)
Tātad, es neesmu tas pats, kas šī raksta autors, un, godīgi sakot, es strādāju pie Preschool Brasnicce for Apple TV — tas būs pieejams jūsu App Store oktobrī :)
tāpēc man ir sajūta, ka visi, kas reģistrējās, droši vien dabūja :) Es arī vakar pasūtīju un ļoti, ļoti gaidu... Un zinu vēl vienu cilvēku, kurš arī gaida savu piegādi...
Lai nu kā, pagaidām šķiet, ka, kad sāksies izpārdošana, iespējams, būs daudz aplikāciju :)
Visiem laikam nē - man nedeva :(
:( Man tevis žēl.
Ja kāds vēlas, man ir astoņas baltas Apple uzlīmes... Varu nosūtīt pa pastu...