Keçən həftə Apple digər şeylər arasında təqdim etdi yeni Apple TV tvOS əməliyyat sistemi ilə. App Store-dan tətbiqlərin yeni qara qutuda quraşdırıla bilməsi, əlbəttə ki, tərtibatçıları çox sevindirdi.
Tərtibatçıların iki variantı var. Onlar Apple TV aparatına tam girişi olan yerli proqram yaza bilərlər. Mövcud SDK (proqramçılar üçün kitabxanalar dəsti) tərtibatçıların artıq iPhone, iPad-dən bildikləri ilə çox oxşardır və proqramlaşdırma dilləri eynidir - Objective-C və daha gənc Swift.
Ancaq daha sadə tətbiqlər üçün Apple tərtibatçılara TVML şəklində ikinci variantı - Televiziya İşarələmə Dilini təklif etdi. TVML adının şübhəli şəkildə HTML-yə bənzədiyini hiss edirsinizsə, haqlısınız. Bu, həqiqətən XML-ə əsaslanan və HTML-ə çox bənzəyən bir işarələmə dilidir, yalnız daha sadədir və daha sərt sintaksisə malikdir. Ancaq Netflix kimi proqramlar üçün tamamilə mükəmməldir. İstifadəçilər də bundan faydalanacaqlar, çünki TVML-nin sərtliyi multimedia proqramlarının eyni görünməsinə və işləməsinə səbəb olacaq.
İlk tətbiqə gedən yol
Beləliklə, etməli olduğum ilk şey Xcode inkişaf mühitinin yeni beta versiyasını yükləmək oldu (versiya 7.1 mövcuddur) burada). Bu, mənə tvOS SDK-ya giriş imkanı verdi və dördüncü nəsil Apple TV-ni hədəfləyən yeni layihəyə başlaya bildim. Tətbiq yalnız tvOS ola bilər və ya kod “universal” proqram yaratmaq üçün mövcud iOS proqramına əlavə edilə bilər – bu gün iPhone və iPad proqramlarına oxşar model.
Birinci problem: Xcode yalnız yerli proqram yaratmaq imkanı təklif edir. Ancaq mən çox tez sənədlərdə tərtibatçılara bu skeleti dəyişdirməyə və TVML üçün hazırlamağa kömək edəcək bir bölmə tapdım. Əsasən, bu, Swift-də bir neçə sətir koddur ki, sadəcə Apple TV-də tam ekran obyekti yaradır və artıq JavaScript-də yazılmış proqramın əsas hissəsini yükləyir.
İkinci problem: TVML proqramları həqiqətən veb səhifəyə çox bənzəyir və buna görə də bütün kodlar İnternetdən yüklənir. Tətbiqin özü əslində sadəcə "bootloader"dir, o, yalnız minimum kod və ən əsas qrafik elementləri (tətbiq simvolu və s.) ehtiva edir. Sonda mən əsas JavaScript kodunu uğurla proqrama birbaşa daxil etdim və Apple TV İnternetə qoşulmadıqda heç olmasa fərdi səhv mesajı göstərmək imkanı əldə etdim.
Üçüncü kiçik problem: iOS 9 və onunla birlikdə tvOS ciddi şəkildə tələb edir ki, İnternetə olan bütün əlaqə HTTPS vasitəsilə şifrələnsin. Bu, iOS 9-da bütün proqramlar üçün təqdim edilən xüsusiyyətdir və səbəb istifadəçi məxfiliyinə və məlumat təhlükəsizliyinə təzyiqdir. Beləliklə, veb serverdə SSL sertifikatı yerləşdirmək lazım olacaq. Onu ildə 5 dollara (120 kron) almaq olar və ya siz, məsələn, avtomatik olaraq və sərmayə qoymadan HTTPS-in qayğısına qalacaq CloudFlare xidmətindən istifadə edə bilərsiniz. İkinci seçim, tətbiq üçün bu məhdudiyyəti söndürməkdir, bu, hələlik mümkündür, lakin mən bunu qətiliklə tövsiyə etməzdim.
Bir neçə saatlıq sənədləri oxuduqdan sonra, hələ də bəzən kiçik səhvlər var, mən çox sadə, lakin işləyən bir proqram hazırladım. Orada məşhur "Salam Dünya" mətni və iki düymə göstərilirdi. Düyməni aktiv etmək və əslində bir şey etmək üçün iki saata yaxın vaxt sərf etdim. Ancaq səhərin erkən saatlarını nəzərə alaraq, yatmağa üstünlük verdim... və bu yaxşı bir şey idi.
Keçən gün məndə birbaşa Apple-dan hazır nümunə TVML tətbiqini yükləmək fikri yarandı. Axtardığımı kodda çox tez tapdım və düymə canlı və işləyirdi. Digər şeylər arasında mən İnternetdə tvOS dərsliyinin ilk iki hissəsini də kəşf etdim. Hər iki resurs çox kömək etdi, ona görə də yeni bir layihəyə başladım və ilk real tətbiqimə başladım.
İlk real tətbiq
Mən tamamilə sıfırdan başladım, ilk TVML səhifəsi. Üstünlük ondadır ki, Apple tərtibatçılar üçün sadəcə sənədlərdən kopyalanması lazım olan 18 hazır TVML şablonu hazırlamışdır. Bir şablonu redaktə etmək təxminən bir saat çəkdi, ilk növbədə mən hazır TVML-ni bütün lazımi məlumatlarla Apple TV-yə göndərmək üçün API-mizi hazırladığım üçün.
İkinci şablon cəmi 10 dəqiqə çəkdi. Mən iki JavaScript əlavə etdim - onlarda olan kodların əksəriyyəti birbaşa Apple-dan gəlir, ona görə də təkəri yenidən ixtira etmək nəyə lazımdır. Apple tövsiyə olunan məzmun yükləmə göstəricisi və mümkün xəta ekranı daxil olmaqla, TVML şablonlarının yüklənməsi və göstərilməsi ilə bağlı skriptlər hazırlamışdır.
İki saatdan az müddətdə çox çılpaq, lakin işlək PLAY.CZ tətbiqini bir araya gətirə bildim. O, radio stansiyalarının siyahısını göstərə bilər, onu janr üzrə süzgəcdən keçirə və radionu işə sala bilər. Bəli, bir çox şey proqramda deyil, lakin əsaslar işləyir.
[youtube id=”kLKvWC-rj7Q” width=”620″ hündürlük=”360″]
Üstünlüyü ondan ibarətdir ki, proqram əsasən veb saytın JavaScript ilə təchiz edilmiş xüsusi versiyasından başqa bir şey deyil və siz həmçinin xarici görünüşü dəyişdirmək üçün CSS-dən istifadə edə bilərsiniz.
Apple hələ də hazırlamaq üçün bir neçə şey tələb edir. Tətbiq simvolu bir deyil, iki - daha kiçik və daha böyükdür. Yenilik ondan ibarətdir ki, ikona sadə təsvir deyil, paralaks effekti ehtiva edir və 2-5 təbəqədən (fon, orta və ön planda obyektlər) ibarətdir. Tətbiqdəki bütün aktiv şəkillər eyni effekti ehtiva edə bilər.
Hər bir təbəqə əslində şəffaf fonda sadəcə bir şəkildir. Apple bu laylı şəkilləri tərtib etmək üçün öz tətbiqini hazırladı və tezliklə Adobe Photoshop üçün ixrac plaginini buraxacağını vəd edir.
Başqa bir tələb "Üst rəf" şəklidir. İstifadəçi proqramı yuxarı cərgədə (yuxarı rəfdə) görkəmli mövqeyə yerləşdirirsə, proqram həmçinin proqramlar siyahısının yuxarısında iş masası üçün məzmun təmin etməlidir. Ya sadəcə sadə bir şəkil ola bilər, ya da aktiv sahə ola bilər, məsələn sevimli filmlərin siyahısı və ya bizim vəziyyətimizdə radio stansiyaları.
Bir çox tərtibatçılar yeni tvOS-un imkanlarını araşdırmağa başlayırlar. Yaxşı xəbər budur ki, məzmun proqramı yazmaq çox asandır və Apple TVML ilə tərtibatçılar üçün uzun bir yol keçib. Proqram yaratmaq (məsələn, PLAY.CZ və ya iVyszílő) asan və sürətli olmalıdır. Yeni Apple TV-nin satışa çıxması ilə eyni vaxtda çoxlu sayda proqramın hazır olacağı şansı var.
Doğma proqram yazmaq və ya oyunu iOS-dan tvOS-a köçürmək daha çətin olacaq, lakin çox deyil. Ən böyük maneə fərqli idarəetmələr və hər proqram üçün 200 MB limit olacaq. Doğma proqram mağazadan məlumatların yalnız məhdud bir hissəsini yükləyə bilər və qalan hər şey əlavə olaraq yüklənməlidir və sistemin bu məlumatları silməyəcəyinə zəmanət yoxdur. Bununla belə, tərtibatçılar, həm də iOS 9-un bir hissəsi olan "Tətbiq İncəlmə" adlı alətlər dəstinin mövcudluğu sayəsində, şübhəsiz ki, bu məhdudiyyətlə tez bir zamanda məşğul olacaqlar.
Gözəl məqalə. təşəkkürlər. Ola bilsin ki, vaxt keçdikcə Apple-dan mən bir developer olmadan da iOS üçün FileMaker ilə mümkün olduğu kimi daha sadə proqramlar (həllər) hazırlamaq üçün istifadəçi həllini görəcəyik.
Nəzəri olaraq… Swift yükləyicisi hələ də eyni olan bir neçə sətirdir, yalnız ilk TVML faylının URL-i dəyişir. Kimsə istəsə, yəqin ki, URL ilə uzaqdan bir quruluş işlədə və IPA faylını geri göndərə biləcək bir skript yaza bilər. Və ya mac-ınız varsa, sadəcə URL-i qoyub qurmağa başladığınız layihəni göndərmək problem deyil. Üstünlük ondan ibarətdir ki, əgər TVML proqramdan kənardırsa, sizə əslində yalnız bir ictimai quruluşa və ola bilsin ki, bir özəl (inkişaf) quruluşa ehtiyacınız var və siz yalnız serverdə TVML-ni və beləliklə, tətbiqin işləməsini dəyişə bilərsiniz.
"Tətbiq yalnız tvOS ola bilər və ya kod mövcud iOS proqramına əlavə edilə bilər ki, bu gün iPhone və iPad proqramlarına bənzər bir model olan "hamıya uyğun" proqram yaradıla bilər."
Maraqlıdır, nə demək istəyirsən? Şəxsən mən heç bir yerdə universal iPhone, iPad və Apple TV-nin daxil olacağı 1 quruluş yaratmaq üçün bir yol tapmadım.. Onlar ayrı SDK-lar (OSX-ə bənzər) olduğundan, tvOS üçün əlavə hədəfə və beləliklə də ayrıca quruluşa ehtiyacınız var. Mən nəsə əskikəm?
Xcode 7.1-də tvOS proqramları artıq mövcud layihəyə başqa hədəf kimi əlavə edilə bilər - Apple Watch üçün tətbiqlərə və ya bəlkə də bildiriş mərkəzi üçün vidcetə bənzər. Bununla belə, onun mağazaya necə yüklənəcəyini hələ bilmirəm... Güman edirəm ki, Xcode bir paket göndərəcək və App Store daha sonra onu böləcək... Yəqin ki, onların indi Saat ilə etdiklərinə bənzəyir.
noo.. fikrimce bunlar 2 tam fərqli şeydir.. saat uzadılmasıdır.. ya da heç olmasa watchOS 2.0-a qədər idi.. iOS hədəfi ilə birlikdə verildi və iPhone olmadan belə işləmirdi.. ATV ayrı bir qurumdur.. danışdığım budur , ATV-nin konstruksiyası ayrı olacaq (2$ ödəmək lazımdır) və əlavə olaraq iOS 2$ ödəyib yoxsa universal vermək mümkün olacaq 2$ həm iOS, həm də ATV üçün qurulur. ATV üçün ailə..
Beləliklə, real işə salınma görünəcək, lakin o, həqiqətən, məsələn, Apple Watch kodu ilə eyni davranır. Əks halda, sənədlərdə qeyd edilir ki, tvOS üçün kodu mövcud tətbiqə əlavə etmək mümkün olacaq və beləliklə, həm iOS, həm də tvOS üçün eyni vaxtda bir tətbiqi (App Store-da bir qurum) satmaq mümkün olacaq - bu proqram üçün bir alış. müştəri və ya ayrıca qurum kimi - iOS və tvOS üçün ayrıca satınalma.
Sadəcə aydınlaşdırmaq üçün, hər bir proqram üçün 200MB deyil, 200MB yerli olaraq saxlanılır və qalanı lazım olduqda şəbəkədən endirilir.
Təşəkkür edirəm, mən də belə düşünmüşəm, amma yəqin ki, səhv yazmışam. 200MB-dan yuxarı olan hər şey (və ya əlavə olaraq yüklənmiş hər şey) keş kimi saxlanılır və sistem boş yerin bitdiyinə qərar verərsə, onu silməyə başlayır - bu, kifayət qədər boş yer və daha sonra ən az istifadə olunan məzmun olana qədər baş verməyəcək. silinəcək, ona görə də praktikada çox da problem olmayacaq.
Başqa nə öyrənməliyəm, guya bu məhdudiyyət oyunlara şamil edilməyəcək və ya oyun bazada 200MB-dan böyük ola bilər. Ancaq bunun tam olaraq necə nəzərdə tutulduğunu hələ də dəqiq bilmirəm. Tamamilə mümkündür ki, Apple hələ də tərtibatçıların rəyinə əsasən bu siyasəti tənzimləyir.
hehe Pokemon TCG – 4 GB, Xaosu onlayn sifariş edin – 1,6 GB Hearthstone 1,3 GB Mənə çox maraqlıdır.
Oyunların xüsusi rejimə malik olması barədə məlumatlar var idi. İndi təfərrüatları birləşdirirəm və məqaləni tamamlayacağıq.
Mən bunu bacarmıram və kimisə incitmişəmsə əvvəlcədən üzr istəyirəm, ancaq sizinlə bölüşmək istədiyim böyük, səmimi və təmənnasız bir sevincim var...
Yeni Apple TV-nin elanından bir gün sonra mən tənbəllik etmədim və hələ satışa çıxmamışdan əvvəl Developer Kit əldə etmək imkanı ilə Apple lotereyasına (seçməliyəmmi?) yazıldım.
Dünən axşam Apple mənə yazdı ki, məni ilk partiyaya seçdi :)
Beləliklə, mən bu məqalənin müəllifi ilə eyni deyiləm və mən vicdanla Apple TV üçün Məktəbəqədər Brasnicce üzərində işləyirəm - oktyabr ayı ərzində App Store-da mövcuddur :)
ona görə də məndə elə bir hiss var ki, yəqin ki, qeydiyyatdan keçən hər kəs onu əldə edib :) Mən də dünən sifariş vermişəm və həqiqətən, çox səbirsizliklə gözləyirəm... Və daha bir nəfər tanıyıram ki, o da çatdırılmasını gözləyir...
Hər halda, hələ ki, satışlar başlayanda çoxlu proqramlar olacaq :)
Yəqin ki, hamı vermir - mənə vermədilər :(
:( Sənə yazığım gəlir.
Kim istəsə, mənim səkkiz ağ Apple stikerim var... Mən onları poçtla göndərə bilərəm...