एप्पलले गत हप्ता प्रस्तुत गरेको थियो, अन्य चीजहरू बीच नयाँ एप्पल टिभी TVOS अपरेटिङ सिस्टमको साथ। नयाँ ब्ल्याक बक्समा एप स्टोरबाट एप्लिकेसनहरू स्थापना गर्न सकिन्छ भन्ने तथ्यले विकासकर्ताहरूलाई धेरै खुसी बनायो।
विकासकर्ताहरूसँग दुई विकल्पहरू छन्। तिनीहरूले एउटा नेटिभ एप लेख्न सक्छन् जसमा Apple TV हार्डवेयरमा पूर्ण पहुँच छ। उपलब्ध SDK (विकासकर्ताहरूको लागि पुस्तकालयहरूको सेट) आईफोन, आईप्याडबाट विकासकर्ताहरूले पहिले नै थाहा पाएको कुरासँग धेरै मिल्दोजुल्दो छ, र प्रोग्रामिङ भाषाहरू समान छन् - उद्देश्य-सी र कान्छो स्विफ्ट।
तर सरल अनुप्रयोगहरूको लागि, एप्पलले विकासकर्ताहरूलाई TVML - टेलिभिजन मार्कअप भाषाको रूपमा दोस्रो विकल्प प्रस्ताव गर्यो। यदि तपाईंलाई TVML नाम शङ्कास्पद रूपमा HTML जस्तो देखिन्छ जस्तो लाग्छ भने, तपाईं सही हुनुहुन्छ। यो वास्तवमा XML मा आधारित मार्कअप भाषा हो र HTML सँग धेरै मिल्दोजुल्दो छ, केवल यो धेरै सरल छ र कडा वाक्य रचना छ। तर यो Netflix जस्तै अनुप्रयोगहरूको लागि बिल्कुल सही छ। र प्रयोगकर्ताहरूले पनि लाभ उठाउनेछन्, किनभने TVML को कठोरताले मल्टिमिडिया अनुप्रयोगहरूलाई उस्तै देखिन्छ र काम गर्दछ।
पहिलो अनुप्रयोगको लागि मार्ग
त्यसैले मैले गर्नु पर्ने पहिलो कुरा Xcode विकास वातावरणको नयाँ बीटा संस्करण डाउनलोड गर्नु थियो (संस्करण 7.1 उपलब्ध छ। यहाँ)। यसले मलाई tvOS SDK मा पहुँच दियो र विशेष गरी चौथो पुस्ताको Apple TV लाई लक्षित गरी नयाँ परियोजना सुरु गर्न सक्षम भयो। एप tvOS-मात्र हुन सक्छ, वा कोडलाई अवस्थित आईओएस एपमा "सार्वभौमिक" एप बनाउनको लागि थप्न सकिन्छ - आजको iPhone र iPad एपहरू जस्तै मोडेल।
समस्या एक: Xcode ले नेटिभ एप सिर्जना गर्ने क्षमता मात्र प्रदान गर्दछ। तर मैले चाँडै कागजातमा एउटा खण्ड फेला पारे जसले विकासकर्ताहरूलाई यो कंकाल परिवर्तन गर्न र TVML को लागि तयार गर्न मद्दत गर्नेछ। सामान्यतया, यो स्विफ्टमा कोडका केही लाइनहरू हुन् जुन, केवल Apple टिभीमा, पूर्ण-स्क्रिन वस्तु सिर्जना गर्नुहोस् र एपको मुख्य भाग लोड गर्नुहोस्, जुन पहिले नै JavaScript मा लेखिएको छ।
समस्या दुई: TVML अनुप्रयोगहरू वास्तवमै वेब पृष्ठसँग मिल्दोजुल्दो छन्, र त्यसैले सबै कोडहरू इन्टरनेटबाट लोड हुन्छन्। अनुप्रयोग आफैं वास्तवमा केवल एक "बुटलोडर" हो, यसले न्यूनतम कोड र सबैभन्दा आधारभूत ग्राफिक तत्वहरू (एप्लिकेशन आइकन र जस्तै) समावेश गर्दछ। अन्तमा, मैले सफलतापूर्वक मुख्य JavaScript कोड सिधै एपमा राखें र Apple TV इन्टरनेटमा जडान नभएको बेला कम्तिमा अनुकूलन त्रुटि सन्देश प्रदर्शन गर्ने क्षमता पाएको छु।
तेस्रो सानो समस्या: iOS 9 र यसको साथ tvOS लाई कडाईका साथ आवश्यक छ कि इन्टरनेट तर्फ सबै संचार HTTPS मार्फत इन्क्रिप्टेड हुन्छ। यो आइओएस ९ मा सबै एपका लागि प्रस्तुत गरिएको सुविधा हो र यसको कारण प्रयोगकर्ताको गोपनीयता र डाटा सुरक्षामा पर्ने दबाब हो। त्यसैले वेब सर्भरमा SSL प्रमाणपत्र डिप्लोय गर्न आवश्यक हुनेछ। यो प्रति वर्ष $ 9 (5 क्राउन) को रूपमा किन्न सकिन्छ, वा तपाईले प्रयोग गर्न सक्नुहुन्छ, उदाहरणका लागि, CloudFlare सेवा, जसले HTTPS को आफैले, स्वचालित रूपमा र बिना लगानीको हेरचाह गर्नेछ। दोस्रो विकल्प भनेको अनुप्रयोगको लागि यो प्रतिबन्ध बन्द गर्नु हो, जुन अहिलेको लागि सम्भव छ, तर म निश्चित रूपमा यसलाई सिफारिस गर्दिन।
कागजात पढेको केही घण्टा पछि, जहाँ अझै पनि कहिलेकाहीं साना त्रुटिहरू छन्, मैले धेरै आधारभूत तर काम गर्ने अनुप्रयोगको काम गरें। यसले लोकप्रिय पाठ "हेलो वर्ल्ड" र दुई बटनहरू प्रदर्शन गर्यो। बटन सक्रिय हुन र वास्तवमा केहि गर्न को लागी मैले लगभग दुई घण्टा बिताएँ। तर बिहानको प्रारम्भिक घण्टालाई विचार गर्दै, म सुत्न रुचाउँछु ... र त्यो राम्रो कुरा थियो।
अर्को दिन, मसँग सिधै Apple बाट रेडिमेड नमूना TVML एप्लिकेसन डाउनलोड गर्ने उज्यालो विचार थियो। मैले कोडमा धेरै चाँडै खोजेको कुरा फेला पारे र बटन लाइभ र काम गरिरहेको थियो। अन्य चीजहरू मध्ये, मैले इन्टरनेटमा tvOS ट्यूटोरियलको पहिलो दुई भागहरू पनि पत्ता लगाए। दुबै स्रोतहरूले धेरै मद्दत गरे, त्यसैले मैले नयाँ परियोजना सुरु गरें र मेरो पहिलो वास्तविक अनुप्रयोग सुरु गरें।
पहिलो वास्तविक आवेदन
मैले स्क्र्याचबाट पूर्ण रूपमा सुरु गरें, पहिलो TVML पृष्ठ। फाइदा यो हो कि एप्पलले विकासकर्ताहरूको लागि 18 रेडिमेड TVML टेम्प्लेटहरू तयार गरेको छ जुन कागजातबाट मात्र प्रतिलिपि गर्न आवश्यक छ। एउटा टेम्प्लेट सम्पादन गर्न करिब एक घन्टा लाग्यो, मुख्यतया किनकी मैले हाम्रो एपीआई तयार गरिरहेकी थिएँ।
दोस्रो टेम्प्लेटले मात्र 10 मिनेट लियो। मैले दुईवटा जाभास्क्रिप्टहरू थपेको छु - तिनीहरूमा धेरैजसो कोडहरू एप्पलबाट सिधै आउँछन्, त्यसैले किन व्हील पुन: आविष्कार गर्ने। एप्पलले सिफारिस गरिएको सामग्री लोडिङ सूचक र सम्भावित त्रुटि प्रदर्शन सहित TVML टेम्प्लेटहरू लोड गर्ने र प्रदर्शन गर्ने ख्याल राख्ने स्क्रिप्टहरू तयार गरेको छ।
दुई घन्टा भन्दा कममा, मैले धेरै खाली, तर काम गर्ने PLAY.CZ एप्लिकेसन सँगै राख्न सक्षम भएँ। यसले रेडियो स्टेशनहरूको सूची प्रदर्शन गर्न सक्छ, यसले यसलाई विधाद्वारा फिल्टर गर्न सक्छ र यसले रेडियो सुरु गर्न सक्छ। हो, धेरै चीजहरू एपमा छैनन्, तर आधारभूत कामहरू।
[youtube id="kLKvWC-rj7Q" चौडाई = "620" उचाइ = "360"]
फाइदा यो हो कि एप्लिकेसन मूलतया वेबसाइटको एक विशेष संस्करण भन्दा बढि केहि होइन, जुन जाभास्क्रिप्ट द्वारा संचालित छ र तपाइँ उपस्थिति परिमार्जन गर्न CSS प्रयोग गर्न सक्नुहुन्छ।
एप्पलले अझै केही थप चीजहरू तयार गर्न आवश्यक छ। अनुप्रयोग प्रतिमा एक होइन, तर दुई - सानो र ठूलो। नवीनता यो हो कि प्रतिमा साधारण छवि होइन, तर एक लंबन प्रभाव समावेश गर्दछ र 2 देखि 5 तहहरू (पृष्ठभूमि, मध्य र अग्रभूमिमा वस्तुहरू) मिलेर बनेको छ। अनुप्रयोग भर सबै सक्रिय छविहरू समान प्रभाव समावेश गर्न सक्छन्।
प्रत्येक तह वास्तवमा पारदर्शी पृष्ठभूमिमा एउटा छवि मात्र हो। एप्पलले यी स्तरित छविहरू कम्पाइल गर्नको लागि आफ्नै अनुप्रयोग तयार गरेको छ र छिट्टै Adobe Photoshop को लागि निर्यात प्लगइन जारी गर्ने वाचा गर्दछ।
अर्को आवश्यकता "शीर्ष शेल्फ" छवि हो। यदि प्रयोगकर्ताले एपलाई शीर्ष पङ्क्तिमा (शीर्ष शेल्फमा) प्रमुख स्थानमा राख्छ भने, एपले एप सूचीको माथिको डेस्कटपको लागि सामग्री पनि उपलब्ध गराउनुपर्छ। त्यहाँ या त केवल एक साधारण तस्वीर हुन सक्छ वा यो सक्रिय क्षेत्र हुन सक्छ, उदाहरणका लागि मनपर्ने चलचित्रहरूको सूची वा, हाम्रो अवस्थामा, रेडियो स्टेशनहरू।
धेरै विकासकर्ताहरूले भर्खरै नयाँ tvOS को सम्भावनाहरू अन्वेषण गर्न थालेका छन्। राम्रो समाचार यो हो कि सामग्री एप लेख्न धेरै सजिलो छ, र Apple TVML को साथ विकासकर्ताहरूको लागि लामो बाटो गएको छ। एप्लिकेसन निर्माण गर्न (उदाहरणका लागि PLAY.CZ वा iVyszílő) सजिलो र छिटो हुनुपर्छ। नयाँ एप्पल टिभी बिक्रीमा जाँदा एकै समयमा ठूलो संख्यामा एपहरू तयार हुने राम्रो सम्भावना छ।
नेटिभ एप लेख्नु वा iOS बाट tvOS मा खेल पोर्ट गर्नु अझ चुनौतीपूर्ण हुनेछ, तर धेरै होइन। सबैभन्दा ठूलो बाधा फरक नियन्त्रणहरू र 200MB प्रति एप सीमा हुनेछ। एउटा नेटिभ एप्लिकेसनले स्टोरबाट डाटाको सीमित भाग मात्र डाउनलोड गर्न सक्छ, र अरू सबै कुरा थप रूपमा डाउनलोड गरिनुपर्छ, र प्रणालीले यो डाटा मेटाउने छैन भन्ने कुनै ग्यारेन्टी छैन। यद्यपि, विकासकर्ताहरूले निश्चित रूपमा यो सीमिततालाई चाँडै समाधान गर्नेछन्, "एप थिनिङ" नामक उपकरणहरूको सेटको उपलब्धतालाई पनि धन्यवाद, जुन iOS 9 को पनि अंश हो।
राम्रो लेख। धन्यवाद। सायद समयमा हामी एप्पलबाट पनि सरल अनुप्रयोगहरू (समाधानहरू) तयार गर्नका लागि प्रयोगकर्ता समाधान देख्नेछौं, जस्तो कि आईओएसको लागि फाइलमेकरसँग सम्भव छ, म विकासकर्ता नभएको।
सिद्धान्तमा... स्विफ्ट लोडर केही रेखाहरू हुन् जुन अझै पनि उस्तै छन्, पहिलो TVML फाइलको URL मात्र परिवर्तन हुन्छ। यदि कोही चाहन्छ भने, तिनीहरूले सम्भवतः एक स्क्रिप्ट लेख्न सक्छन् जुन टाढाबाट तपाईंको URL मार्फत निर्माण चलाउन सक्छ र IPA फाइल फिर्ता पठाउन सक्छ। वा यदि तपाइँसँग म्याक छ भने, परियोजना पठाउन कुनै समस्या छैन, जहाँ तपाइँ भर्खर URL राख्नुहुन्छ र निर्माण सुरु गर्नुहुन्छ। फाइदा यो हो कि यदि TVML अनुप्रयोग बाहिर छ भने, तपाईंलाई वास्तवमा केवल एउटा सार्वजनिक निर्माण र सम्भवतः एउटा निजी (विकास) निर्माण चाहिन्छ, र तपाईंले सर्भरमा TVML मात्र परिवर्तन गर्न सक्नुहुन्छ र यसरी अनुप्रयोगको कार्यप्रणाली।
"एप tvOS-मात्र हुन सक्छ, वा कोडलाई 'एक-साइज-फिट-सबै' एप बनाउनको लागि अवस्थित iOS एपमा थप्न सकिन्छ - आजको iPhone र iPad एपहरू जस्तै मोडेल।"
म अचम्म मान्छु तिमी के भन्न खोज्दैछौ? व्यक्तिगत रूपमा, मैले विश्वव्यापी iPhone, iPad र Apple TV समावेश गर्ने 1 निर्माण गर्ने तरिका कतै फेला पारेको छैन। किनकि तिनीहरू अलग SDK हरू छन् (OSX जस्तै), तपाईंलाई tvOS को लागि अतिरिक्त लक्ष्य चाहिन्छ र यसैले छुट्टै निर्माण पनि। म केहि छुटेको छु?
Xcode 7.1 मा tvOS अनुप्रयोगहरू पहिले नै अवस्थित प्रोजेक्टमा अर्को लक्ष्यको रूपमा थप्न सकिन्छ - Apple Watch को लागि अनुप्रयोगहरू वा सूचना केन्द्रको लागि विजेट जस्तै। जे होस्, मलाई अझै थाहा छैन कि यो स्टोरमा कसरी अपलोड हुनेछ... मलाई लाग्छ कि Xcode ले एउटा प्याकेज पठाउनेछ र एप स्टोरले त्यसलाई विभाजन गर्नेछ... सायद उनीहरूले अहिले वाचसँग गर्ने जस्तै समान छन्।
noo.. मेरो विचारमा, यी 2 पूर्णतया फरक चीजहरू हुन्.. घडी एक विस्तार हो.. वा कम्तिमा यो watchOS 2.0 सम्म थियो। यो आईओएस लक्ष्य संग सँगै दिइएको थियो र आईफोन बिना पनि काम गर्दैन। ATV एउटा छुट्टै संस्था हो.. म के कुरा गर्दैछु, ATV को लागि निर्माण अलग हुनेछ (तपाईले 2$ को लागि तिर्न आवश्यक छ) र थप रूपमा iOS ले 2$ को लागि भुक्तान गरेको छ, वा विश्वव्यापी अनुदान दिन सम्भव छ। 2$ iOS र ATV दुवैको लागि निर्माण। ATV को लागि परिवार।
त्यसैले वास्तविक प्रक्षेपण देखाउनेछ, तर यसले वास्तवमा Apple वाच कोड जस्तै व्यवहार गर्दछ, उदाहरणका लागि। अन्यथा, कागजातले बताउँछ कि अवस्थित अनुप्रयोगमा tvOS को लागि कोड थप्न सम्भव हुनेछ र यसैले iOS र tvOS दुवैको लागि एकै समयमा एउटा एप (एप स्टोरमा एउटा इकाई) बेच्न सम्भव हुनेछ - एक खरिदका लागि। ग्राहक, वा छुट्टै संस्थाको रूपमा - iOS र tvOS को लागि छुट्टै खरिद।
केवल स्पष्ट गर्न को लागी, यो प्रति अनुप्रयोग 200MB होइन, तर 200MB स्थानीय रूपमा भण्डारण गरिएको छ र बाँकी आवश्यक पर्दा नेटबाट डाउनलोड गरिन्छ।
धन्यबाद, मैले सोचेको कुरा हो, तर सायद मैले यो गलत लेखेको छु। 200MB भन्दा माथिका सबै चीजहरू (वा थप रूपमा डाउनलोड गरिएका सबै चीजहरू) क्यासको रूपमा भण्डारण गरिन्छ र यदि प्रणालीले यो ठाउँ सकिँदैछ भनेर निर्णय गर्छ भने, यसले यसलाई मेटाउन थाल्छ - जुन पर्याप्त खाली ठाउँ नभएसम्म र कम से कम प्रयोग गरिएको सामग्री नहुँदासम्म हुनेछैन। मेटाइनेछ, त्यसैले व्यवहारमा यो सम्भवतः धेरै समस्या हुनेछैन।
मैले अरू के पत्ता लगाउनु पर्छ, यो सीमा खेलहरूमा लागू हुने छैन, वा खेल बेस मा 200MB भन्दा ठूलो हुन सक्छ। तर मलाई अझै थाहा छैन कि यो वास्तवमा कसरी मतलब छ। यो धेरै सम्भव छ कि Apple ले अझै पनि विकासकर्ताहरूको प्रतिक्रिया अनुसार यो नीति समायोजन गरिरहेको छ।
hehe Pokemon TCG – 4 GB, अर्डर अराजक अनलाइन – 1,6 GB Hearthstone 1,3 GB म यस बारे साँच्चै उत्सुक छु।
त्यहाँ जानकारी थियो कि खेल एक विशेष मोड छ। म अब विवरणहरू सँगै राख्दै छु र हामी लेख पूरा गर्नेछौं।
म यो गर्न सक्दिन, र यदि मैले कसैलाई ठेस पुर्याउँछ भने म अग्रिम माफी चाहन्छु, तर मसँग एउटा ठूलो, निष्कपट र साँचो आनन्द छ जुन म तपाईंसँग बाँड्न चाहन्छु...
नयाँ एप्पल टिभीको घोषणाको भोलिपल्ट, म अल्छी भइनँ र बिक्रीमा जानु अघि नै विकासकर्ता किट प्राप्त गर्ने सम्भावनाको साथ एप्पल लटरी (के मैले छनौट गर्ने?) मा साइन अप गरें।
हिजो साँझ, एप्पलले मलाई पहिलो ब्याचको लागि चयन गरेको कुरा लेख्यो :)
त्यसोभए, म यस लेखको लेखक जस्तो होइन, र म इमानदारीपूर्वक Apple TV को लागि Preschool Brasnicce मा काम गर्दैछु - अक्टोबरमा तपाईको एप स्टोरमा उपलब्ध छ :)
त्यसैले मलाई एउटा अनुभूति छ कि दर्ता भएका सबैले सायद यो पाएका छन् :) मैले हिजो पनि अर्डर गरें र म साँच्चै, वास्तवमै यसको लागि पर्खिरहेको छु... र म अर्को व्यक्तिलाई चिन्छु जो आफ्नो डेलिभरीको लागि पर्खिरहेका छन्...
जे भए पनि, अहिले सम्म यस्तो देखिन्छ कि त्यहाँ धेरै अनुप्रयोगहरू हुनेछ जब बिक्री सुरु हुन्छ :)
सबैले सायद गर्दैनन् - तिनीहरूले मलाई दिएनन् :(
:( मलाई तिम्रो लागि दु:ख लाग्छ।
यदि कसैले चाहन्छ भने, मसँग आठ सेतो एप्पल स्टिकरहरू छन्... म तिनीहरूलाई मेल गर्न सक्छु...