Apple minggu lepas dibentangkan, antara lain Apple TV baharu dengan sistem pengendalian tvOS. Hakikat bahawa aplikasi daripada App Store boleh dipasang dalam kotak hitam baharu pastinya membuatkan pembangun paling gembira.
Pemaju mempunyai dua pilihan. Mereka boleh menulis apl asli yang mempunyai akses penuh kepada perkakasan Apple TV. SDK yang tersedia (set perpustakaan untuk pembangun) sangat serupa dengan apa yang telah diketahui oleh pembangun daripada iPhone, iPad, dan bahasa pengaturcaraan adalah sama - Objektif-C dan Swift yang lebih muda.
Tetapi untuk aplikasi yang lebih mudah, Apple menawarkan pembangun pilihan kedua dalam bentuk TVML - Bahasa Penanda Televisyen. Jika anda merasakan bahawa nama TVML kelihatan mencurigakan seperti HTML, anda betul. Ia benar-benar bahasa markup berdasarkan XML dan sangat serupa dengan HTML, cuma ia lebih mudah dan mempunyai sintaks yang lebih ketat. Tetapi ia sangat sesuai untuk aplikasi seperti Netflix. Dan pengguna juga akan mendapat manfaat, kerana ketegasan TVML akan menjadikan aplikasi multimedia kelihatan dan berfungsi dengan sama.
Laluan ke aplikasi pertama
Jadi perkara pertama yang saya perlu lakukan ialah memuat turun versi beta baharu persekitaran pembangunan Xcode (versi 7.1 tersedia di sini). Ini memberi saya akses kepada SDK tvOS dan dapat memulakan projek baharu yang khusus menyasarkan Apple TV generasi keempat. Apl itu boleh menjadi tvOS sahaja, atau kod itu boleh ditambahkan pada apl iOS sedia ada untuk mencipta apl "universal" - model yang serupa dengan apl iPhone dan iPad hari ini.
Masalah satu: Xcode hanya menawarkan keupayaan untuk mencipta aplikasi asli. Tetapi saya dengan cepat menemui bahagian dalam dokumentasi yang akan membantu pembangun menukar rangka ini dan menyediakannya untuk TVML. Pada asasnya, beberapa baris kod dalam Swift yang, hanya pada Apple TV, mencipta objek skrin penuh dan memuatkan bahagian utama apl, yang sudah ditulis dalam JavaScript.
Masalah dua: Aplikasi TVML benar-benar seperti halaman web, dan oleh itu semua kod dimuatkan dari internet. Aplikasi itu sendiri sebenarnya hanyalah "pemuat but", ia mengandungi hanya kod minimum dan elemen grafik yang paling asas (ikon aplikasi dan seumpamanya). Akhirnya, saya berjaya meletakkan kod JavaScript utama terus ke dalam aplikasi dan mendapat keupayaan untuk sekurang-kurangnya memaparkan mesej ralat tersuai apabila Apple TV tidak disambungkan ke Internet.
Masalah kecil ketiga: iOS 9 dan dengannya tvOS dengan tegas memerlukan semua komunikasi ke Internet berlaku disulitkan melalui HTTPS. Ini adalah ciri yang diperkenalkan dalam iOS 9 untuk semua aplikasi dan sebabnya ialah tekanan terhadap privasi pengguna dan keselamatan data. Jadi adalah perlu untuk menggunakan sijil SSL pada pelayan web. Ia boleh dibeli dengan harga serendah $5 (120 mahkota) setahun, atau anda boleh menggunakan, sebagai contoh, perkhidmatan CloudFlare, yang akan menjaga HTTPS dengan sendirinya, secara automatik dan tanpa pelaburan. Pilihan kedua adalah untuk mematikan sekatan ini untuk aplikasi, yang mungkin buat masa ini, tetapi saya pasti tidak akan mengesyorkannya.
Selepas beberapa jam membaca dokumentasi, di mana masih terdapat ralat kecil sekali-sekala, saya menghasilkan aplikasi yang sangat asas tetapi berfungsi. Ia memaparkan teks popular "Hello World" dan dua butang. Saya menghabiskan kira-kira dua jam mencuba untuk mengaktifkan butang dan benar-benar melakukan sesuatu. Tetapi memandangkan waktu awal pagi, saya lebih suka tidur… dan itu adalah perkara yang baik.
Pada hari yang lain, saya mempunyai idea bernas untuk memuat turun sampel aplikasi TVML siap pakai terus daripada Apple. Saya menjumpai apa yang saya cari dengan cepat dalam kod tersebut dan butang tersebut telah hidup dan berfungsi. Antara lain, saya juga menemui dua bahagian pertama tutorial tvOS di Internet. Kedua-dua sumber banyak membantu, jadi saya memulakan projek baharu dan memulakan aplikasi sebenar pertama saya.
Aplikasi sebenar pertama
Saya bermula sepenuhnya dari awal, halaman pertama TVML. Kelebihannya ialah Apple telah menyediakan 18 templat TVML siap sedia untuk pembangun yang hanya perlu disalin daripada dokumentasi. Mengedit satu templat mengambil masa kira-kira sejam, terutamanya kerana saya sedang menyediakan API kami untuk menghantar TVML siap dengan semua data yang diperlukan ke Apple TV.
Templat kedua hanya mengambil masa kira-kira 10 minit. Saya telah menambah dua JavaScript - kebanyakan kod di dalamnya datang terus daripada Apple, jadi mengapa mencipta semula roda. Apple telah menyediakan skrip yang menjaga memuatkan dan memaparkan templat TVML, termasuk penunjuk pemuatan kandungan yang disyorkan dan kemungkinan paparan ralat.
Dalam masa kurang daripada dua jam, saya dapat menyusun aplikasi PLAY.CZ yang sangat kosong tetapi berfungsi. Ia boleh memaparkan senarai stesen radio, ia boleh menapisnya mengikut genre dan ia boleh memulakan radio. Ya, banyak perkara tiada dalam apl, tetapi asasnya berfungsi.
[id youtube=”kLKvWC-rj7Q” lebar=”620″ tinggi=”360″]
Kelebihannya ialah aplikasi itu pada dasarnya tidak lebih daripada versi khas tapak web, yang dikuasakan oleh JavaScript dan anda juga boleh menggunakan CSS untuk mengubah suai penampilan.
Apple masih memerlukan beberapa perkara lagi untuk disediakan. Ikon aplikasi bukan satu, tetapi dua - lebih kecil dan lebih besar. Kebaharuan ialah ikon itu bukan imej mudah, tetapi mengandungi kesan paralaks dan terdiri daripada 2 hingga 5 lapisan (latar belakang, objek di tengah dan latar depan). Semua imej aktif di seluruh aplikasi boleh mengandungi kesan yang sama.
Setiap lapisan sebenarnya hanyalah imej pada latar belakang lutsinar. Apple telah menyediakan aplikasinya sendiri untuk menyusun imej berlapis ini dan berjanji untuk mengeluarkan pemalam eksport untuk Adobe Photoshop tidak lama lagi.
Keperluan lain ialah imej "Rak Teratas". Jika pengguna meletakkan apl pada kedudukan yang menonjol di baris atas (di rak atas), apl itu juga mesti menyediakan kandungan untuk desktop di atas senarai apl. Boleh ada sama ada hanya gambar ringkas atau ia boleh menjadi kawasan aktif, contohnya dengan senarai filem kegemaran atau, dalam kes kami, stesen radio.
Ramai pembangun baru mula meneroka kemungkinan tvOS baharu. Berita baiknya ialah menulis aplikasi kandungan adalah sangat mudah, dan Apple telah pergi jauh untuk pembangun dengan TVML. Membina aplikasi (contohnya PLAY.CZ atau iVyszílő) hendaklah mudah dan pantas. Terdapat kemungkinan besar bahawa sejumlah besar aplikasi akan disediakan pada masa yang sama dengan Apple TV baharu mula dijual.
Menulis apl asli atau mengalihkan permainan daripada iOS ke tvOS akan menjadi lebih mencabar, tetapi tidak banyak. Halangan terbesar ialah kawalan yang berbeza dan had 200MB setiap apl. Aplikasi asli hanya boleh memuat turun sebahagian terhad data dari kedai, dan segala-galanya mesti dimuat turun tambahan, dan tiada jaminan bahawa sistem tidak akan memadamkan data ini. Walau bagaimanapun, pembangun pasti akan menangani had ini dengan cepat, juga terima kasih kepada ketersediaan satu set alat yang dipanggil "App Thinning", yang juga merupakan sebahagian daripada iOS 9.
artikel yang bagus. Terima kasih. Mungkin pada masanya kita akan melihat dari Apple juga penyelesaian pengguna untuk menyediakan aplikasi yang lebih mudah (penyelesaian), seperti yang mungkin dengan FileMaker untuk iOS, tanpa saya menjadi pembangun.
Secara teori… pemuat Swift ialah beberapa baris yang masih sama, hanya URL untuk fail TVML yang pertama berubah. Jika seseorang mahu, mereka mungkin boleh menulis skrip yang boleh menjalankan binaan dari jauh dengan URL anda dan menghantar semula fail IPA. Atau jika anda mempunyai mac, tiada masalah untuk menghantar projek, di mana anda hanya meletakkan URL dan memulakan binaan. Kelebihannya ialah jika TVML berada di luar aplikasi, anda sebenarnya hanya memerlukan satu binaan awam dan mungkin satu binaan (pembangunan) peribadi, dan anda hanya boleh menukar TVML pada pelayan dan dengan itu berfungsi aplikasi.
"Apl ini boleh menjadi tvOS sahaja, atau kod itu boleh ditambahkan pada apl iOS sedia ada untuk mencipta aplikasi 'satu saiz-sesuai-semua' - model yang serupa dengan aplikasi iPhone dan iPad hari ini."
Saya tertanya-tanya apa yang anda maksudkan? Secara peribadi, saya tidak menemui mana-mana cara untuk membuat 1 binaan yang akan merangkumi iPhone, iPad dan Apple TV universal.. memandangkan ia adalah SDK yang berasingan (serupa dengan OSX), anda memerlukan sasaran tambahan untuk tvOS dan oleh itu juga binaan yang berasingan. Saya kehilangan sesuatu?
dalam Xcode 7.1 aplikasi tvOS boleh ditambah sebagai sasaran lain kepada projek yang sedia ada - serupa dengan aplikasi untuk Apple Watch atau mungkin widget untuk pusat pemberitahuan. Walau bagaimanapun, saya belum tahu bagaimana ia akan dimuat naik ke kedai... Saya mengandaikan bahawa Xcode akan menghantar satu pakej dan App Store kemudiannya akan membahagikannya... Mungkin serupa dengan apa yang mereka lakukan dengan Watch sekarang
noo.. pada pendapat saya, ini adalah 2 perkara yang berbeza sama sekali.. jam tangan adalah sambungan.. atau sekurang-kurangnya ia sehingga watchOS 2.0.. ia diberikan bersama-sama dengan sasaran iOS dan tidak berfungsi tanpa iPhone.. ATV ialah entiti yang berasingan.. itulah yang saya bincangkan, sama ada binaan untuk ATV akan berasingan (anda perlu membayar untuk $2) dan sebagai tambahan iOS membayar untuk $2, atau adakah mungkin untuk memberikan universal 2$ binaan untuk iOS dan ATV.. maka saya rasa tidak, kerana sasaran iOS pun tidak menawarkan keluarga peranti untuk ATV..
jadi pelancaran sebenar akan ditunjukkan, tetapi ia benar-benar berkelakuan sama seperti kod Apple Watch, contohnya. Jika tidak, dokumentasi menyatakan bahawa adalah mungkin untuk menambah kod untuk tvOS pada aplikasi sedia ada dan dengan itu adalah mungkin untuk menjual satu aplikasi (satu entiti dalam App Store) untuk kedua-dua iOS dan tvOS pada masa yang sama - satu pembelian untuk pelanggan, atau sebagai entiti berasingan - pembelian berasingan untuk iOS dan untuk tvOS.
Sekadar menjelaskan, ia bukan 200MB bagi setiap apl, tetapi 200MB disimpan secara setempat dan selebihnya dimuat turun dari jaring apabila diperlukan
Terima kasih, itu yang saya fikirkan, tetapi saya mungkin tersalah kata. Semua yang melebihi 200MB (atau semua yang dimuat turun tambahan) disimpan sebagai cache dan jika sistem memutuskan bahawa ia kehabisan ruang, ia mula memadamkannya - yang mungkin tidak akan berlaku sehingga terdapat ruang kosong yang mencukupi dan kemudian kandungan yang paling kurang digunakan akan dipadamkan, jadi dalam amalan ia mungkin tidak akan menjadi masalah.
Apa lagi yang perlu saya ketahui, kononnya had ini tidak akan digunakan untuk permainan, atau permainan boleh menjadi lebih besar daripada 200MB betul-betul di pangkalan. Tetapi saya masih tidak tahu dengan tepat bagaimana ini dimaksudkan. Ada kemungkinan Apple masih melaraskan dasar ini mengikut maklum balas daripada pembangun.
hehe Pokemon TCG – 4 GB, Pesan huru-hara dalam talian – 1,6 GB Hearthstone 1,3 GB Saya sangat ingin tahu tentang perkara ini.
terdapat maklumat bahawa permainan mempunyai mod khas. Saya sedang menyusun butiran sekarang dan kami akan melengkapkan artikel itu.
Saya tidak dapat melakukannya, dan saya memohon maaf terlebih dahulu jika saya menyinggung perasaan sesiapa, tetapi saya hanya mempunyai kegembiraan yang besar, ikhlas dan tulen yang ingin saya kongsikan dengan anda...
Sehari selepas pengumuman Apple TV baharu, saya tidak malas dan mendaftar untuk loteri Apple (bolehkah saya memilih?) dengan kemungkinan mendapatkan Kit Pembangun walaupun sebelum ia mula dijual.
Petang semalam, Apple menulis kepada saya bahawa ia memilih saya untuk kumpulan pertama :)
Jadi, saya tidak sama dengan pengarang artikel ini, dan sejujurnya saya sedang mengusahakan Prasekolah Brasnicce untuk Apple TV - tersedia di App Store anda pada bulan Oktober :)
jadi saya rasa semua yang daftar mungkin dah dapat :) Saya pun order semalam dan saya sangat-sangat menantikannya... Dan saya tahu seorang lagi yang juga sedang menunggu penghantarannya...
Bagaimanapun, setakat ini nampaknya akan ada banyak aplikasi apabila jualan bermula :)
Semua orang mungkin tidak - mereka tidak memberikannya kepada saya :(
:( saya kesian kat awak.
Jika sesiapa mahu, saya mempunyai lapan pelekat Apple putih... Saya boleh menghantarnya...