بستن آگهی

اپل هفته گذشته ارائه کرد، در میان چیزهای دیگر اپل تی وی جدید با سیستم عامل tvOS این واقعیت که برنامه های App Store را می توان در جعبه سیاه جدید نصب کرد، قطعا توسعه دهندگان را بسیار خوشحال کرد.

توسعه دهندگان دو گزینه دارند. آنها می توانند یک برنامه بومی بنویسند که به سخت افزار Apple TV دسترسی کامل دارد. SDK موجود (مجموعه ای از کتابخانه ها برای توسعه دهندگان) بسیار شبیه به آنچه توسعه دهندگان از قبل از iPhone، iPad می دانند و زبان های برنامه نویسی یکسان است - Objective-C و Swift جوان.

اما برای برنامه های ساده تر، اپل گزینه دوم را در قالب TVML به توسعه دهندگان ارائه داد - Television Markup Language. اگر احساس می کنید که نام TVML به طرز مشکوکی شبیه HTML است، حق با شماست. این واقعاً یک زبان نشانه گذاری مبتنی بر XML است و بسیار شبیه به HTML است، فقط بسیار ساده تر است و نحو دقیق تری دارد. اما برای برنامه هایی مانند Netflix کاملاً عالی است. و کاربران نیز سود خواهند برد، زیرا سخت‌گیری TVML باعث می‌شود برنامه‌های چندرسانه‌ای تقریباً یکسان به نظر برسند و کار کنند.

مسیر اولین برنامه

بنابراین اولین کاری که باید انجام می دادم دانلود نسخه بتای جدید محیط توسعه Xcode بود (نسخه 7.1 موجود است اینجا). این به من امکان دسترسی به tvOS SDK را داد و توانستم پروژه جدیدی را به طور خاص با هدف قرار دادن نسل چهارم Apple TV آغاز کنم. این برنامه می تواند فقط tvOS باشد، یا کد را می توان به یک برنامه iOS موجود اضافه کرد تا یک برنامه جهانی ایجاد کند - مدلی شبیه به برنامه های iPhone و iPad امروزی.

مشکل اول: Xcode فقط توانایی ایجاد یک برنامه بومی را ارائه می دهد. اما من خیلی سریع بخشی را در اسناد پیدا کردم که به توسعه دهندگان کمک می کند تا این اسکلت را تغییر دهند و آن را برای TVML آماده کنند. اساساً، این چند خط کد در سوئیفت است که فقط در Apple TV، یک شی تمام صفحه ایجاد می کند و قسمت اصلی برنامه را که قبلاً با جاوا اسکریپت نوشته شده است بارگذاری می کند.

مشکل دوم: برنامه های TVML واقعاً بسیار شبیه یک صفحه وب هستند، بنابراین همه کدها از اینترنت بارگیری می شوند. خود برنامه در واقع فقط یک "بوت لودر" است، فقط حاوی حداقل کد و اساسی ترین عناصر گرافیکی (آیکون برنامه و موارد مشابه) است. در پایان، من با موفقیت کد اصلی جاوا اسکریپت را مستقیماً در برنامه قرار دادم و این توانایی را داشتم که حداقل یک پیام خطای سفارشی را در زمانی که Apple TV به اینترنت متصل نیست نمایش دهم.

سومین مشکل کوچک: iOS 9 و همراه با آن tvOS اکیداً مستلزم آن است که تمام ارتباطات به سمت اینترنت به صورت رمزگذاری شده از طریق HTTPS انجام شود. این قابلیتی است که در iOS 9 برای همه برنامه ها معرفی شده است و دلیل آن فشار بر حریم خصوصی کاربر و امنیت داده های ارسالی است. بنابراین لازم است یک گواهی SSL در وب سرور مستقر شود. می توان آن را با حداقل 5 دلار (120 کرون) در سال خریداری کرد، یا می توانید برای مثال از سرویس CloudFlare استفاده کنید که به تنهایی و بدون سرمایه گذاری از HTTPS مراقبت می کند. گزینه دوم خاموش کردن این محدودیت برای اپلیکیشن است که در حال حاضر امکان پذیر است اما قطعا آن را توصیه نمی کنم.

پس از چند ساعت مطالعه مستندات، جایی که هنوز هم گاهی اوقات اشتباهات جزئی وجود دارد، یک برنامه بسیار ابتدایی اما کارآمد را کار کردم. متن محبوب "Hello World" و دو دکمه را نمایش می داد. من حدود دو ساعت تلاش کردم تا دکمه را فعال کنم و در واقع کاری انجام دهم. اما با توجه به ساعات اولیه صبح، ترجیح دادم بخوابم... و این چیز خوبی بود.

روز دیگر، ایده روشنی برای دانلود یک نمونه برنامه آماده TVML به طور مستقیم از اپل به ذهنم رسید. آنچه را که دنبالش بودم خیلی سریع در کد پیدا کردم و دکمه فعال بود و کار می کرد. از جمله، دو قسمت اول آموزش tvOS را نیز در اینترنت کشف کردم. هر دو منبع کمک زیادی کردند، بنابراین من یک پروژه جدید را شروع کردم و اولین برنامه واقعی خود را شروع کردم.

اولین برنامه واقعی

من کاملا از صفر شروع کردم، اولین صفحه TVML. مزیت این است که اپل 18 قالب آماده TVML را برای توسعه دهندگان آماده کرده است که فقط باید از مستندات کپی شوند. ویرایش یک الگو حدود یک ساعت طول کشید، عمدتاً به این دلیل که داشتم API خود را آماده می کردم تا TVML تمام شده را با تمام داده های لازم به Apple TV ارسال کنم.

قالب دوم فقط 10 دقیقه طول کشید. من دو جاوا اسکریپت اضافه کرده ام - اکثر کدهای موجود در آنها مستقیماً از اپل می آیند، پس چرا چرخ را دوباره اختراع کنیم. اپل اسکریپت هایی را آماده کرده است که از بارگیری و نمایش قالب های TVML مراقبت می کند، از جمله نشانگر بارگذاری محتوای توصیه شده و نمایش خطای احتمالی.

در کمتر از دو ساعت، من توانستم یک برنامه کاربردی PLAY.CZ بسیار ساده اما کارآمد را جمع آوری کنم. می تواند لیستی از ایستگاه های رادیویی را نمایش دهد، می تواند آن را بر اساس ژانر فیلتر کند و می تواند رادیو را شروع کند. بله، بسیاری از چیزها در برنامه نیستند، اما اصول اولیه کار می کنند.

[YouTube id=”kLKvWC-rj7Q” width=”620″ height=”360″]

مزیت این است که برنامه اساساً چیزی بیش از یک نسخه خاص از وب سایت نیست که توسط جاوا اسکریپت پشتیبانی می شود و همچنین می توانید از CSS برای تغییر ظاهر استفاده کنید.

اپل هنوز به چند چیز دیگر برای آماده کردن نیاز دارد. نماد برنامه یک نیست، بلکه دو است - کوچکتر و بزرگتر. نکته جدید این است که نماد یک تصویر ساده نیست، بلکه حاوی یک افکت اختلاف منظر است و از 2 تا 5 لایه (پس زمینه، اشیاء در وسط و پیش زمینه) تشکیل شده است. همه تصاویر فعال در سراسر برنامه می توانند دارای همان جلوه باشند.

هر لایه در واقع فقط یک تصویر روی یک پس زمینه شفاف است. اپل اپلیکیشن اختصاصی خود را برای کامپایل این تصاویر لایه ای آماده کرده است و قول می دهد به زودی افزونه صادراتی را برای Adobe Photoshop منتشر کند.

یکی دیگر از الزامات، تصویر "قفسه بالایی" است. اگر کاربر برنامه را در یک موقعیت برجسته در ردیف بالا (در قفسه بالایی) قرار دهد، برنامه باید محتوایی را برای دسکتاپ بالای لیست برنامه نیز ارائه دهد. می تواند فقط یک تصویر ساده باشد یا می تواند یک منطقه فعال باشد، به عنوان مثال با لیستی از فیلم های مورد علاقه یا، در مورد ما، ایستگاه های رادیویی.

بسیاری از توسعه دهندگان تازه شروع به کشف امکانات tvOS جدید کرده اند. خبر خوب این است که نوشتن یک برنامه محتوا بسیار آسان است و اپل با TVML راه طولانی را برای توسعه دهندگان طی کرده است. ساختن یک برنامه (به عنوان مثال PLAY.CZ یا iVyszílő) باید آسان و سریع باشد. احتمال زیادی وجود دارد که همزمان با عرضه اپل تی وی جدید، تعداد زیادی اپلیکیشن آماده شوند.

نوشتن یک برنامه بومی یا انتقال یک بازی از iOS به tvOS چالش برانگیزتر خواهد بود، اما نه چندان. بزرگترین مانع کنترل های مختلف و محدودیت 200 مگابایتی در هر برنامه خواهد بود. یک برنامه بومی فقط می‌تواند بخش محدودی از داده‌ها را از فروشگاه دانلود کند و بقیه موارد باید به‌علاوه دانلود شود و هیچ تضمینی وجود ندارد که سیستم این داده‌ها را حذف نکند. با این حال، توسعه دهندگان قطعا به سرعت با این محدودیت مقابله خواهند کرد، همچنین به لطف در دسترس بودن مجموعه ای از ابزارها به نام "App Thinning" که بخشی از iOS 9 نیز هستند.

موضوعات: , ,
.