Apple esitteli viime viikolla mm uusi Apple TV tvOS-käyttöjärjestelmän kanssa. Se, että App Storen sovelluksia voi asentaa uuteen mustaan laatikkoon, ilahdutti kehittäjät varmasti eniten.
Kehittäjällä on kaksi vaihtoehtoa. He voivat kirjoittaa alkuperäisen sovelluksen, jolla on täysi pääsy Apple TV:n laitteistoon. Saatavilla oleva SDK (kirjastojen sarja kehittäjille) on hyvin samanlainen kuin se, mitä kehittäjät jo tietävät iPhonesta, iPadista, ja ohjelmointikielet ovat samat - Objective-C ja nuorempi Swift.
Mutta yksinkertaisempia sovelluksia varten Apple tarjosi kehittäjille toisen vaihtoehdon TVML-muodossa - Television Markup Language. Jos sinusta tuntuu, että nimi TVML näyttää epäilyttävän HTML:ltä, olet oikeassa. Se on todellakin XML-pohjainen merkintäkieli ja hyvin samanlainen kuin HTML, mutta se on paljon yksinkertaisempi ja sillä on tiukempi syntaksi. Mutta se on ehdottoman täydellinen sovelluksiin, kuten Netflix. Siitä hyötyvät myös käyttäjät, sillä TVML:n tiukkuuden ansiosta multimediasovellukset näyttävät ja toimivat paljolti samalta.
Polku ensimmäiseen sovellukseen
Joten ensimmäinen asia, jota minun piti tehdä, oli ladata Xcode-kehitysympäristön uusi beta-versio (versio 7.1 on saatavilla zde). Tämä antoi minulle pääsyn tvOS SDK:han ja pystyin aloittamaan uuden projektin, joka kohdistui erityisesti neljännen sukupolven Apple TV:hen. Sovellus voi olla vain tvOS:lle tai koodi voidaan lisätä olemassa olevaan iOS-sovellukseen luodaksesi "universaalin" sovelluksen – samanlaisen mallin kuin iPhone- ja iPad-sovellukset nykyään.
Ongelma yksi: Xcode tarjoaa vain mahdollisuuden luoda natiivisovellus. Mutta löysin hyvin nopeasti dokumentaatiosta osan, joka auttaa kehittäjiä muuttamaan tätä luurankoa ja valmistelemaan sitä TVML:ää varten. Pohjimmiltaan se on muutama koodirivi Swiftissä, jotka luovat vain Apple TV:ssä koko näytön objektin ja lataavat sovelluksen pääosan, joka on jo kirjoitettu JavaScriptillä.
Ongelma kaksi: TVML-sovellukset ovat todella hyvin samanlaisia kuin web-sivu, ja siksi kaikki koodi ladataan myös Internetistä. Itse sovellus on itse asiassa vain "käynnistyslatain", se sisältää vain minimimäärän koodia ja alkeellisimmat graafiset elementit (sovelluskuvake ja vastaavat). Lopulta laitoin onnistuneesti JavaScript-pääkoodin suoraan sovellukseen ja sain mahdollisuuden näyttää ainakin mukautetun virheilmoituksen, kun Apple TV ei ole yhteydessä Internetiin.
Kolmas pieni ongelma: iOS 9 ja sen mukana tvOS vaatii tiukasti, että kaikki viestintä Internetiin tapahtuu salattuna HTTPS:n kautta. Tämä ominaisuus on otettu käyttöön iOS 9:ssä kaikille sovelluksille, ja syynä on paine käyttäjien yksityisyyteen ja tietoturvaan. Joten on tarpeen ottaa käyttöön SSL-varmenne verkkopalvelimella. Sen voi ostaa jopa 5 dollarilla (120 kruunua) vuodessa tai käyttää esimerkiksi CloudFlare-palvelua, joka huolehtii HTTPS:stä itse, automaattisesti ja ilman investointeja. Toinen vaihtoehto on poistaa tämä rajoitus sovellukselta, mikä on toistaiseksi mahdollista, mutta en ehdottomasti suosittele sitä.
Muutaman tunnin luettuani dokumentaatiota, jossa on vielä satunnaisia pieniä virheitä, kehitin hyvin perus- mutta toimivan sovelluksen. Siinä oli suosittu teksti "Hello World" ja kaksi painiketta. Vietin noin kaksi tuntia yrittäessäni saada painike aktivoitumaan ja tehdä jotain. Mutta ottaen huomioon varhaiset aamutunnit, menin mieluummin nukkumaan… ja se oli hyvä asia.
Eräänä päivänä minulla oli hyvä idea ladata valmis TVML-mallisovellus suoraan Applelta. Löysin etsimäni erittäin nopeasti koodista ja painike oli käytössä ja toimi. Löysin myös tvOS-opetusohjelman kaksi ensimmäistä osaa Internetistä mm. Molemmat resurssit auttoivat paljon, joten aloitin uuden projektin ja aloitin ensimmäisen varsinaisen hakemukseni.
Ensimmäinen todellinen sovellus
Aloitin täysin tyhjästä, ensimmäiseltä TVML-sivulta. Etuna on, että Apple on valmistanut 18 valmista TVML-mallia kehittäjille, jotka tarvitsee vain kopioida dokumentaatiosta. Yhden mallin muokkaaminen kesti noin tunnin, pääasiassa siksi, että valmistelin API:amme lähettämään valmiin TVML:n kaikki tarvittavat tiedot Apple TV:hen.
Toinen malli kesti vain noin 10 minuuttia. Olen lisännyt kaksi JavaScriptiä - suurin osa niiden koodista tulee suoraan Applelta, joten miksi keksiä pyörä uudelleen. Apple on valmistellut skriptejä, jotka huolehtivat TVML-mallien lataamisesta ja näyttämisestä, mukaan lukien suositeltu sisällön latausilmaisin ja mahdollinen virhenäyttö.
Alle kahdessa tunnissa sain koota erittäin paljaan, mutta toimivan PLAY.CZ-sovelluksen. Se voi näyttää radioasemien luettelon, suodattaa sen genren mukaan ja käynnistää radion. Kyllä, monet asiat eivät ole sovelluksessa, mutta perusasiat toimivat.
[youtube id=”kLKvWC-rj7Q” width=”620″ height=”360″]
Etuna on, että sovellus on pohjimmiltaan vain verkkosivuston erikoisversio, joka toimii JavaScriptillä ja jonka ulkoasua voi muokata myös CSS:n avulla.
Apple vaatii vielä muutamia asioita valmistautumiseen. Sovelluskuvake ei ole yksi, vaan kaksi - pienempi ja suurempi. Uutta on, että ikoni ei ole yksinkertainen kuva, vaan sisältää parallaksiefektin ja koostuu 2-5 kerroksesta (tausta, objektit keskellä ja etualalla). Kaikki sovelluksen aktiiviset kuvat voivat sisältää saman tehosteen.
Jokainen kerros on itse asiassa vain kuva läpinäkyvällä taustalla. Apple on valmistellut oman sovelluksensa näiden kerrostuneiden kuvien kokoamiseen ja lupaa julkaista vientilaajennuksen Adobe Photoshopiin pian.
Toinen vaatimus on "Ylähylly" -kuva. Jos käyttäjä sijoittaa sovelluksen näkyvälle paikalle ylimmälle riville (ylähyllylle), sovelluksen on tarjottava sisältöä myös työpöydälle sovellusluettelon yläpuolella. Siellä voi olla joko pelkkä kuva tai se voi olla aktiivinen alue, esimerkiksi suosikkielokuvien luettelolla tai meidän tapauksessamme radioasemilla.
Monet kehittäjät ovat vasta alkamassa tutkia uuden tvOS:n mahdollisuuksia. Hyvä uutinen on, että sisältösovelluksen kirjoittaminen on erittäin helppoa, ja Apple on mennyt pitkälle TVML:n kehittäjille. Sovelluksen rakentamisen (esim. PLAY.CZ tai iVyszílő) tulee olla helppoa ja nopeaa. On hyvä mahdollisuus, että suuri määrä sovelluksia on valmis samaan aikaan, kun uusi Apple TV tulee myyntiin.
Natiivisovelluksen kirjoittaminen tai pelin siirtäminen iOS:stä tvOS:ään on haastavampaa, mutta ei paljon. Suurin este on erilaiset säätimet ja 200 Mt:n sovelluskohtainen raja. Natiivisovellus voi ladata vain rajoitetun osan tiedoista kaupasta, ja kaikki muu on ladattava lisäksi, eikä ole takeita siitä, että järjestelmä ei poista näitä tietoja. Kehittäjät kuitenkin varmasti käsittelevät tämän rajoituksen nopeasti, myös "App Thinning" -nimisen työkalusarjan saatavuuden ansiosta, joka on myös osa iOS 9:ää.
Kiva artikkeli. Kiitos. Ehkä aikanaan näemme Applelta myös käyttäjäratkaisun yksinkertaisempien sovellusten (ratkaisujen) valmistukseen, kuten FileMaker for iOS -sovelluksella on mahdollista ilman, että olen kehittäjä.
Teoriassa… Swift-lataaja on muutama rivi, jotka ovat edelleen samat, vain ensimmäisen TVML-tiedoston URL-osoite muuttuu. Jos joku haluaa, hän voi luultavasti kirjoittaa skriptin, joka voi suorittaa koontiversion etänä URL-osoitteesi avulla ja lähettää takaisin IPA-tiedoston. Tai jos sinulla on mac, ei ole ongelmaa lähettää projekti, johon laitat vain URL-osoitteen ja aloitat rakentamisen. Etuna on, että jos TVML on sovelluksen ulkopuolella, tarvitset itse asiassa vain yhden julkisen koontiversion ja mahdollisesti yhden yksityisen (kehitys) koontiversion ja voit muuttaa vain palvelimen TVML:ää ja siten sovelluksen toimintaa.
"Sovellus voi olla vain tvOS:lle tai koodi voidaan lisätä olemassa olevaan iOS-sovellukseen, jolloin luodaan "yksi koko"-sovellus - malli, joka on samanlainen kuin iPhone- ja iPad-sovellukset nykyään."
Ihmettelen mitä tarkoitat? Henkilökohtaisesti en ole löytänyt mistään tapaa tehdä 1 koontiversio, joka sisältäisi universaalin iPhonen, iPadin ja Apple TV:n.. koska ne ovat erillisiä SDK:ita (samankaltaisia kuin OSX), tarvitset ylimääräisen kohteen tvOS:lle ja siten myös erillisen koontiversion. Kaipaanko jotain?
Xcode 7.1:ssä tvOS-sovelluksia voidaan lisätä uudeksi kohteeksi jo olemassa olevaan projektiin - samalla tavalla kuin Apple Watchin sovellukset tai kenties ilmoituskeskuksen widget. En tosin vielä tiedä, miten se ladataan kauppaan... Oletan, että Xcode lähettää yhden paketin ja App Store jakaa sen sitten... Varmaan samalla tavalla kuin mitä he tekevät nyt kellon kanssa
noo.. mielestäni nämä ovat 2 täysin eri asiaa.. kello on laajennus.. tai ainakin se oli watchOS 2.0 asti.. se annettiin yhdessä iOS-kohteen kanssa eikä toiminut edes ilman iPhonea.. ATV on erillinen kokonaisuus.. siitä minä puhun, tuleeko ATV:n rakennus erillinen (maksaa 2$) ja lisäksi iOS maksoi 2$, vai onko mahdollista myöntää yleis 2 $ rakentaa sekä iOS:lle että ATV:lle. perhe ATV:lle..
joten todellinen julkaisu näkyy, mutta se todella käyttäytyy samalla tavalla kuin esimerkiksi Apple Watch -koodi. Muutoin dokumentaation mukaan olemassa olevaan sovellukseen on mahdollista lisätä tvOS-koodia ja näin on mahdollista myydä yksi sovellus (yksi kokonaisuus App Storessa) sekä iOS:lle että tvOS:lle samanaikaisesti - yksi osto asiakkaalle tai erillisenä kokonaisuutena - erillinen osto iOS:lle ja tvOS:lle.
Selvennykseksi, se ei ole 200 Mt sovellusta kohden, vaan 200 Mt tallennetaan paikallisesti ja loput ladataan verkosta tarvittaessa
Kiitos, näin ajattelinkin, mutta luultavasti ilmaisin asian väärin. Kaikki yli 200 Mt (tai kaikki lisäksi ladattu) tallennetaan välimuistiin ja jos järjestelmä päättää, että tila on loppumassa, se alkaa poistaa sitä - mikä ei todennäköisesti tapahdu ennen kuin vapaata tilaa on tarpeeksi ja vähiten käytettyä sisältöä. poistetaan, joten käytännössä se ei todennäköisesti ole suuri ongelma.
Mitä muuta minun pitää ottaa selvää, tämä raja ei ilmeisesti koske pelejä, tai peli voi olla suurempi kuin 200 Mt heti pohjassa. Mutta en vieläkään tiedä tarkalleen, miten tämä tarkalleen tarkoitetaan. On täysin mahdollista, että Apple muuttaa tätä käytäntöä edelleen kehittäjien palautteen mukaan.
hehe Pokemon TCG – 4 Gt, Tilaa kaaos verkosta – 1,6 Gt Hearthstone 1,3 Gt Olen todella utelias tästä.
oli tietoa, että peleissä on erityinen tila. Kokoan yksityiskohdat nyt yhteen ja täydennämme artikkelia.
En voi tehdä sitä, ja pahoittelen jo etukäteen, jos loukkaan jotakuta, mutta minulla on vain valtava, vilpitön ja aito ilo, jonka halusin jakaa kanssanne...
Uuden Apple TV:n julkistamisen jälkeisenä päivänä en ollut laiska ja osallistuin Applen arvontaan (pitääkö minun valita?) ja minulla oli mahdollisuus hankkia Developer Kit jo ennen kuin se tulee myyntiin.
Eilen illalla Apple kirjoitti minulle, että se valitsi minut ensimmäiseen erään :)
Joten en ole sama kuin tämän artikkelin kirjoittaja, ja työskentelen rehellisesti Preschool Brasniccen kanssa Apple TV:lle - saatavilla App Storesta lokakuussa :)
joten minulla on tunne, että kaikki rekisteröityneet saivat sen todennäköisesti :) Tilasin myös eilen ja odotan sitä todella, todella innolla... Ja tiedän vielä yhden henkilön, joka myös odottaa toimitustaan...
Joka tapauksessa, toistaiseksi näyttää siltä, että sovelluksia tulee todennäköisesti paljon, kun myynti alkaa :)
Kaikki eivät luultavasti anna - he eivät antaneet sitä minulle :(
:( Säälin sinua.
Jos joku haluaa, minulla on kahdeksan valkoista Apple-tarraa… voin postittaa ne…