اپل هفته گذشته ارائه کرد، در میان چیزهای دیگر اپل تی وی جدید با سیستم عامل 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 نیز هستند.
مقاله خوبی با تشکر. شاید به مرور زمان از اپل یک راه حل کاربری برای تهیه برنامه های کاربردی (راه حل) ساده تر، همانطور که با FileMaker برای iOS امکان پذیر است، بدون اینکه من توسعه دهنده باشم، ببینیم.
در تئوری… لودر Swift چند خط است که هنوز یکسان هستند، فقط URL برای اولین فایل TVML تغییر می کند. اگر کسی بخواهد، احتمالاً میتواند یک اسکریپت بنویسد که بتواند از راه دور یک بیلد را با URL شما اجرا کند و یک فایل IPA را بازگرداند. یا اگر مک دارید، مشکلی برای ارسال پروژه نیست، جایی که فقط URL را قرار داده و بیلد را شروع کنید. مزیت این است که اگر TVML خارج از برنامه باشد، در واقع فقط به یک ساخت عمومی و احتمالاً یک ساخت خصوصی (توسعه) نیاز دارید و فقط می توانید TVML روی سرور و در نتیجه عملکرد برنامه را تغییر دهید.
این برنامه میتواند فقط tvOS باشد، یا کد را میتوان به یک برنامه iOS موجود اضافه کرد تا یک برنامه یکاندازه برای همه ایجاد کند - مدلی شبیه به برنامههای iPhone و iPad امروزی.»
تعجب می کنم منظور شما چیست؟ من شخصاً جایی برای ساخت 1 بیلد پیدا نکردم که شامل iPhone، iPad و Apple TV جهانی باشد. از آنجایی که آنها SDKهای جداگانه هستند (مشابه OSX)، شما به یک هدف اضافی برای tvOS و در نتیجه یک ساخت جداگانه نیاز دارید. من چیزی را از دست داده ام؟
در Xcode 7.1 برنامه های tvOS را می توان به عنوان هدف دیگری به پروژه های موجود اضافه کرد - مشابه برنامه های کاربردی برای Apple Watch یا شاید یک ویجت برای مرکز اطلاع رسانی. با این حال، من هنوز نمی دانم چگونه در فروشگاه آپلود می شود ... فرض می کنم Xcode یک بسته ارسال می کند و فروشگاه App آن را تقسیم می کند ... احتمالاً شبیه کاری است که اکنون با ساعت انجام می دهند.
noo.. به نظر من اینها 2 تا چیز کاملاً متفاوت هستند.. ساعت یک افزونه است.. یا حداقل تا watchOS 2.0 بود.. همراه با هدف iOS داده می شد و حتی بدون آیفون هم کار نمی کرد. ATV یک موجودیت جداگانه است.. این همان چیزی است که من در مورد آن صحبت می کنم، اینکه آیا ساخت ATV مجزا خواهد بود (باید 2 دلار بپردازید) و علاوه بر آن iOS 2 دلار پرداخت می کند یا امکان ارائه یونیورسال وجود دارد. ساخت 2 دلاری هم برای iOS و هم برای ATV.. پس فکر کنم نه، چون حتی iOS target خانواده دستگاه ها را برای ATV ارائه نمی دهد..
بنابراین راه اندازی واقعی نشان می دهد، اما واقعاً مانند کد اپل واچ عمل می کند. در غیر این صورت، مستندات بیان می کند که اضافه کردن کد برای tvOS به برنامه موجود امکان پذیر خواهد بود و بنابراین امکان فروش یک برنامه (یک موجودیت در اپ استور) برای iOS و tvOS به طور همزمان وجود خواهد داشت - یک خرید برای مشتری، یا به عنوان یک نهاد جداگانه - خرید جداگانه برای iOS و tvOS.
فقط برای روشن شدن، این 200 مگابایت برای هر برنامه نیست، بلکه 200 مگابایت به صورت محلی ذخیره می شود و بقیه در صورت نیاز از شبکه دانلود می شود.
ممنون، این چیزی بود که من فکر می کردم، اما احتمالاً آن را اشتباه بیان کردم. هر چیزی که بیش از 200 مگابایت (یا هر چیزی که اضافه شده است) به عنوان یک حافظه پنهان ذخیره می شود و اگر سیستم تصمیم بگیرد که فضای خالی آن تمام شده است، شروع به حذف آن می کند - که احتمالاً تا زمانی که فضای خالی کافی وجود نداشته باشد و پس از آن کمتر استفاده شده باشد، اتفاق نمی افتد. محتوا حذف خواهد شد، بنابراین در عمل احتمالاً مشکل چندانی نخواهد بود.
چه چیز دیگری باید بدانم، ظاهراً این محدودیت برای بازی ها اعمال نمی شود، یا بازی می تواند درست در پایه بزرگتر از 200 مگابایت باشد. اما من هنوز دقیقاً نمی دانم این دقیقاً چگونه است. کاملاً ممکن است که اپل همچنان این سیاست را مطابق با بازخورد توسعه دهندگان تنظیم کند.
hehe Pokemon TCG – 4 GB, Order chaos online – 1,6 GB Hearthstone 1,3 GB من واقعاً در مورد این موضوع کنجکاو هستم.
اطلاعاتی وجود داشت که بازی ها حالت خاصی دارند. من اکنون جزئیات را جمع می کنم و مقاله را کامل می کنیم.
من نمی توانم این کار را انجام دهم و اگر کسی را ناراحت کردم پیشاپیش عذرخواهی می کنم ، اما فقط یک شادی عظیم ، صمیمانه و بدون تحریف دارم که می خواستم با شما در میان بگذارم ...
روز بعد از اعلام اپل تی وی جدید، من تنبل نبودم و در قرعه کشی اپل ثبت نام کردم (آیا انتخاب کنم؟) با امکان دریافت Developer Kit حتی قبل از فروش آن.
دیروز عصر، اپل به من نوشت که من را برای اولین دسته انتخاب کرد :)
بنابراین، من با نویسنده این مقاله یکسان نیستم و صادقانه روی Preschool Brasnicce برای Apple TV کار می کنم - در ماه اکتبر در فروشگاه App شما موجود است :)
پس حس میکنم هرکی ثبت نام کرده احتمالا گرفته :) منم دیروز سفارش دادم و واقعا خیلی مشتاقم... و یه نفر دیگه هم میشناسم که منتظر تحویلش هست...
به هر حال، تا اینجا به نظر می رسد که احتمالاً با شروع فروش برنامه های زیادی وجود خواهد داشت :)
همه احتمالا نمیدن - به من ندادن :(
:( برات متاسفم.
اگر کسی مایل است، من هشت استیکر سفید اپل دارم… میتوانم آنها را پست کنم…