Apple minggu lalu menyajikan antara lain Apple TV baru dengan sistem operasi tvOS. Fakta bahwa aplikasi dari App Store dapat diinstal di kotak hitam baru tentu membuat para pengembang sangat senang.
Pengembang memiliki dua opsi. Mereka dapat membuat aplikasi asli yang memiliki akses penuh ke perangkat keras Apple TV. SDK (kumpulan perpustakaan untuk pengembang) yang tersedia sangat mirip dengan apa yang sudah diketahui pengembang dari iPhone, iPad, dan bahasa pemrogramannya sama - Objective-C dan Swift yang lebih muda.
Namun untuk aplikasi yang lebih sederhana, Apple menawarkan pengembang opsi kedua berupa TVML - Television Markup Language. Jika Anda merasa nama TVML mencurigakan seperti HTML, Anda benar. Ini sebenarnya bahasa markup berdasarkan XML dan sangat mirip dengan HTML, hanya saja lebih sederhana dan memiliki sintaks yang lebih ketat. Tapi itu benar-benar sempurna untuk aplikasi seperti Netflix. Dan pengguna juga akan mendapatkan keuntungan, karena ketatnya TVML akan membuat aplikasi multimedia terlihat dan bekerja dengan cara yang hampir sama.
Jalur ke aplikasi pertama
Jadi hal pertama yang harus saya lakukan adalah mengunduh versi beta baru dari lingkungan pengembangan Xcode (tersedia versi 7.1 di sini). Ini memberi saya akses ke tvOS SDK dan dapat memulai proyek baru yang secara khusus menargetkan Apple TV generasi keempat. Aplikasinya bisa hanya untuk tvOS, atau kodenya bisa ditambahkan ke aplikasi iOS yang sudah ada untuk membuat aplikasi “universal” – model yang mirip dengan aplikasi iPhone dan iPad saat ini.
Masalah pertama: Xcode hanya menawarkan kemampuan untuk membuat aplikasi asli. Namun saya segera menemukan bagian dalam dokumentasi yang akan membantu pengembang mengubah kerangka ini dan mempersiapkannya untuk TVML. Pada dasarnya, ini adalah beberapa baris kode di Swift yang, di Apple TV, membuat objek layar penuh dan memuat bagian utama aplikasi, yang sudah ditulis dalam JavaScript.
Masalah kedua: Aplikasi TVML sangat mirip dengan halaman web, dan oleh karena itu semua kode juga diambil dari Internet. Aplikasi itu sendiri sebenarnya hanyalah sebuah "bootloader", hanya berisi kode minimum dan elemen grafis paling dasar (ikon aplikasi dan sejenisnya). Pada akhirnya, saya berhasil memasukkan kode JavaScript utama langsung ke dalam aplikasi dan mendapatkan kemampuan untuk setidaknya menampilkan pesan kesalahan khusus saat Apple TV tidak terhubung ke Internet.
Masalah kecil ketiga: iOS 9 dan tvOS secara ketat mengharuskan semua komunikasi menuju Internet dienkripsi melalui HTTPS. Ini adalah fitur yang diperkenalkan di iOS 9 untuk semua aplikasi dan alasannya adalah tekanan pada privasi pengguna dan keamanan data. Jadi, perlu untuk menerapkan sertifikat SSL di server web. Itu dapat dibeli hanya dengan 5 dolar (120 mahkota) per tahun, atau Anda dapat menggunakan, misalnya, layanan CloudFlare, yang akan menangani HTTPS dengan sendirinya, secara otomatis dan tanpa investasi. Opsi kedua adalah menonaktifkan batasan ini untuk aplikasi, yang mungkin dilakukan saat ini, tetapi saya pasti tidak akan merekomendasikannya.
Setelah beberapa jam membaca dokumentasi, yang terkadang masih terdapat kesalahan kecil, saya membuat aplikasi yang sangat mendasar namun berfungsi. Ini menampilkan teks populer "Halo Dunia" dan dua tombol. Saya menghabiskan sekitar dua jam mencoba mengaktifkan tombol dan benar-benar melakukan sesuatu. Tapi mengingat dini hari, saya lebih memilih untuk tidur… dan itu adalah hal yang baik.
Suatu hari, saya mendapat ide cemerlang untuk mengunduh contoh aplikasi TVML yang sudah jadi langsung dari Apple. Saya menemukan apa yang saya cari dengan sangat cepat dalam kode dan tombolnya aktif dan berfungsi. Antara lain, saya juga menemukan dua bagian pertama tutorial tvOS di Internet. Kedua sumber daya tersebut sangat membantu, jadi saya memulai proyek baru dan memulai aplikasi nyata pertama saya.
Aplikasi nyata pertama
Saya memulai sepenuhnya dari awal, halaman TVML pertama. Keunggulannya adalah Apple telah menyiapkan 18 template TVML siap pakai untuk pengembang yang tinggal disalin dari dokumentasinya. Mengedit satu template memakan waktu sekitar satu jam, terutama karena saya sedang mempersiapkan API untuk mengirim TVML yang sudah selesai dengan semua data yang diperlukan ke Apple TV.
Template kedua hanya memakan waktu sekitar 10 menit. Saya telah menambahkan dua JavaScript - sebagian besar kode di dalamnya berasal langsung dari Apple, jadi mengapa perlu menciptakan kembali rodanya. Apple telah menyiapkan skrip yang menangani pemuatan dan tampilan template TVML, termasuk indikator pemuatan konten yang disarankan dan kemungkinan tampilan kesalahan.
Dalam waktu kurang dari dua jam, saya dapat membuat aplikasi PLAY.CZ yang sangat sederhana namun berfungsi. Itu dapat menampilkan daftar stasiun radio, dapat memfilternya berdasarkan genre dan dapat memulai radio. Ya, banyak hal yang tidak ada di aplikasi, tetapi dasar-dasarnya berfungsi.
[youtube id=”kLKvWC-rj7Q” lebar=”620″ tinggi=”360″]
Kelebihannya adalah aplikasi ini pada dasarnya tidak lebih dari versi khusus website yang didukung oleh JavaScript dan Anda juga dapat menggunakan CSS untuk memodifikasi tampilannya.
Apple masih memerlukan beberapa hal lagi untuk dipersiapkan. Ikon aplikasi bukan hanya satu, tetapi dua - lebih kecil dan lebih besar. Kebaruannya, ikon tersebut bukanlah gambar sederhana, melainkan mengandung efek paralaks dan terdiri dari 2 hingga 5 lapisan (latar belakang, objek di tengah, dan latar depan). Semua gambar aktif di seluruh aplikasi dapat mengandung efek yang sama.
Setiap lapisan sebenarnya hanyalah sebuah gambar dengan latar belakang transparan. Apple telah menyiapkan aplikasinya sendiri untuk mengkompilasi gambar berlapis ini dan berjanji akan segera merilis plugin ekspor untuk Adobe Photoshop.
Persyaratan lainnya adalah gambar "Rak Paling Atas". Jika pengguna menempatkan aplikasi di posisi menonjol di baris paling atas (di rak paling atas), aplikasi juga harus menyediakan konten untuk desktop di atas daftar aplikasi. Bisa berupa gambar sederhana atau bisa berupa area aktif, misalnya dengan daftar film favorit atau, dalam kasus kami, stasiun radio.
Banyak pengembang yang baru mulai menjajaki kemungkinan tvOS baru. Kabar baiknya adalah menulis aplikasi konten sangatlah mudah, dan Apple telah melakukan banyak hal bagi pengembang dengan TVML. Membangun aplikasi (misalnya PLAY.CZ atau iVyszílő) seharusnya mudah dan cepat. Ada kemungkinan besar bahwa sejumlah besar aplikasi akan siap bersamaan dengan mulai dijualnya Apple TV baru.
Menulis aplikasi asli atau mem-porting game dari iOS ke tvOS akan lebih menantang, namun tidak terlalu sulit. Rintangan terbesarnya adalah kontrol yang berbeda dan batas 200MB per aplikasi. Aplikasi asli hanya dapat mengunduh sebagian data dari penyimpanan, dan sisanya harus diunduh tambahan, dan tidak ada jaminan bahwa sistem tidak akan menghapus data ini. Namun, pengembang pasti akan mengatasi keterbatasan ini dengan cepat, juga berkat tersedianya seperangkat alat yang disebut "App Thinning", yang juga merupakan bagian dari iOS 9.
Artikel yang bagus. Terima kasih. Mungkin suatu saat kita akan melihat dari Apple juga solusi pengguna untuk menyiapkan aplikasi (solusi) yang lebih sederhana, seperti yang dapat dilakukan dengan FileMaker untuk iOS, tanpa saya menjadi pengembangnya.
Secara teori… Swift loader adalah beberapa baris yang masih sama, hanya URL file TVML pertama yang berubah. Jika seseorang menginginkannya, mereka mungkin dapat menulis skrip yang dapat menjalankan build dengan URL Anda dari jarak jauh dan mengirim kembali file IPA. Atau jika Anda memiliki Mac, tidak masalah untuk mengirim proyek, cukup masukkan URL dan mulai membangun. Keuntungannya adalah jika TVML berada di luar aplikasi, Anda sebenarnya hanya memerlukan satu build publik dan mungkin satu build pribadi (pengembangan), dan Anda hanya dapat mengubah TVML di server dan dengan demikian berfungsinya aplikasi.
"Aplikasi ini bisa hanya untuk tvOS saja, atau kodenya bisa ditambahkan ke aplikasi iOS yang sudah ada untuk membuat aplikasi 'satu ukuran untuk semua' - model yang mirip dengan aplikasi iPhone dan iPad saat ini."
Aku ingin tahu apa maksudmu? Secara pribadi, saya belum menemukan cara untuk membuat 1 build yang mencakup iPhone universal, iPad, dan Apple TV.. karena keduanya adalah SDK terpisah (mirip dengan OSX), Anda memerlukan target tambahan untuk tvOS dan juga build terpisah. Saya melewatkan sesuatu?
di Xcode 7.1 aplikasi tvOS dapat ditambahkan sebagai target lain ke proyek yang sudah ada - mirip dengan aplikasi untuk Apple Watch atau mungkin widget untuk pusat notifikasi. Namun, saya belum tahu bagaimana cara mengunggahnya ke toko... Saya berasumsi Xcode akan mengirimkan satu paket dan App Store kemudian akan membaginya... Mungkin mirip dengan apa yang mereka lakukan dengan Tontonan sekarang
noo.. menurut saya, ini adalah 2 hal yang sangat berbeda.. watch adalah perpanjangan.. atau setidaknya sampai watchOS 2.0.. diberikan bersamaan dengan target iOS dan bahkan tidak berfungsi tanpa iPhone.. ATV adalah entitas terpisah.. itulah yang saya bicarakan, apakah build untuk ATV akan terpisah (Anda harus membayar $2) dan sebagai tambahan iOS dibayar $2, atau akankah mungkin untuk memberikan universal Pembuatan $2 untuk iOS dan ATV.keluarga untuk ATV..
jadi peluncuran sebenarnya akan terlihat, tetapi berperilaku sama dengan kode Apple Watch, misalnya. Jika tidak, dokumentasi menyatakan bahwa dimungkinkan untuk menambahkan kode untuk tvOS ke aplikasi yang ada dan dengan demikian dimungkinkan untuk menjual satu aplikasi (satu entitas di App Store) untuk iOS dan tvOS pada saat yang sama - satu pembelian untuk pelanggan, atau sebagai entitas terpisah - pembelian terpisah untuk iOS dan tvOS.
Sekadar klarifikasi, ini bukan 200MB per aplikasi, tetapi 200MB disimpan secara lokal dan sisanya diunduh dari internet bila diperlukan
Terima kasih, itulah yang saya pikirkan, tetapi mungkin saya salah mengucapkannya. Segala sesuatu yang berukuran di atas 200MB (atau semua yang diunduh tambahan) disimpan sebagai cache dan jika sistem memutuskan bahwa ia kehabisan ruang, sistem akan mulai menghapusnya - yang mungkin tidak akan terjadi sampai ada cukup ruang kosong dan kemudian konten yang paling jarang digunakan akan dihapus, jadi dalam praktiknya mungkin tidak akan menjadi masalah besar.
Apa lagi yang harus saya cari tahu, seharusnya batasan ini tidak berlaku untuk game, atau gamenya bisa lebih besar dari 200MB tepat di dasarnya. Tapi saya masih belum tahu persis apa maksudnya. Besar kemungkinan Apple masih menyesuaikan kebijakan ini berdasarkan masukan dari pengembang.
hehe Pokemon TCG – 4 GB, Pesan chaos online – 1,6 GB Hearthstone 1,3 GB Penasaran banget sama ini.
ada informasi bahwa permainan tersebut memiliki mode khusus. Saya sedang menyusun detailnya sekarang dan kami akan menyelesaikan artikelnya.
Saya tidak bisa melakukannya, dan saya minta maaf sebelumnya jika saya menyinggung siapa pun, tetapi saya hanya memiliki kegembiraan yang sangat besar, tulus, dan tulus yang ingin saya bagikan kepada Anda...
Sehari setelah pengumuman Apple TV baru, saya tidak malas dan mendaftar untuk lotere Apple (haruskah saya memilih?) dengan kemungkinan mendapatkan Kit Pengembang bahkan sebelum mulai dijual.
Kemarin malam, Apple menulis kepada saya bahwa mereka memilih saya untuk gelombang pertama :)
Jadi, saya tidak sama dengan penulis artikel ini, dan sejujurnya saya sedang mengerjakan Preschool Brasnicce untuk Apple TV - tersedia di App Store Anda selama bulan Oktober :)
jadi saya merasa semua orang yang mendaftar mungkin mendapatkannya :) Saya juga memesannya kemarin dan saya sangat-sangat menantikannya... Dan saya tahu satu orang lagi yang juga menunggu kirimannya...
Bagaimanapun, sejauh ini sepertinya akan ada banyak aplikasi saat penjualan dimulai :)
Semua orang mungkin tidak - mereka tidak memberikannya kepada saya :(
:( Saya merasa kasihan untuk Anda.
Jika ada yang mau, saya punya delapan stiker Apple putih… Saya bisa mengirimkannya…