რეკლამის დახურვა

Apple-მა გასულ კვირას წარადგინა, სხვა საკითხებთან ერთად ახალი Apple TV tvOS ოპერაციული სისტემით. ის ფაქტი, რომ App Store-ის აპლიკაციები შეიძლება დაინსტალირდეს ახალ შავ ყუთში, რა თქმა უნდა, ყველაზე მეტად გაახარა დეველოპერები.

დეველოპერებს ორი ვარიანტი აქვთ. მათ შეუძლიათ დაწერონ მშობლიური აპლიკაცია, რომელსაც აქვს სრული წვდომა Apple TV-ის აპარატურაზე. ხელმისაწვდომი SDK (ბიბლიოთეკების ნაკრები დეველოპერებისთვის) ძალიან ჰგავს იმას, რაც დეველოპერებმა უკვე იციან iPhone-დან, iPad-იდან და პროგრამირების ენები იგივეა - Objective-C და უმცროსი Swift.

მაგრამ უფრო მარტივი აპლიკაციებისთვის Apple-მა დეველოპერებს შესთავაზა მეორე ვარიანტი TVML-ის სახით - ტელევიზიის მარკირების ენა. თუ ფიქრობთ, რომ სახელი TVML საეჭვოდ ჰგავს HTML-ს, მართალი ხართ. ეს ნამდვილად არის მარკირების ენა, რომელიც დაფუძნებულია XML-ზე და ძალიან ჰგავს HTML-ს, მხოლოდ ის არის ბევრად უფრო მარტივი და აქვს უფრო მკაცრი სინტაქსი. მაგრამ ეს აბსოლუტურად შესანიშნავია ისეთი აპლიკაციებისთვის, როგორიცაა Netflix. და მომხმარებლებიც ისარგებლებენ, რადგან TVML-ის სიმკაცრე მულტიმედია აპლიკაციებს თითქმის ერთნაირად გამოიყურება და იმუშავებს.

გზა პირველი განაცხადისკენ

ასე რომ, პირველი რაც უნდა გამეკეთებინა იყო Xcode განვითარების გარემოს ახალი ბეტა ვერსიის ჩამოტვირთვა (7.1 ვერსია ხელმისაწვდომია აქ). ამან მომცა წვდომა tvOS SDK-ზე და შევძელი ახალი პროექტის დაწყება, რომელიც კონკრეტულად მიზნად ისახავდა მეოთხე თაობის Apple TV-ს. აპი შეიძლება იყოს მხოლოდ tvOS-ზე, ან კოდი შეიძლება დაემატოს არსებულ iOS აპს „უნივერსალური“ აპლიკაციის შესაქმნელად - მოდელის მსგავსი iPhone და iPad აპლიკაციების დღეს.

პრობლემა პირველი: Xcode გთავაზობთ მხოლოდ მშობლიური აპლიკაციის შექმნის შესაძლებლობას. მაგრამ მე ძალიან სწრაფად ვიპოვე განყოფილება დოკუმენტაციაში, რომელიც დაეხმარება დეველოპერებს შეცვალონ ეს ჩონჩხი და მოამზადონ იგი TVML-სთვის. ძირითადად, ეს არის კოდის რამდენიმე ხაზი Swift-ში, რომელიც მხოლოდ Apple TV-ზე ქმნის სრულეკრანიან ობიექტს და იტვირთება აპლიკაციის ძირითადი ნაწილი, რომელიც უკვე დაწერილია JavaScript-ში.

პრობლემა მეორე: TVML აპლიკაციები მართლაც ძალიან ჰგავს ვებ გვერდს და, შესაბამისად, ყველა კოდი იტვირთება ინტერნეტიდან. თავად აპლიკაცია რეალურად მხოლოდ „ჩამტვირთველია“, ის შეიცავს მხოლოდ მინიმალურ კოდს და ყველაზე ძირითად გრაფიკულ ელემენტებს (აპლიკაციის ხატულა და მსგავსი). საბოლოო ჯამში, მე წარმატებით ჩავაყენე JavaScript-ის მთავარი კოდი პირდაპირ აპლიკაციაში და მივიღე შესაძლებლობა მაინც გამომეჩინა პირადი შეცდომის შეტყობინება, როდესაც Apple TV არ არის დაკავშირებული ინტერნეტთან.

მესამე მცირე პრობლემა: iOS 9 და მასთან ერთად tvOS მკაცრად მოითხოვს, რომ ინტერნეტთან მთელი კომუნიკაცია დაშიფრული იყოს HTTPS-ის საშუალებით. ეს არის iOS 9-ში დანერგილი ფუნქცია ყველა აპისთვის და ამის მიზეზი არის ზეწოლა მომხმარებლის კონფიდენციალურობაზე და მონაცემთა უსაფრთხოებაზე. ასე რომ, საჭირო იქნება SSL სერთიფიკატის განთავსება ვებ სერვერზე. მისი შეძენა შესაძლებელია 5 დოლარად (120 გვირგვინი) წელიწადში, ან შეგიძლიათ გამოიყენოთ, მაგალითად, CloudFlare სერვისი, რომელიც თავად იზრუნებს HTTPS-ზე, ავტომატურად და ინვესტიციის გარეშე. მეორე ვარიანტი არის აპლიკაციისთვის ამ შეზღუდვის გამორთვა, რაც ჯერ-ჯერობით შესაძლებელია, მაგრამ მე ამას ნამდვილად არ გირჩევთ.

დოკუმენტაციის წაკითხვის რამდენიმე საათის შემდეგ, სადაც ჯერ კიდევ არის შემთხვევითი მცირე შეცდომები, შევიმუშავე ძალიან ძირითადი, მაგრამ სამუშაო აპლიკაცია. მასზე ნაჩვენები იყო პოპულარული ტექსტი "Hello World" და ორი ღილაკი. დაახლოებით ორი საათი ვცდილობდი, ღილაკი აქტიური ყოფილიყო და რეალურად რაღაც გამეკეთებინა. მაგრამ დილის ადრეული საათების გათვალისწინებით, დაძინება ვამჯობინე... და ეს კარგი იყო.

მეორე დღეს გამიჩნდა ნათელი იდეა, გადმომეწერა მზა TVML აპლიკაციის ნიმუში პირდაპირ Apple-დან. მე ვიპოვე ის რასაც ვეძებდი ძალიან სწრაფად კოდში და ღილაკი ცოცხალი იყო და მუშაობდა. სხვა საკითხებთან ერთად, მე ასევე აღმოვაჩინე tvOS გაკვეთილის პირველი ორი ნაწილი ინტერნეტში. ორივე რესურსი ძალიან დამეხმარა, ამიტომ დავიწყე ახალი პროექტი და დავიწყე ჩემი პირველი რეალური აპლიკაცია.

პირველი რეალური აპლიკაცია

დავიწყე სრულიად ნულიდან, პირველი TVML გვერდი. უპირატესობა ის არის, რომ Apple-მა მოამზადა 18 მზა TVML შაბლონი დეველოპერებისთვის, რომლებიც უბრალოდ უნდა დააკოპიროთ დოკუმენტაციიდან. ერთი შაბლონის რედაქტირებას დაახლოებით ერთი საათი დასჭირდა, უპირველეს ყოვლისა, იმიტომ, რომ მე ვამზადებდი ჩვენს API-ს მზა TVML-ს ყველა საჭირო მონაცემით Apple TV-ში გასაგზავნად.

მეორე შაბლონს მხოლოდ 10 წუთი დასჭირდა. მე დავამატე ორი JavaScript - მათში არსებული კოდის უმეტესი ნაწილი პირდაპირ Apple-ისგან მოდის, ასე რომ რატომ ხელახლა გამოვიგონოთ ბორბალი. Apple-მა მოამზადა სკრიპტები, რომლებიც ზრუნავენ TVML შაბლონების ჩატვირთვაზე და ჩვენებაზე, მათ შორის რეკომენდებული შინაარსის ჩატვირთვის ინდიკატორი და შესაძლო შეცდომის ჩვენება.

ორ საათზე ნაკლებ დროში შევძელი ძალიან შიშველი, მაგრამ მოქმედი PLAY.CZ აპლიკაციის შედგენა. მას შეუძლია რადიოსადგურების სიის ჩვენება, ჟანრის მიხედვით გაფილტვრა და რადიოს გაშვება. დიახ, ბევრი რამ არ არის აპლიკაციაში, მაგრამ საფუძვლები მუშაობს.

[youtube id=”kLKvWC-rj7Q” სიგანე=”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-ის ნაწილია.

თემები: , ,
.