Apple geçen hafta diğer şeylerin yanı sıra sundu yeni Apple TV tvOS işletim sistemi ile. Yeni kara kutuya App Store'daki uygulamaların yüklenebiliyor olması elbette geliştiricileri çok mutlu etti.
Geliştiricilerin iki seçeneği var. Apple TV donanımına tam erişime sahip yerel bir uygulama yazabilirler. Mevcut SDK (geliştiriciler için kitaplıklar seti), geliştiricilerin iPhone, iPad'den zaten bildiklerine çok benzer ve programlama dilleri aynıdır - Objective-C ve daha genç Swift.
Ancak daha basit uygulamalar için Apple, geliştiricilere TVML - Televizyon İşaretleme Dili biçiminde ikinci bir seçenek sundu. TVML adının şüpheli bir şekilde HTML'ye benzediğini düşünüyorsanız haklısınız. Gerçekten XML tabanlı bir biçimlendirme dilidir ve HTML'ye çok benzer, ancak çok daha basit ve daha katı bir sözdizimine sahiptir. Ancak Netflix gibi uygulamalar için kesinlikle mükemmel. Kullanıcılar da bundan faydalanacaktır çünkü TVML'nin katılığı, multimedya uygulamalarının hemen hemen aynı görünmesini ve çalışmasını sağlayacaktır.
İlk uygulamaya giden yol
Bu yüzden yapmam gereken ilk şey, Xcode geliştirme ortamının yeni beta sürümünü indirmekti (sürüm 7.1 mevcut) burada). Bu bana tvOS SDK'sına erişim sağladı ve özellikle dördüncü nesil Apple TV'yi hedef alan yeni bir proje başlatabilmemi sağladı. Uygulama yalnızca tvOS'e özel olabilir veya kod mevcut bir iOS uygulamasına eklenerek "evrensel" bir uygulama (bugünkü iPhone ve iPad uygulamalarına benzer bir model) oluşturulabilir.
Birinci sorun: Xcode yalnızca yerel uygulama oluşturma olanağı sunuyor. Ancak belgelerde geliştiricilerin bu iskeleti değiştirip TVML'ye hazırlamasına yardımcı olacak bir bölümü çok hızlı buldum. Temel olarak Swift'de, yalnızca Apple TV'de tam ekran bir nesne oluşturan ve uygulamanın zaten JavaScript ile yazılmış olan ana bölümünü yükleyen birkaç satırlık koddur.
İkinci sorun: TVML uygulamaları gerçekten bir web sayfasına çok benziyor ve bu nedenle tüm kodlar da İnternet'ten yükleniyor. Uygulamanın kendisi aslında sadece bir "önyükleyicidir", yalnızca minimum miktarda kod ve en temel grafik öğelerini (uygulama simgesi ve benzeri) içerir. Sonunda, ana JavaScript kodunu doğrudan uygulamaya başarıyla yerleştirdim ve Apple TV internete bağlı olmadığında en azından özel bir hata mesajı görüntüleme yeteneğine sahip oldum.
Üçüncü küçük sorun: iOS 9 ve onunla birlikte tvOS, İnternet'e yönelik tüm iletişimin HTTPS aracılığıyla şifrelenmiş olarak gerçekleşmesini kesinlikle gerektirir. Bu, iOS 9'da tüm uygulamalar için sunulan bir özelliktir ve bunun nedeni, kullanıcı gizliliği ve veri güvenliği üzerindeki baskıdır. Bu nedenle web sunucusuna bir SSL sertifikası dağıtmak gerekli olacaktır. Yılda 5 $ (120 kron) kadar düşük bir ücret karşılığında satın alınabilir veya örneğin, HTTPS'yi otomatik olarak ve yatırım yapmadan kendisi halledecek CloudFlare hizmetini kullanabilirsiniz. İkinci seçenek ise uygulama için bu kısıtlamayı kapatmak şu an için mümkün ancak kesinlikle tavsiye etmem.
Hala ara sıra küçük hataların olduğu belgeleri birkaç saat okuduktan sonra, çok basit ama çalışan bir uygulama geliştirdim. Popüler metin "Merhaba Dünya" ve iki düğmeyi gösteriyordu. Düğmeyi aktif hale getirmek ve gerçekten bir şeyler yapmak için yaklaşık iki saat harcadım. Ama sabahın erken saatlerini düşününce uyumayı tercih ettim... ve bu iyi bir şeydi.
Geçen gün, hazır bir örnek TVML uygulamasını doğrudan Apple'dan indirmek gibi parlak bir fikrim vardı. Kodda aradığımı çok hızlı bir şekilde buldum ve düğme yayındaydı ve çalışıyordu. Diğer şeylerin yanı sıra internette tvOS eğitiminin ilk iki bölümünü de keşfettim. Her iki kaynak da çok yardımcı oldu, ben de yeni bir projeye başladım ve ilk gerçek uygulamamı başlattım.
İlk gerçek uygulama
Tamamen sıfırdan başladım, ilk TVML sayfasıyla. Bunun avantajı, Apple'ın geliştiriciler için yalnızca belgelerden kopyalanması gereken 18 hazır TVML şablonu hazırlamış olmasıdır. Bir şablonu düzenlemek yaklaşık bir saat sürdü; bunun başlıca nedeni, bitmiş TVML'yi gerekli tüm verilerle birlikte Apple TV'ye göndermek için API'mizi hazırlamamdı.
İkinci şablon yalnızca yaklaşık 10 dakika sürdü. İki JavaScript ekledim; içlerindeki kodun çoğu doğrudan Apple'dan geliyor, o halde neden tekerleği yeniden icat edelim? Apple, önerilen içerik yükleme göstergesi ve olası hata gösterimi de dahil olmak üzere, TVML şablonlarının yüklenmesi ve görüntülenmesiyle ilgilenen komut dosyaları hazırlamıştır.
İki saatten kısa bir sürede çok basit ama işlevsel bir PLAY.CZ uygulaması oluşturmayı başardım. Radyo istasyonlarının bir listesini görüntüleyebilir, türe göre filtreleyebilir ve radyoyu başlatabilir. Evet, pek çok şey uygulamada yok ama temel bilgiler işe yarıyor.
[youtube id=”kLKvWC-rj7Q” genişlik=”620″ yükseklik=”360″]
Avantajı, uygulamanın temelde web sitesinin JavaScript tarafından desteklenen özel bir sürümünden başka bir şey olmaması ve görünümü değiştirmek için CSS'yi de kullanabilmenizdir.
Apple'ın hazırlanması için hâlâ birkaç şeye daha ihtiyacı var. Uygulama simgesi bir değil ikidir; daha küçük ve daha büyüktür. Yenilik, simgenin basit bir görüntü olmaması, paralaks efekti içermesi ve 2 ila 5 katmandan (arka plan, ortadaki nesneler ve ön plan) oluşmasıdır. Uygulamadaki tüm aktif görseller aynı etkiyi içerebilir.
Her katman aslında şeffaf bir arka plan üzerinde sadece bir görüntüdür. Apple, bu katmanlı görüntüleri derlemek için kendi uygulamasını hazırladı ve yakında Adobe Photoshop için bir dışa aktarma eklentisi yayınlayacağını vaat ediyor.
Diğer bir gereksinim ise "Üst Raf" görselidir. Kullanıcı, uygulamayı üst satırda (üst rafta) belirgin bir konuma yerleştirirse uygulamanın, uygulama listesinin yukarısındaki masaüstü için de içerik sağlaması gerekir. Basit bir resim olabileceği gibi, örneğin favori filmlerin listesi veya bizim durumumuzda radyo istasyonları gibi aktif bir alan da olabilir.
Birçok geliştirici yeni tvOS'in olanaklarını keşfetmeye yeni başlıyor. İyi haber şu ki, içerik uygulaması yazmak çok kolay ve Apple, TVML ile geliştiriciler için uzun bir yol kat etti. Bir uygulama oluşturmak (örneğin PLAY.CZ veya iVyszílő) kolay ve hızlı olmalıdır. Yeni Apple TV'nin satışa çıkmasıyla aynı anda çok sayıda uygulamanın da hazır olması ihtimali yüksek.
Yerel bir uygulama yazmak veya bir oyunu iOS'tan tvOS'e taşımak daha zorlayıcı olacaktır, ancak çok fazla değil. En büyük engel farklı kontroller ve uygulama başına 200 MB sınırı olacaktır. Yerel bir uygulama mağazadan verilerin yalnızca sınırlı bir kısmını indirebilir ve geri kalan her şeyin ek olarak indirilmesi gerekir ve sistemin bu verileri silmeyeceğine dair hiçbir garanti yoktur. Ancak geliştiriciler, yine iOS 9'un bir parçası olan "Uygulama İnceltme" adı verilen bir dizi aracın da mevcut olması sayesinde, bu sınırlamayı kesinlikle hızlı bir şekilde aşacaktır.
Güzel makale. Teşekkürler. Belki zamanla Apple'dan, iOS için FileMaker'da mümkün olduğu gibi, geliştirici olmadan da daha basit uygulamalar (çözümler) hazırlamak için bir kullanıcı çözümü göreceğiz.
Teorik olarak… Swift yükleyici hala aynı olan birkaç satırdan oluşuyor, yalnızca ilk TVML dosyasının URL'si değişiyor. Birisi isterse, muhtemelen URL'nizle bir derlemeyi uzaktan çalıştırabilecek ve bir IPA dosyasını geri gönderebilecek bir komut dosyası yazabilir. Veya bir Mac'iniz varsa, URL'yi girip derlemeyi başlatacağınız projeyi göndermek sorun değil. Bunun avantajı, eğer TVML uygulamanın dışındaysa, aslında yalnızca bir genel yapıya ve muhtemelen bir özel (geliştirme) yapıya ihtiyacınız vardır ve yalnızca sunucudaki TVML'yi ve dolayısıyla uygulamanın işleyişini değiştirebilirsiniz.
"Uygulama yalnızca tvOS olabilir veya 'herkese uyan tek boyutlu' bir uygulama (bugünkü iPhone ve iPad uygulamalarına benzer bir model) oluşturmak için kod mevcut bir iOS uygulamasına eklenebilir."
Ne demek istediğini merak ediyorum? Kişisel olarak, evrensel iPhone, iPad ve Apple TV'yi içerecek 1 yapı oluşturmanın bir yolunu hiçbir yerde bulamadım. Bunlar ayrı SDK'lar olduğundan (OSX'e benzer), tvOS için ekstra bir hedefe ve dolayısıyla ayrı bir yapıya ihtiyacınız var. Bir şeyi mi kaçırıyorum?
Xcode 7.1'de tvOS uygulamaları, Apple Watch uygulamalarına veya bildirim merkezi widget'ına benzer şekilde, halihazırda mevcut bir projeye başka bir hedef olarak eklenebilir. Ancak mağazaya nasıl yükleneceğini henüz bilmiyorum... Xcode'un bir paket göndereceğini ve App Store'un bunu böleceğini varsayıyorum... Muhtemelen şu anda Watch ile yaptıklarının aynısı
hayır.. bence bunlar tamamen farklı şeyler.. watch bir eklentidir.. ya da en azından watchOS 2'a kadar öyleydi.. iOS hedefiyle birlikte verilmişti ve iPhone olmadan bile çalışmıyordu.. ATV ayrı bir varlıktır.. ATV'nin yapısının ayrı mı olacağı (2.0$ ödemeniz gerekiyor) ve ayrıca iOS'un 2$ mı ödediğinden bahsediyorum, yoksa evrensel bir hibe vermek mümkün mü olacak? Hem iOS hem de ATV için 2$'lık sürüm. ATV ailesi için..
yani gerçek lansman görünecek, ancak aslında örneğin Apple Watch koduyla aynı şekilde davranıyor. Aksi takdirde, belgeler mevcut uygulamaya tvOS için kod eklemenin mümkün olacağını ve dolayısıyla hem iOS hem de tvOS için aynı anda bir uygulamayı (App Store'da bir varlık) satmanın mümkün olacağını belirtiyor; müşteri veya ayrı bir varlık olarak - iOS ve tvOS için ayrı bir satın alma.
Açıklığa kavuşturmak gerekirse, uygulama başına 200 MB değil, 200 MB yerel olarak depolanır ve geri kalanı gerektiğinde netten indirilir
Teşekkür ederim, ben de öyle düşünmüştüm ama muhtemelen yanlış ifade ettim. 200 MB'ın üzerindeki her şey (veya ek olarak indirilen her şey) önbellek olarak depolanır ve sistem, alanın tükendiğine karar verirse silmeye başlar; bu muhtemelen yeterli boş alan ve ardından en az kullanılan içerik oluşana kadar gerçekleşmeyecektir. silinecek, dolayısıyla pratikte muhtemelen pek bir sorun olmayacak.
Daha ne öğrenmem gerekiyor, güya bu sınır oyunlar için geçerli olmayacak ya da oyun tabanda 200 MB'tan büyük olabilir. Ancak bunun tam olarak nasıl kastedildiğini hala bilmiyorum. Apple'ın hala bu politikayı geliştiricilerden gelen geri bildirimlere göre ayarlaması oldukça muhtemel.
hehe Pokemon TCG – 4 GB, Order Chaos Online – 1,6 GB Hearthstone 1,3 GB Bunu gerçekten merak ediyorum.
oyunların özel bir modu olduğuna dair bilgiler vardı. Şimdi detayları bir araya getiriyorum ve makaleyi tamamlayacağız.
Bunu yapamam ve eğer birilerini kırıyorsam şimdiden özür dilerim ama sizinle paylaşmak istediğim kocaman, samimi ve katışıksız bir mutluluk var...
Yeni Apple TV'nin duyurulduğu günün ertesi günü, tembel değildim ve Apple piyangosuna (seçmeli miyim?) kaydoldum ve Geliştirici Kiti'ni daha satışa çıkmadan önce edinme olanağına sahip oldum.
Dün akşam Apple bana ilk parti için beni seçtiğini yazdı :)
Yani ben bu makalenin yazarıyla aynı değilim ve açıkçası Apple TV için Okul Öncesi Brasnicce üzerinde çalışıyorum - Ekim ayında App Store'unuzda mevcut :)
yani kayıt olan herkesin muhtemelen aldığını düşünüyorum :) Ben de dün sipariş verdim ve gerçekten çok sabırsızlıkla bekliyorum... Ve teslimatını bekleyen bir kişi daha tanıyorum...
Neyse, şimdilik satışlar başladığında muhtemelen pek çok uygulama olacak gibi görünüyor :)
Muhtemelen herkes vermez; bana vermediler :(
:( Senin için üzgün hissediyorum.
İsteyen olursa sekiz tane beyaz Apple çıkartmam var… Postayla gönderebilirim…