Փակել գովազդը

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-ի մաս են կազմում:

Թեմաներ: , ,
.