قدمت شركة أبل الأسبوع الماضي، من بين أمور أخرى تلفزيون أبل الجديد مع نظام التشغيل tvOS. من المؤكد أن حقيقة إمكانية تثبيت التطبيقات من متجر التطبيقات في الصندوق الأسود الجديد جعلت المطورين أكثر سعادة.
المطورين لديهم خياران. يمكنهم كتابة تطبيق أصلي يتمتع بإمكانية الوصول الكامل إلى أجهزة 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 بسيط للغاية ولكنه فعال. يمكنه عرض قائمة بمحطات الراديو، ويمكنه تصفيتها حسب النوع ويمكنه بدء الراديو. نعم، هناك الكثير من الأشياء غير موجودة في التطبيق، لكن الأساسيات تعمل.
[معرف اليوتيوب=”kLKvWC-rj7Q” width=”620″ height=”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 عبارة عن بضعة أسطر لا تزال كما هي، فقط عنوان URL لملف TVML الأول هو الذي يتغير. إذا أراد شخص ما ذلك، فمن المحتمل أن يتمكن من كتابة برنامج نصي يمكنه تشغيل إنشاء عن بعد باستخدام عنوان URL الخاص بك وإرسال ملف IPA مرة أخرى. أو إذا كان لديك جهاز Mac، فلا توجد مشكلة في إرسال المشروع، حيث ما عليك سوى وضع عنوان URL وبدء الإنشاء. الميزة هي أنه إذا كان TVML خارج التطبيق، فأنت في الواقع تحتاج فقط إلى بناء عام واحد وربما بناء خاص (تطوير)، ويمكنك فقط تغيير TVML على الخادم وبالتالي عمل التطبيق.
"يمكن أن يكون التطبيق مخصصًا لنظام التشغيل tvOS فقط، أو يمكن إضافة الكود إلى تطبيق iOS موجود لإنشاء تطبيق "مقاس واحد يناسب الجميع" - وهو نموذج مشابه لتطبيقات iPhone وiPad اليوم."
وأتساءل ماذا تقصد؟ شخصيًا، لم أجد طريقة في أي مكان لإنشاء إصدار واحد يتضمن أجهزة iPhone وiPad وApple TV العالمية. وبما أنها مجموعات SDK منفصلة (على غرار OSX)، فأنت بحاجة إلى هدف إضافي لنظام التشغيل tvOS وبالتالي أيضًا إنشاء منفصل. أنا في عداد المفقودين شيئا؟
في Xcode 7.1، يمكن إضافة تطبيقات tvOS كهدف آخر لمشروع موجود بالفعل - على غرار تطبيقات Apple Watch أو ربما عنصر واجهة مستخدم لمركز الإشعارات. ومع ذلك، لا أعرف حتى الآن كيف سيتم تحميلها على المتجر... أفترض أن Xcode سيرسل حزمة واحدة وسيقوم متجر التطبيقات بعد ذلك بتقسيمها... ربما يشبه ما يفعلونه بالساعة الآن
لا.. في رأيي، هذان شيئان مختلفان تمامًا.. الساعة هي امتداد.. أو على الأقل كانت كذلك حتى watchOS 2.. لقد تم تقديمها مع هدف iOS ولم تعمل حتى بدون iPhone.. ATV هي كيان منفصل.. هذا ما أتحدث عنه، سواء كان تصميم ATV منفصلاً (تحتاج إلى الدفع مقابل 2.0 دولار) بالإضافة إلى دفع نظام iOS مقابل 2 دولار، أم أنه سيكون من الممكن منح عالمية تصميم بقيمة 2 دولار لكل من iOS وATV.عائلة ATV..
لذلك سيظهر الإطلاق الحقيقي، لكنه يتصرف بنفس طريقة كود Apple Watch، على سبيل المثال. بخلاف ذلك، تنص الوثائق على أنه سيكون من الممكن إضافة تعليمات برمجية لنظام التشغيل tvOS إلى التطبيق الحالي وبالتالي سيكون من الممكن بيع تطبيق واحد (كيان واحد في متجر التطبيقات) لكل من iOS وtvOS في نفس الوقت - عملية شراء واحدة مقابل العميل، أو ككيان منفصل - عملية شراء منفصلة لنظامي التشغيل iOS وtvOS.
فقط للتوضيح، لا يبلغ حجم التطبيق 200 ميجابايت، ولكن 200 ميجابايت مخزنة محليًا ويتم تنزيل الباقي من الشبكة عند الحاجة
شكرا لك، هذا ما كنت أعتقده، لكن من المحتمل أني أخطأت في صياغته. يتم تخزين كل ما يزيد حجمه عن 200 ميجابايت (أو كل ما تم تنزيله بشكل إضافي) كذاكرة تخزين مؤقت، وإذا قرر النظام أن المساحة على وشك النفاد، فإنه يبدأ في حذفه - وهو ما لن يحدث على الأرجح حتى تتوفر مساحة خالية كافية ثم المحتوى الأقل استخدامًا سيتم حذفه، لذلك من الناحية العملية لن يكون هناك مشكلة كبيرة.
ماذا يجب أن أعرف، من المفترض أن هذا الحد لن ينطبق على الألعاب، أو يمكن أن يكون حجم اللعبة أكبر من 200 ميجا بايت في القاعدة. لكن ما زلت لا أعرف بالضبط كيف يعني هذا بالضبط. من المحتمل جدًا أن Apple لا تزال تقوم بتعديل هذه السياسة وفقًا لتعليقات المطورين.
hehe Pokemon TCG – 4 جيجابايت، اطلب الفوضى عبر الإنترنت – 1,6 جيجابايت Hearthstone 1,3 جيجابايت أشعر بالفضول حقًا بشأن هذا.
كانت هناك معلومات تفيد بأن الألعاب لها وضع خاص. أقوم بتجميع التفاصيل معًا الآن وسنكمل المقال.
لا أستطيع أن أفعل ذلك، وأعتذر مقدمًا إذا أسأت لأي شخص، لكن لدي فرحة كبيرة وصادقة وحقيقية أردت مشاركتها معك...
في اليوم التالي للإعلان عن جهاز Apple TV الجديد، لم أكن كسولا وقمت بالتسجيل في يانصيب Apple (هل سأختار؟) مع إمكانية الحصول على مجموعة أدوات التطوير حتى قبل طرحها للبيع.
بالأمس كتبت لي شركة أبل أنها اختارتني للدفعة الأولى :)
لذا، فأنا لست نفس مؤلف هذا المقال، وأنا بصراحة أعمل على Preschool Brasnicce لأجهزة Apple TV - المتوفرة في متجر التطبيقات الخاص بك خلال شهر أكتوبر :)
لذلك لدي شعور بأن كل من سجل ربما حصل عليه :) لقد طلبت أيضًا بالأمس وأنا أتطلع إليه حقًا ... وأعرف شخصًا آخر ينتظر أيضًا تسليمه ...
على أية حال، حتى الآن يبدو أنه من المحتمل أن يكون هناك الكثير من التطبيقات عندما تبدأ المبيعات :)
ربما لا يفعل ذلك الجميع - لم يعطوني إياها :(
:( أشعر بالأسف من أجلك.
إذا رغب أي شخص، فلدي ثمانية ملصقات Apple بيضاء... يمكنني إرسالها بالبريد...