Apple-ն անցյալ շաբաթ ներկայացրել է, ի թիվս այլ բաների նոր Apple TV tvOS օպերացիոն համակարգով։ Այն փաստը, որ App Store-ից հավելվածները կարող են տեղադրվել նոր սև արկղում, անշուշտ, ամենից շատ ուրախացրել է մշակողներին:
Մշակողները երկու տարբերակ ունեն. Նրանք կարող են գրել բնիկ հավելված, որը լիովին հասանելի է Apple TV-ի սարքաշարին: Հասանելի SDK-ն (մշակողների համար գրադարանների հավաքածու) շատ նման է այն բանին, ինչ ծրագրավորողներն արդեն գիտեն iPhone-ից, iPad-ից, և ծրագրավորման լեզուները նույնն են՝ Objective-C-ը և կրտսեր Swift-ը:
Սակայն ավելի պարզ հավելվածների համար Apple-ը ծրագրավորողներին առաջարկեց երկրորդ տարբերակ TVML-ի տեսքով՝ Television Markup Language: Եթե կարծում եք, որ TVML անունը կասկածելիորեն նման է HTML-ին, ապա ճիշտ եք: Այն իսկապես XML-ի վրա հիմնված նշագրման լեզու է և շատ նման է HTML-ին, միայն թե այն շատ ավելի պարզ է և ունի ավելի խիստ շարահյուսություն։ Բայց դա բացարձակապես կատարյալ է այնպիսի ծրագրերի համար, ինչպիսիք են Netflix-ը: Եվ օգտատերերը նույնպես կշահեն, քանի որ TVML-ի խստությունը կստիպի մուլտիմեդիա հավելվածներին նույն տեսքն ու աշխատանքը կատարել:
Ճանապարհ դեպի առաջին դիմում
Այսպիսով, առաջին բանը, որ ես պետք է անեի, ներբեռնել է Xcode մշակման միջավայրի նոր բետա տարբերակը (7.1 տարբերակը հասանելի է այստեղ) Սա ինձ հնարավորություն տվեց մուտք գործել tvOS SDK և կարողացա սկսել նոր նախագիծ, որը հատուկ ուղղված էր չորրորդ սերնդի Apple TV-ին: Հավելվածը կարող է լինել միայն tvOS-ի համար, կամ կոդը կարող է ավելացվել գոյություն ունեցող iOS հավելվածին՝ «ունիվերսալ» հավելված ստեղծելու համար, որը նման է iPhone-ի և iPad-ի այսօրվա հավելվածներին:
Խնդիր առաջին. Xcode-ն առաջարկում է միայն բնիկ հավելված ստեղծելու հնարավորություն: Բայց ես շատ արագ գտա փաստաթղթերի մի հատված, որը կօգնի մշակողներին փոխել այս կմախքը և պատրաստել այն TVML-ի համար: Հիմնականում Swift-ի մի քանի տող կոդ է, որը պարզապես Apple TV-ում ստեղծում է ամբողջական էկրանով օբյեկտ և բեռնում հավելվածի հիմնական մասը, որն արդեն գրված է JavaScript-ով:
Խնդիր երկրորդ. TVML հավելվածներն իսկապես շատ նման են վեբ էջի, և, հետևաբար, ամբողջ ծածկագիրը նույնպես բեռնված է ինտերնետից: Հավելվածն ինքնին իրականում պարզապես «bootloader» է, այն պարունակում է միայն նվազագույն կոդ և ամենատարրական գրաֆիկական տարրեր (հավելվածի պատկերակ և այլն): Ի վերջո, ես հաջողությամբ տեղադրեցի JavaScript-ի հիմնական կոդը անմիջապես հավելվածի մեջ և ստացա առնվազն հատուկ սխալի հաղորդագրություն ցուցադրելու հնարավորություն, երբ Apple TV-ն միացված չէ ինտերնետին:
Երրորդ փոքր խնդիրը. iOS 9-ը և դրա հետ մեկտեղ tvOS-ը խստորեն պահանջում են, որ ինտերնետի նկատմամբ ողջ հաղորդակցությունը տեղի ունենա կոդավորված HTTPS-ի միջոցով: Սա iOS 9-ում ներդրված գործառույթ է բոլոր հավելվածների համար, և պատճառը օգտատերերի գաղտնիության և տվյալների անվտանգության վրա ճնշումն է: Այսպիսով, անհրաժեշտ կլինի տեղադրել SSL վկայագիր վեբ սերվերի վրա: Այն կարելի է գնել տարեկան 5 դոլարով (120 կրոն), կամ կարող եք օգտագործել, օրինակ, CloudFlare ծառայությունը, որն ինքնուրույն և առանց ներդրումների կհոգա HTTPS-ի մասին: Երկրորդ տարբերակը հավելվածի համար այս սահմանափակումն անջատելն է, որն առայժմ հնարավոր է, բայց ես հաստատ խորհուրդ չեմ տա։
Փաստաթղթերը կարդալուց մի քանի ժամ հետո, որտեղ դեռ կան երբեմն աննշան սխալներ, ես մշակեցի շատ տարրական, բայց աշխատող ծրագիր: Այն ցուցադրում էր հայտնի «Բարև աշխարհ» տեքստը և երկու կոճակ: Ես մոտ երկու ժամ ծախսեցի՝ փորձելով ստիպել կոճակին ակտիվ լինել և իրականում ինչ-որ բան անել: Բայց հաշվի առնելով առավոտվա վաղ ժամերը, ես նախընտրեցի քնել… և դա լավ բան էր:
Օրերս ես վառ միտք ունեի անմիջապես Apple-ից ներբեռնելու պատրաստի TVML հավելվածի նմուշը։ Ես շատ արագ գտա այն, ինչ փնտրում էի կոդում, և կոճակը գործում էր և աշխատում էր: Ի թիվս այլ բաների, ես հայտնաբերեցի նաև tvOS ձեռնարկի առաջին երկու մասերը ինտերնետում: Երկու ռեսուրսներն էլ շատ օգնեցին, ուստի ես սկսեցի նոր նախագիծ և սկսեցի իմ առաջին իրական հավելվածը:
Առաջին իրական դիմումը
Ես սկսեցի ամբողջովին զրոյից, առաջին TVML էջը: Առավելությունն այն է, որ Apple-ը մշակողների համար պատրաստել է 18 պատրաստի TVML կաղապարներ, որոնք պարզապես անհրաժեշտ է պատճենել փաստաթղթերից։ Մեկ ձևանմուշի խմբագրումը տևեց մոտ մեկ ժամ, հիմնականում այն պատճառով, որ ես պատրաստում էի մեր API-ն՝ պատրաստի TVML-ն բոլոր անհրաժեշտ տվյալներով Apple TV-ին ուղարկելու համար:
Երկրորդ ձևանմուշը տևեց ընդամենը 10 րոպե: Ես ավելացրել եմ երկու JavaScript՝ դրանցում առկա կոդի մեծ մասը գալիս է անմիջապես Apple-ից, ուստի ինչու՞ նորից հորինել անիվը: Apple-ը պատրաստել է սցենարներ, որոնք հոգ են տանում TVML կաղապարների բեռնման և ցուցադրման մասին, ներառյալ առաջարկվող բովանդակության բեռնման ցուցիչը և հնարավոր սխալների ցուցադրումը:
Երկու ժամից էլ քիչ ժամանակում ես կարողացա հավաքել շատ մերկ, բայց գործող PLAY.CZ հավելվածը: Այն կարող է ցուցադրել ռադիոկայանների ցանկը, այն կարող է զտել ըստ ժանրի և կարող է սկսել ռադիոն: Այո, շատ բաներ հավելվածում չկան, բայց հիմունքները աշխատում են:
[youtube id=”kLKvWC-rj7Q” width=”620″ բարձրություն=”360″]
Առավելությունն այն է, որ հավելվածը հիմնականում ոչ այլ ինչ է, քան վեբ կայքի հատուկ տարբերակ, որն աշխատում է JavaScript-ով և կարող եք նաև օգտագործել CSS՝ արտաքին տեսքը փոփոխելու համար:
Apple-ը դեռ մի քանի բան է պահանջում՝ պատրաստելու համար: Հավելվածի պատկերակը մեկ չէ, այլ երկու՝ ավելի փոքր և ավելի մեծ: Նորույթն այն է, որ պատկերակը պարզ պատկեր չէ, այլ պարունակում է պարալաքսի էֆեկտ և կազմված է 2-ից 5 շերտերից (ֆոն, առարկաներ մեջտեղում և առաջին պլանում): Հավելվածի բոլոր ակտիվ պատկերները կարող են պարունակել նույն էֆեկտը:
Յուրաքանչյուր շերտ իրականում պարզապես պատկեր է թափանցիկ ֆոնի վրա: Apple-ը պատրաստել է իր սեփական հավելվածը այս շերտավոր պատկերները կազմելու համար և խոստանում է շուտով թողարկել արտահանման հավելված Adobe Photoshop-ի համար։
Մեկ այլ պահանջ է «վերևի դարակ» պատկերը: Եթե օգտատերը հավելվածը տեղադրում է վերևի շարքում (վերևի դարակում), ապա հավելվածը պետք է նաև բովանդակություն տրամադրի աշխատասեղանի համար՝ հավելվածների ցանկի վերևում: Այն կարող է լինել կամ պարզապես պարզ նկար, կամ այն կարող է լինել ակտիվ տարածք, օրինակ՝ սիրված ֆիլմերի ցանկով կամ, մեր դեպքում, ռադիոկայաններով:
Շատ մշակողներ նոր են սկսում ուսումնասիրել նոր tvOS-ի հնարավորությունները: Լավ նորությունն այն է, որ բովանդակության հավելված գրելը շատ հեշտ է, և Apple-ը երկար ճանապարհ է անցել TVML-ով մշակողների համար: Հավելվածի ստեղծումը (օրինակ՝ PLAY.CZ կամ iVyszílő) պետք է լինի հեշտ և արագ: Մեծ հավանականություն կա, որ նոր Apple TV-ի վաճառքի հետ միաժամանակ մեծ թվով հավելվածներ պատրաստ կլինեն։
Մայրենի հավելված գրելը կամ խաղը iOS-ից tvOS տեղափոխելը ավելի դժվար կլինի, բայց ոչ շատ: Ամենամեծ խոչընդոտը լինելու է տարբեր հսկիչները և յուրաքանչյուր հավելվածի համար 200 ՄԲ սահմանաչափը: Մայրենի հավելվածը կարող է ներբեռնել միայն տվյալների սահմանափակ մասը խանութից, իսկ մնացած ամեն ինչը պետք է լրացուցիչ ներբեռնվի, և երաշխիք չկա, որ համակարգը չի ջնջի այս տվյալները: Այնուամենայնիվ, մշակողները, անշուշտ, արագ կզբաղվեն այս սահմանափակումով, նաև շնորհիվ «App Thinning» կոչվող գործիքների հավաքածուի առկայության, որոնք նույնպես iOS 9-ի մաս են կազմում:
Հաճելի հոդված: Շնորհակալություն։ Թերևս ժամանակի ընթացքում Apple-ից կտեսնենք նաև ավելի պարզ հավելվածներ (լուծումներ) պատրաստելու օգտատերերի լուծում, ինչպես դա հնարավոր է FileMaker-ի դեպքում iOS-ի համար, առանց ես ծրագրավորող լինելու:
Տեսականորեն… Swift բեռնիչը մի քանի տող է, որոնք դեռ նույնն են, միայն առաջին TVML ֆայլի URL-ն է փոխվում: Եթե ինչ-որ մեկը ցանկանում է, նա հավանաբար կարող է գրել սկրիպտ, որը կարող է հեռակա կարգով գործարկել ձեր URL-ով build-ը և հետ ուղարկել IPA ֆայլ: Կամ եթե դուք ունեք mac, խնդիր չէ ուղարկել նախագիծը, որտեղ դուք պարզապես տեղադրեք URL-ը և սկսեք build-ը: Առավելությունն այն է, որ եթե TVML-ը հավելվածից դուրս է, իրականում ձեզ անհրաժեշտ է միայն մեկ հանրային և, հնարավոր է, մեկ մասնավոր (զարգացման) կառուցում, և դուք կարող եք փոխել միայն TVML-ը սերվերի վրա և, հետևաբար, հավելվածի աշխատանքը:
«Հավելվածը կարող է լինել միայն tvOS-ի համար, կամ կոդը կարող է ավելացվել iOS-ի գոյություն ունեցող հավելվածին, որպեսզի ստեղծվի «մեկ չափի հարմար» հավելված՝ մոդել, որը նման է iPhone-ի և iPad-ի այսօրվա հավելվածներին»:
Հետաքրքիր է, թե ինչ նկատի ունեք: Անձամբ ես ոչ մի տեղ չեմ գտել 1 բիլդ պատրաստելու միջոց, որը կներառի ունիվերսալ iPhone, iPad և Apple TV.. քանի որ դրանք առանձին SDK-ներ են (նման OSX-ին), ձեզ հարկավոր է լրացուցիչ թիրախ tvOS-ի համար և, հետևաբար, նաև առանձին կառուցում: Ինչ-որ բան կարոտում եմ:
Xcode 7.1-ում tvOS հավելվածները կարող են ավելացվել որպես ևս մեկ թիրախ արդեն գոյություն ունեցող նախագծին` նման է Apple Watch-ի հավելվածներին կամ գուցե ծանուցումների կենտրոնի վիջեթին: Այնուամենայնիվ, ես դեռ չգիտեմ, թե ինչպես է այն վերբեռնվելու խանութում... Ենթադրում եմ, որ Xcode-ը կուղարկի մեկ փաթեթ, և App Store-ը այն կբաժանի այն... Հավանաբար նման է այն, ինչ հիմա անում են Watch-ի հետ:
noo.. իմ կարծիքով սրանք 2 լրիվ տարբեր բաներ են.. ժամացույցը ընդլայնում է.. կամ գոնե մինչև watchOS 2.0 էր.. տրված էր iOS թիրախի հետ միասին և նույնիսկ առանց iPhone-ի չէր աշխատում.. ATV-ն առանձին սուբյեկտ է.. սրա մասին եմ խոսում, արդյոք ATV-ի կոնստրուկցիան կլինի առանձին (պետք է վճարել 2$) և բացի այդ iOS-ը վճարել է 2$, թե հնարավոր կլինի տրամադրել ունիվերսալ 2$ կառուցում ինչպես iOS-ի, այնպես էլ ATV-ի համար: ATV-ի ընտանիքի համար:
այսպիսով, իրական մեկնարկը ցույց կտա, բայց այն իրոք նույնն է վարվում, ինչ օրինակ Apple Watch կոդը: Հակառակ դեպքում, փաստաթղթերում նշվում է, որ հնարավոր կլինի tvOS-ի կոդը ավելացնել առկա հավելվածին, և այդպիսով հնարավոր կլինի վաճառել մեկ հավելված (մեկ սուբյեկտ App Store-ում) և iOS-ի և tvOS-ի համար միաժամանակ. հաճախորդը, կամ որպես առանձին սուբյեկտ՝ առանձին գնում iOS-ի և tvOS-ի համար:
Պարզապես պարզաբանելու համար, որ դա ոչ թե 200 ՄԲ է մեկ հավելվածի համար, այլ 200 ՄԲ պահվում է տեղում, իսկ մնացածը ներբեռնվում է ցանցից, երբ անհրաժեշտ է:
Շնորհակալ եմ, ես այդպես էի մտածում, բայց երևի սխալ եմ ձևակերպել։ 200 ՄԲ-ից բարձր (կամ լրացուցիչ ներբեռնված) ամեն ինչ պահվում է որպես քեշ, և եթե համակարգը որոշի, որ տարածքը սպառվում է, սկսում է ջնջել այն, ինչը, հավանաբար, տեղի չի ունենա այնքան ժամանակ, քանի դեռ բավարար ազատ տարածք, իսկ հետո ամենաքիչ օգտագործվող բովանդակությունը: կջնջվի, ուստի գործնականում, հավանաբար, մեծ խնդիր չի լինի:
Էլ ինչ պետք է պարզեմ, իբր այս սահմանը չի տարածվի խաղերի վրա, կամ խաղը կարող է լինել ավելի մեծ, քան 200 ՄԲ հենց բազայում: Բայց ես դեռ չգիտեմ, թե կոնկրետ ինչպես է սա նշանակում: Միանգամայն հնարավոր է, որ Apple-ը դեռ ճշգրտում է այս քաղաքականությունը՝ համաձայն մշակողների կարծիքների:
hehe Pokemon TCG – 4 GB, Order chaos online – 1,6 GB Hearthstone 1,3 GB Ինձ իսկապես հետաքրքիր է սա:
տեղեկություն կար, որ խաղերն ունեն հատուկ ռեժիմ։ Ես հիմա հավաքում եմ մանրամասները, և մենք կլրացնենք հոդվածը:
Ես չեմ կարող դա անել, և նախապես ներողություն եմ խնդրում, եթե ինչ-որ մեկին վիրավորում եմ, բայց ես ուղղակի մեծ, անկեղծ և անկեղծ ուրախություն ունեմ, որ ուզում էի կիսվել ձեզ հետ...
Նոր Apple TV-ի հայտարարության հաջորդ օրը ես չծուլացա և գրանցվեցի Apple-ի վիճակախաղին (կընտրե՞մ)՝ նույնիսկ մինչև վաճառքի դուրս գալը Developer Kit ձեռք բերելու հնարավորությամբ:
Երեկ երեկոյան Apple-ն ինձ գրեց, որ ընտրել է ինձ առաջին խմբաքանակի համար :)
Այսպիսով, ես նույնը չեմ, ինչ այս հոդվածի հեղինակը, և ես անկեղծորեն աշխատում եմ Preschool Brasnicce-ի վրա Apple TV-ի համար, որը հասանելի է ձեր App Store-ում հոկտեմբերին :)
այնպես որ ես այնպիսի զգացողություն ունեմ, որ բոլոր գրանցվածները երևի ստացել են :) Ես էլ եմ երեկ պատվիրել և իսկապես, շատ անհամբեր սպասում եմ դրան... Ու ես գիտեմ ևս մեկ հոգու, ով նույնպես սպասում է իր առաքմանը...
Ինչևէ, մինչ այժմ թվում է, որ վաճառքի մեկնարկի ժամանակ հավանաբար շատ հավելվածներ կլինեն :)
Երևի ոչ բոլորը - ինձ չեն տվել :(
:( Ես ցավում եմ քեզ համար.
Եթե որևէ մեկը ցանկանում է, ես ունեմ ութ սպիտակ Apple կպչուն պիտակներ… Ես կարող եմ դրանք ուղարկել փոստով…