অ্যাপল গত সপ্তাহে অন্যান্য জিনিসের মধ্যে উপস্থাপন করেছে নতুন অ্যাপল টিভি TVOS অপারেটিং সিস্টেমের সাথে। অ্যাপ স্টোর থেকে অ্যাপ্লিকেশনগুলি নতুন ব্ল্যাক বক্সে ইনস্টল করা যেতে পারে তা অবশ্যই বিকাশকারীদের সবচেয়ে খুশি করেছে।
বিকাশকারীদের দুটি বিকল্প রয়েছে। তারা একটি নেটিভ অ্যাপ লিখতে পারে যার অ্যাপল টিভি হার্ডওয়্যারে সম্পূর্ণ অ্যাক্সেস রয়েছে। উপলব্ধ SDK (ডেভেলপারদের জন্য লাইব্রেরিগুলির সেট) ডেভেলপাররা ইতিমধ্যে iPhone, iPad থেকে যা জানেন এবং প্রোগ্রামিং ভাষাগুলি একই রকম - অবজেক্টিভ-সি এবং ছোট সুইফট।
কিন্তু সহজ অ্যাপ্লিকেশনের জন্য, অ্যাপল ডেভেলপারদের TVML - টেলিভিশন মার্কআপ ল্যাঙ্গুয়েজ আকারে একটি দ্বিতীয় বিকল্পের প্রস্তাব দিয়েছে। আপনি যদি মনে করেন যে TVML নামটি সন্দেহজনকভাবে HTML এর মত দেখাচ্ছে, আপনি ঠিক বলেছেন। এটি সত্যিই XML-এর উপর ভিত্তি করে একটি মার্কআপ ভাষা এবং এইচটিএমএল-এর অনুরূপ, শুধুমাত্র এটি অনেক সহজ এবং একটি কঠোর সিনট্যাক্স রয়েছে। কিন্তু Netflix এর মত অ্যাপ্লিকেশনের জন্য এটি একেবারে নিখুঁত। এবং ব্যবহারকারীরাও উপকৃত হবেন, কারণ TVML এর কঠোরতা মাল্টিমিডিয়া অ্যাপ্লিকেশনগুলিকে দেখতে এবং একই রকম কাজ করবে।
প্রথম অ্যাপ্লিকেশনের পথ
তাই প্রথম জিনিসটি আমাকে করতে হয়েছিল Xcode বিকাশ পরিবেশের নতুন বিটা সংস্করণ ডাউনলোড করা (সংস্করণ 7.1 উপলব্ধ এখানে) এটি আমাকে tvOS SDK-এ অ্যাক্সেস দিয়েছে এবং বিশেষভাবে চতুর্থ প্রজন্মের অ্যাপল টিভিকে লক্ষ্য করে একটি নতুন প্রকল্প শুরু করতে সক্ষম হয়েছে। অ্যাপটি শুধুমাত্র tvOS-এ হতে পারে, অথবা একটি "সর্বজনীন" অ্যাপ তৈরি করতে কোডটি বিদ্যমান iOS অ্যাপে যোগ করা যেতে পারে - আজকের আইফোন এবং আইপ্যাড অ্যাপের মতো একটি মডেল।
সমস্যা এক: এক্সকোড শুধুমাত্র একটি নেটিভ অ্যাপ তৈরি করার ক্ষমতা প্রদান করে। কিন্তু আমি খুব দ্রুত ডকুমেন্টেশনে একটি বিভাগ খুঁজে পেয়েছি যা বিকাশকারীদের এই কঙ্কাল পরিবর্তন করতে এবং TVML এর জন্য প্রস্তুত করতে সহায়তা করবে। মূলত, এটি সুইফটের কোডের কয়েকটি লাইন যা, শুধুমাত্র Apple TV-তে, একটি পূর্ণ-স্ক্রীন অবজেক্ট তৈরি করে এবং অ্যাপের মূল অংশটি লোড করে, যা ইতিমধ্যে জাভাস্ক্রিপ্টে লেখা আছে।
সমস্যা দুই: টিভিএমএল অ্যাপ্লিকেশনগুলি একটি ওয়েব পৃষ্ঠার সাথে খুব মিল, এবং তাই সমস্ত কোড ইন্টারনেট থেকে লোড করা হয়। অ্যাপ্লিকেশন নিজেই আসলে একটি "বুটলোডার", এটিতে শুধুমাত্র একটি ন্যূনতম কোড এবং সবচেয়ে মৌলিক গ্রাফিক উপাদান রয়েছে (অ্যাপ্লিকেশন আইকন এবং এর মতো)। শেষ পর্যন্ত, আমি সফলভাবে মূল জাভাস্ক্রিপ্ট কোডটি সরাসরি অ্যাপে রেখেছি এবং অ্যাপল টিভি ইন্টারনেটের সাথে সংযুক্ত না থাকলে অন্তত একটি কাস্টম ত্রুটি বার্তা প্রদর্শন করার ক্ষমতা পেয়েছি।
তৃতীয় ছোট সমস্যা: iOS 9 এবং এটির সাথে tvOS-এর জন্য কঠোরভাবে প্রয়োজন যে ইন্টারনেটের প্রতি সমস্ত যোগাযোগ HTTPS এর মাধ্যমে এনক্রিপ্ট করা হয়। এটি iOS 9-এ সমস্ত অ্যাপের জন্য চালু করা একটি বৈশিষ্ট্য এবং এর কারণ হল ব্যবহারকারীর গোপনীয়তা এবং ডেটা সুরক্ষার উপর চাপ৷ তাই ওয়েব সার্ভারে একটি SSL সার্টিফিকেট স্থাপন করা প্রয়োজন। এটি প্রতি বছরে মাত্র $5 (120 মুকুট) এর বিনিময়ে কেনা যায়, অথবা আপনি ব্যবহার করতে পারেন, উদাহরণস্বরূপ, CloudFlare পরিষেবা, যা স্বয়ংক্রিয়ভাবে এবং বিনিয়োগ ছাড়াই HTTPS-এর যত্ন নেবে৷ দ্বিতীয় বিকল্পটি হল অ্যাপ্লিকেশনটির জন্য এই সীমাবদ্ধতাটি বন্ধ করা, যা এখন সম্ভব, তবে আমি অবশ্যই এটি সুপারিশ করব না।
ডকুমেন্টেশন পড়ার কয়েক ঘন্টা পরে, যেখানে এখনও মাঝে মাঝে ছোটখাটো ত্রুটি রয়েছে, আমি একটি খুব মৌলিক কিন্তু কার্যকরী অ্যাপ্লিকেশন তৈরি করেছি। এটি জনপ্রিয় পাঠ্য "হ্যালো ওয়ার্ল্ড" এবং দুটি বোতাম প্রদর্শন করে। আমি বোতামটি সক্রিয় হতে এবং আসলে কিছু করার চেষ্টা করার জন্য প্রায় দুই ঘন্টা ব্যয় করেছি। কিন্তু সকালের প্রথম ঘন্টা বিবেচনা করে, আমি ঘুমাতে যেতে পছন্দ করতাম… এবং এটি একটি ভাল জিনিস ছিল।
অন্য দিন, আমি সরাসরি Apple থেকে একটি রেডিমেড নমুনা TVML অ্যাপ্লিকেশন ডাউনলোড করার উজ্জ্বল ধারণা পেয়েছি। আমি কোডে খুব দ্রুত যা খুঁজছিলাম তা খুঁজে পেয়েছি এবং বোতামটি লাইভ এবং কাজ করছে। অন্যান্য জিনিসের মধ্যে, আমি ইন্টারনেটে tvOS টিউটোরিয়ালের প্রথম দুটি অংশও আবিষ্কার করেছি। উভয় সংস্থানই অনেক সাহায্য করেছে, তাই আমি একটি নতুন প্রকল্প শুরু করেছি এবং আমার প্রথম বাস্তব অ্যাপ্লিকেশন শুরু করেছি।
প্রথম বাস্তব আবেদন
আমি প্রথম টিভিএমএল পৃষ্ঠা থেকে সম্পূর্ণভাবে শুরু করেছি। সুবিধা হল যে অ্যাপল ডেভেলপারদের জন্য 18টি রেডিমেড টিভিএমএল টেমপ্লেট প্রস্তুত করেছে যেগুলি শুধু ডকুমেন্টেশন থেকে কপি করতে হবে। একটি টেমপ্লেট সম্পাদনা করতে প্রায় এক ঘন্টা সময় লেগেছিল, প্রাথমিকভাবে কারণ আমি অ্যাপল টিভিতে সমস্ত প্রয়োজনীয় ডেটা সহ সমাপ্ত TVML পাঠাতে আমাদের API প্রস্তুত করছিলাম৷
দ্বিতীয় টেমপ্লেটটি মাত্র 10 মিনিট সময় নেয়। আমি দুটি জাভাস্ক্রিপ্ট যোগ করেছি - তাদের মধ্যে বেশিরভাগ কোড সরাসরি অ্যাপল থেকে আসে, তাই কেন চাকাটি পুনরায় উদ্ভাবন করুন। অ্যাপল এমন স্ক্রিপ্ট প্রস্তুত করেছে যা টিভিএমএল টেমপ্লেট লোড করা এবং প্রদর্শনের যত্ন নেয়, প্রস্তাবিত সামগ্রী লোডিং সূচক এবং সম্ভাব্য ত্রুটি প্রদর্শন সহ।
দুই ঘণ্টারও কম সময়ে, আমি খুব খালি, কিন্তু কার্যকরী PLAY.CZ অ্যাপ্লিকেশান একত্র করতে পেরেছি। এটি রেডিও স্টেশনগুলির একটি তালিকা প্রদর্শন করতে পারে, এটি জেনার দ্বারা এটি ফিল্টার করতে পারে এবং এটি রেডিও শুরু করতে পারে। হ্যাঁ, অনেক কিছুই অ্যাপে নেই, কিন্তু বেসিক কাজ করে।
[youtube id=”kLKvWC-rj7Q” প্রস্থ=”620″ উচ্চতা=”360″]
সুবিধা হল যে অ্যাপ্লিকেশনটি মূলত ওয়েবসাইটের একটি বিশেষ সংস্করণ ছাড়া আর কিছুই নয়, যা জাভাস্ক্রিপ্ট দ্বারা চালিত হয় এবং আপনি চেহারাটি পরিবর্তন করতে CSS ব্যবহার করতে পারেন।
অ্যাপল এখনও প্রস্তুত করার জন্য আরো কিছু জিনিস প্রয়োজন. অ্যাপ্লিকেশন আইকন একটি নয়, দুটি - ছোট এবং বড়। অভিনবত্ব হল যে আইকনটি একটি সাধারণ চিত্র নয়, তবে একটি প্যারালাক্স প্রভাব রয়েছে এবং এটি 2 থেকে 5 স্তর (পটভূমি, মাঝখানে এবং অগ্রভাগের বস্তু) নিয়ে গঠিত। অ্যাপ্লিকেশন জুড়ে সমস্ত সক্রিয় চিত্র একই প্রভাব ধারণ করতে পারে।
প্রতিটি স্তর আসলে একটি স্বচ্ছ পটভূমিতে একটি চিত্র। অ্যাপল এই স্তরযুক্ত চিত্রগুলি সংকলনের জন্য নিজস্ব অ্যাপ্লিকেশন প্রস্তুত করেছে এবং শীঘ্রই অ্যাডোব ফটোশপের জন্য একটি এক্সপোর্ট প্লাগইন প্রকাশ করার প্রতিশ্রুতি দিয়েছে।
আরেকটি প্রয়োজন একটি "শীর্ষ শেলফ" চিত্র। ব্যবহারকারী অ্যাপটিকে শীর্ষ সারিতে (শীর্ষ শেল্ফে) একটি বিশিষ্ট অবস্থানে রাখলে, অ্যাপটিকে অবশ্যই অ্যাপ তালিকার উপরে ডেস্কটপের জন্য সামগ্রী সরবরাহ করতে হবে। হয় শুধুমাত্র একটি সাধারণ ছবি হতে পারে বা এটি একটি সক্রিয় এলাকা হতে পারে, উদাহরণস্বরূপ প্রিয় চলচ্চিত্রের তালিকা সহ বা, আমাদের ক্ষেত্রে, রেডিও স্টেশন।
অনেক ডেভেলপাররা সবেমাত্র নতুন টিভিওএসের সম্ভাবনাগুলি অন্বেষণ করতে শুরু করেছে। ভাল খবর হল যে একটি বিষয়বস্তু অ্যাপ লেখা খুব সহজ, এবং অ্যাপল টিভিএমএল সহ বিকাশকারীদের জন্য অনেক দূর এগিয়ে গেছে। একটি অ্যাপ্লিকেশন তৈরি করা (উদাহরণস্বরূপ PLAY.CZ বা iVyszílő) সহজ এবং দ্রুত হওয়া উচিত। নতুন Apple TV বিক্রির সাথে সাথে একই সময়ে প্রচুর সংখ্যক অ্যাপ্লিকেশন প্রস্তুত হওয়ার একটি ভাল সম্ভাবনা রয়েছে।
একটি নেটিভ অ্যাপ লেখা বা iOS থেকে tvOS এ একটি গেম পোর্ট করা আরও চ্যালেঞ্জিং হবে, তবে খুব বেশি নয়। সবচেয়ে বড় বাধা হবে বিভিন্ন নিয়ন্ত্রণ এবং প্রতি অ্যাপ সীমা 200MB। একটি নেটিভ অ্যাপ্লিকেশন শুধুমাত্র স্টোর থেকে ডেটার একটি সীমিত অংশ ডাউনলোড করতে পারে এবং অন্য সব কিছু অতিরিক্ত ডাউনলোড করতে হবে এবং সিস্টেমটি এই ডেটা মুছে ফেলবে না এমন কোনও গ্যারান্টি নেই৷ যাইহোক, বিকাশকারীরা অবশ্যই এই সীমাবদ্ধতাটি দ্রুত মোকাবেলা করবে, এছাড়াও "অ্যাপ থিনিং" নামে একটি সেটের উপলভ্যতার জন্য ধন্যবাদ, যেগুলি iOS 9-এরও অংশ।
চমৎকার নিবন্ধ. ধন্যবাদ সম্ভবত সময়ের সাথে সাথে আমরা অ্যাপল থেকে আরও সহজ অ্যাপ্লিকেশন (সমাধান) প্রস্তুত করার জন্য একটি ব্যবহারকারীর সমাধান দেখতে পাব, যেমনটি আইওএসের জন্য ফাইলমেকারের সাথে সম্ভব, আমি একজন বিকাশকারী না হয়েও।
তাত্ত্বিকভাবে... সুইফট লোডার হল কয়েকটি লাইন যা এখনও একই, শুধুমাত্র প্রথম TVML ফাইলের URL পরিবর্তন হয়। কেউ চাইলে, তারা সম্ভবত একটি স্ক্রিপ্ট লিখতে পারে যা দূরবর্তীভাবে আপনার URL দিয়ে একটি বিল্ড চালাতে পারে এবং একটি IPA ফাইল ফেরত পাঠাতে পারে। অথবা আপনার যদি ম্যাক থাকে, তাহলে প্রজেক্ট পাঠাতে কোন সমস্যা নেই, যেখানে আপনি শুধু ইউআরএল রাখেন এবং বিল্ড শুরু করেন। সুবিধা হল যদি TVML অ্যাপ্লিকেশনের বাইরে থাকে, তাহলে আপনার আসলে শুধুমাত্র একটি পাবলিক বিল্ড এবং সম্ভবত একটি প্রাইভেট (ডেভেলপমেন্ট) বিল্ড প্রয়োজন এবং আপনি শুধুমাত্র সার্ভারে TVML পরিবর্তন করতে পারবেন এবং এইভাবে অ্যাপ্লিকেশনটির কার্যকারিতা।
"অ্যাপটি শুধুমাত্র tvOS- হতে পারে, অথবা একটি 'এক-আকার-ফিট-অল' অ্যাপ তৈরি করতে একটি বিদ্যমান iOS অ্যাপে কোড যোগ করা যেতে পারে - আজকের আইফোন এবং আইপ্যাড অ্যাপের মতো একটি মডেল।"
আমি ভাবছি আপনি কি বলতে চাইছেন? ব্যক্তিগতভাবে, আমি কোথাও 1টি বিল্ড করার উপায় খুঁজে পাইনি যাতে ইউনিভার্সাল আইফোন, আইপ্যাড এবং অ্যাপল টিভি অন্তর্ভুক্ত থাকবে.. যেহেতু তারা আলাদা SDK (OSX-এর মতো), আপনার tvOS-এর জন্য একটি অতিরিক্ত লক্ষ্য এবং এইভাবে একটি পৃথক বিল্ডের প্রয়োজন। আমি কিছু মিস করছি?
Xcode 7.1-এ tvOS অ্যাপ্লিকেশনগুলিকে একটি ইতিমধ্যে বিদ্যমান প্রকল্পে আরেকটি লক্ষ্য হিসাবে যুক্ত করা যেতে পারে - অ্যাপল ওয়াচের অ্যাপ্লিকেশনের মতো বা বিজ্ঞপ্তি কেন্দ্রের জন্য সম্ভবত একটি উইজেট। যাইহোক, আমি এখনও জানি না এটি কীভাবে স্টোরে আপলোড করা হবে... আমি অনুমান করছি যে Xcode একটি প্যাকেজ পাঠাবে এবং অ্যাপ স্টোর তারপর এটিকে ভাগ করবে... সম্ভবত তারা এখন ওয়াচের সাথে যা করে তার অনুরূপ
noo.. আমার মতে, এগুলি 2টি সম্পূর্ণ ভিন্ন জিনিস.. ঘড়ি হল একটি এক্সটেনশন.. বা অন্তত এটি watchOS 2.0. পর্যন্ত ছিল. এটি iOS টার্গেটের সাথে একসাথে দেওয়া হয়েছিল এবং এমনকি একটি আইফোন ছাড়া কাজ করে না.. ATV হল একটি পৃথক সত্তা.. আমি সেই বিষয়েই কথা বলছি, ATV-এর জন্য বিল্ড আলাদা হবে কিনা (আপনাকে 2$ দিতে হবে) এবং উপরন্তু iOS-এর জন্য 2$ প্রদান করা হবে, নাকি একটি সার্বজনীন প্রদান করা সম্ভব হবে? iOS এবং ATV উভয়ের জন্য 2$ বিল্ড। ATV-এর জন্য পরিবার।
তাই আসল লঞ্চটি দেখাবে, কিন্তু এটি সত্যিই অ্যাপল ওয়াচ কোডের মতোই আচরণ করে, উদাহরণস্বরূপ। অন্যথায়, ডকুমেন্টেশনে বলা হয়েছে যে বিদ্যমান অ্যাপ্লিকেশনে 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-এ কাজ করছি - অক্টোবর মাসে আপনার অ্যাপ স্টোরে উপলব্ধ :)
তাই আমি অনুভব করছি যে যারা নিবন্ধন করেছেন তারা সবাই সম্ভবত এটি পেয়েছেন :) আমি গতকালও অর্ডার দিয়েছি এবং আমি সত্যিই, সত্যিই এটির জন্য অপেক্ষা করছি... এবং আমি আরও একজনকে জানি যিনি তার ডেলিভারির জন্য অপেক্ষা করছেন...
যাইহোক, এখন পর্যন্ত মনে হচ্ছে বিক্রি শুরু হলে সম্ভবত অনেক অ্যাপ থাকবে :)
সবাই সম্ভবত না - তারা আমাকে এটি দেয়নি :(
:( তোমার জন্য আমার দুঃখ হচ্ছে.
যদি কেউ চান, আমার কাছে আটটি সাদা আপেল স্টিকার আছে... আমি সেগুলো মেইল করতে পারি...