মোবাইল অ্যাপ বিতর্ক
ভূমিকা
মোবাইল অ্যাপ এবং এইচটিএমএল৫ (HTML5) বর্তমানে দুটি সবচেয়ে জনপ্রিয় প্রযুক্তি, এবং এদের মধ্যে যথেষ্ট মিল রয়েছে। ওয়েব অ্যাপগুলো মোবাইল ব্রাউজারে চলে এবং বিভিন্ন মোবাইল প্ল্যাটফর্মে নেটিভ অ্যাপ হিসেবেও পুনরায় প্যাকেজ করা যায়। বিভিন্ন প্ল্যাটফর্মকে সাপোর্ট করার সুযোগ এবং মোবাইল ব্রাউজারের বিপুল ক্ষমতার কারণে, ডেভেলপাররা 'একবারে লিখে অনেকবারে চালানোর' সমাধান হিসেবে এইচটিএমএল৫-এর দিকে ঝুঁকছেন। কিন্তু এটি কি সত্যিই কার্যকর? নেটিভ অ্যাপ ব্যবহারের পক্ষে এখনও যথেষ্ট জোরালো কারণ রয়েছে, এবং স্পষ্টতই, অনেক ডেভেলপার সেই পথেই এগোচ্ছেন। এই নিবন্ধটি নেটিভ বনাম ওয়েব অ্যাপ নিয়ে একটি বিতর্ক।
বৈশিষ্ট্য সমৃদ্ধি
মূল কথা: নেটিভ আরও বেশি কিছু করতে পারে।
আমরা মোবাইল কার্যকারিতাকে দুটি মাত্রায় ভাগ করতে পারি: অ্যাপটির নিজস্ব অভিজ্ঞতা এবং এটি যেভাবে ডিভাইসের ইকোসিস্টেমের সাথে যুক্ত হয়। উদাহরণস্বরূপ, অ্যান্ড্রয়েডের ক্ষেত্রে উইজেট এবং নোটিফিকেশনের মতো ফিচারগুলো এক্ষেত্রে কাজে আসে। নেটিভ অ্যাপ এই উভয় ক্ষেত্রেই সেরা।
অ্যাপ ব্যবহারের অভিজ্ঞতার দিক থেকে, নেটিভ অ্যাপগুলো আরও বেশি কিছু করতে পারে। যেসব প্ল্যাটফর্ম সমর্থন করে, সেগুলোর ক্ষেত্রে নেটিভ অ্যাপগুলো সহজেই সোয়াইপ ইভেন্ট, এমনকি মাল্টিটাচও ব্যবহার করতে পারে। এগুলো সাধারণত অ্যান্ড্রয়েডের সার্চ বাটন এবং ভলিউম কন্ট্রোলের মতো হার্ড কী চাপলে সে অনুযায়ী কাজ করতে পারে। এগুলো জিপিএস এবং ক্যামেরার মতো হার্ডওয়্যারও অ্যাক্সেস করতে পারে। আর ব্যবহারকারীর অনুমতি সাপেক্ষে, কিছু প্ল্যাটফর্ম অপারেটিং সিস্টেমে অবাধ অ্যাক্সেস দিয়ে থাকে। এইচটিএমএল৫ (HTML5) দিয়ে ব্যাটারির চার্জ কতটুকু আছে তা শনাক্ত করার চেষ্টা করেই দেখুন!
তবে, বিষয়টি শুধু অ্যাপের ভেতরের অভিজ্ঞতার মধ্যেই সীমাবদ্ধ নয়। অ্যান্ড্রয়েডের মতো একটি অপারেটিং সিস্টেম অ্যাপগুলোকে ব্যবহারকারীদের সাথে, এমনকি অন্যান্য অ্যাপের সাথেও, যোগাযোগ করার বিভিন্ন উপায় প্রদান করে। হোমপেজে সক্রিয় উইজেট থাকে। নোটিফিকেশন রয়েছে, যা ডিভাইসের স্ট্যাটাস বারে দেখা যায়। এবং ইন্টেন্ট রয়েছে, যা আপনার অ্যাপকে এমন একটি সাধারণ পরিষেবা প্রদানের কথা জানানোর সুযোগ দেয়, যা অন্য অ্যাপগুলোরও মাঝেমধ্যে প্রয়োজন হতে পারে।
পাল্টা যুক্তি: নেটিভ বৈশিষ্ট্যগুলোকে উন্নত করা যায়, এবং ওয়েবও এর সাথে তাল মিলিয়ে চলছে।
এটা সত্যি যে, একটি HTML5 অ্যাপের জন্য অনেক ইন-অ্যাপ ফিচারই নাগালের বাইরে। আপনার ওয়েব-দক্ষতা যতই ভালো হোক না কেন, যদি আপনার অ্যাপটি ক্যামেরা এপিআই ছাড়া কোনো স্যান্ডবক্সে আটকে থাকে, তবে এটি সহজে ছবি তুলতে পারবে না! সৌভাগ্যবশত, আপনাকে সেই স্যান্ডবক্সে থাকতে হবে না। যদি আপনার ওয়েব অ্যাপের সত্যিই ছবি তোলার প্রয়োজন হয়, তবে আপনি একটি নেটিভ অ্যাপ তৈরি করতে পারেন, যেখানে একটি এমবেডেড ওয়েব ভিউ থাকবে যা ইউজার ইন্টারফেসের বেশিরভাগ অংশ সরবরাহ করবে। ওপেন-সোর্স ফোনগ্যাপ ফ্রেমওয়ার্ক এভাবেই কাজ করে: এটি নেটিভ ফিচারগুলোকে ওয়েব সার্ভিস হিসেবে প্রকাশ করে এই শূন্যস্থান পূরণ করে, যেগুলোকে ওয়েব ভিউ একটি স্ট্যান্ডার্ড নেটওয়ার্কিং এপিআই ব্যবহার করে কল করে। যখন আপনি এই ধরনের একটি হাইব্রিড অ্যাপ তৈরি করেন, তখন আপনি উইজেট, নোটিফিকেশন এবং ইনটেন্টের মতো প্ল্যাটফর্মের ফিচারগুলোও ব্যবহার করতে পারেন।
একটি হাইব্রিড—অর্থাৎ নেটিভ ও ওয়েব—অ্যাপ তৈরি করা কোনোভাবেই আদর্শ সমাধান নয়। এটি জটিলতা বাড়ায় এবং মোবাইল ব্রাউজার থেকে অ্যাক্সেস করা প্রচলিত ওয়েবসাইটের পরিবর্তে, শুধুমাত্র নেটিভ অ্যাপ হিসেবে মোড়ানো ওয়েব অ্যাপের ক্ষেত্রেই প্রযোজ্য। কিন্তু হয়তো বেশিদিন এর প্রয়োজন থাকবে না। ওয়েব স্ট্যান্ডার্ডগুলো দ্রুত বিকশিত হচ্ছে এবং আধুনিক মোবাইল ব্রাউজারগুলোও এর সাথে তাল মিলিয়ে চলছে। উদাহরণস্বরূপ, অফলাইন স্টোরেজ, জিওলোকেশন, ক্যানভাস গ্রাফিক্স এবং ভিডিও/অডিও প্লেব্যাক—এই সবই আধুনিক স্মার্টফোনগুলোতে ব্যাপক সমর্থন পাচ্ছে। এমনকি ক্যামেরাও এখন সমর্থিত হতে শুরু করেছে—অ্যান্ড্রয়েড ৩.১ থেকে ওয়েব স্ট্যান্ডার্ড ব্যবহার করে ছবি ও ভিডিও তোলা সম্ভব। আর সর্বশেষ আইওএস ব্রাউজারটি টু-ওয়ে স্ট্রিমিংয়ের জন্য ওয়েবসকেট এবং ডিভাইসের ওরিয়েন্টেশন ডিটেকশন সমর্থন করে।
সার্বিকভাবে, মোবাইল বিকশিত হচ্ছে। কিন্তু ওয়েবও বিকশিত হচ্ছে, এবং খুব দ্রুত। শুধু ডেস্কটপ ব্রাউজারগুলোর মধ্যেই, পাঁচটি প্রধান ব্রাউজার নির্মাতা প্রতিষ্ঠান বিদ্যুতের গতিতে তাদের মান উন্নত করছে এবং নতুন নতুন ফিচার যোগ করছে। যদিও এই ফিচারগুলোকে মোবাইলে নিয়ে আসাটা কোনো সহজ কাজ নয়, তবুও এর মধ্যে অনেক ফিচারই ইতোমধ্যে মোবাইল ব্রাউজারগুলোতে যুক্ত হয়ে গেছে।
নেটিভ একটি দ্রুত পরিবর্তনশীল লক্ষ্য, কিন্তু ওয়েব সেই ব্যবধান কমিয়ে আনছে।
কর্মক্ষমতা
মূল কথা: নেটিভ দ্রুততর চলে
নেটিভ অ্যাপগুলোকে ওয়েব রানটাইমের বাধার সম্মুখীন হতে হয় না। এগুলো সরাসরি হার্ডওয়্যারের কাছাকাছি চলে এবং জিপিইউ অ্যাক্সিলারেশন ও মাল্টিথ্রেডিংয়ের মতো পারফরম্যান্স বৃদ্ধিকারী ফিচারগুলোর সুবিধা নিতে পারে।
পাল্টা যুক্তি: আজকাল ওয়েব রানটাইমগুলো অনেক দ্রুতগতির, এবং বেশিরভাগ অ্যাপের এমনিতেও এই গতির প্রয়োজন হয় না।
সাম্প্রতিক বছরগুলোতে ওয়েব যে আরও দ্রুততর হয়েছে, এ কথা বললে কম বলা হবে। ক্রোমের সাথে আসা জাভাস্ক্রিপ্ট ইঞ্জিন V8 যখন চালু হয়েছিল, তখন এটি ওয়েব পারফরম্যান্সের ক্ষেত্রে একটি বড় অগ্রগতি ছিল, এবং তারপর থেকে এটি কেবল আরও দ্রুততরই হয়েছে:

গ্রাফিক রেন্ডারিং ইঞ্জিনগুলো ওয়েবের গতিও বাড়িয়েছে, এবং এখন হার্ডওয়্যার অ্যাক্সিলারেশনও শুরু হচ্ছে। হার্ডওয়্যার অ্যাক্সিলারেটেড-ক্যানভাস দ্বারা প্রদত্ত গতি বৃদ্ধিটি দেখুন:
এছাড়াও, নতুন ওয়েব ওয়ার্কার্স এপিআই মাল্টিথ্রেডিংকে সম্ভব করে তুলেছে, এবং আধুনিক ওয়েব ডেভেলপাররা বিভিন্ন পারফরম্যান্স-অপ্টিমাইজড লাইব্রেরি ও সুগবেষিত পারফরম্যান্স অপ্টিমাইজেশন কৌশলও ব্যবহার করতে পারেন। যদিও এগুলোর বেশিরভাগই ডেস্কটপ ওয়েবের জন্য তৈরি হয়েছিল, তবুও সেগুলো মোবাইলের জন্যও প্রাসঙ্গিক, এবং মোবাইলের প্রতি মনোযোগও বাড়ছে; যেমন, পারফরম্যান্স গুরু স্টিভ সাউডার্সের একটি পেজ রয়েছে যা মোবাইল পারফরম্যান্স টুলসের জন্য উৎসর্গীকৃত ।
ডেস্কটপের সব অগ্রগতি এখনও প্রতিটি মোবাইল প্ল্যাটফর্মে এসে পৌঁছায়নি, কিন্তু প্রবণতাগুলো ইঙ্গিত দিচ্ছে যে সেগুলো আসছে। এটাও মনে রাখা গুরুত্বপূর্ণ যে, বেশিরভাগ মোবাইল অ্যাপই অত্যাধুনিক ৩ডি গেম নয়, বরং মূলত তথ্য-ভিত্তিক: যেমন খবর, মেইল, সময়সূচী, সোশ্যাল নেটওয়ার্ক ইত্যাদি। আপনার মোবাইল থেকে কয়েকটি সাইট, যেমন জিমেইল, অ্যামাজন, টুইটার ভিজিট করলেই আপনি নিশ্চিত হতে পারবেন যে মোবাইল ওয়েবের পারফরম্যান্স প্রয়োজনের চেয়েও বেশি। গেমের কথা বলতে গেলে, সাধারণ গেমগুলো ইতিমধ্যেই ২ডি ক্যানভাস দিয়ে তৈরি করা সম্ভব, এবং মোবাইলে WebGL-এর ব্যবহার শুরু হয়েছে – যেমন ফায়ারফক্স ৪। এটি ব্যাপকভাবে প্রচলিত হওয়ার আগে পর্যন্ত, এমন অনেক ফ্রেমওয়ার্ক তৈরি হচ্ছে যা WebGL অ্যাপগুলোকে কম্পাইল করে নেটিভ অ্যাপে পরিণত করে, যেগুলো OpenGL-এর সুবিধা নিতে পারে, যেমন ImpactJS ।
ডেভেলপার অভিজ্ঞতা
মূল কথা: নেটিভ তৈরি করা সহজ।
নেটিভ অ্যাপগুলো শক্তিশালী প্রোগ্রামিং ভাষা (যেমন জাভা, অবজেক্টিভ সি, সি++) ব্যবহার করে, যেগুলো জটিল অ্যাপ্লিকেশন তৈরির জন্য ডিজাইন করা হয়েছে এবং যার কার্যকারিতা প্রমাণিত। এপিআইগুলো নির্দিষ্ট প্ল্যাটফর্মকে সমর্থন করার জন্য একেবারে গোড়া থেকে ডিজাইন করা হয়েছে। আপনি ডেস্কটপ এমুলেটরে সহজেই অ্যাপ ডিবাগ করতে পারেন, যা টার্গেট ডিভাইসের একটি কাছাকাছি প্রতিরূপ প্রদান করে।
ব্রাউজার এবং রানটাইমের ব্যাপক বৈচিত্র্যই ওয়েব ডেভেলপমেন্টকে বিশেষভাবে ঝামেলাপূর্ণ করে তোলে। আপনার অ্যাপ চলার সময়, অমুক ফিচারটি যে পাওয়া যাবে তার কোনো নিশ্চয়তা নেই। আর যদি পাওয়াও যায়, ব্রাউজারটি তা কীভাবে প্রয়োগ করবে? বিভিন্ন স্ট্যান্ডার্ডের ব্যাখ্যার সুযোগ থাকে।
পাল্টা যুক্তি: ওয়েব তৈরি করা প্রায়শই সহজ, বিশেষ করে যদি একাধিক ডিভাইসকে লক্ষ্য করে তৈরি করা হয়।
চলুন প্রথমে মূল প্রযুক্তি নিয়ে আলোচনা করা যাক। এটা সত্যি যে ওয়েব স্ট্যান্ডার্ডগুলো মূলত এমন এক যুগে তৈরি হয়েছিল যখন ওয়েব ছিল মূলত ডকুমেন্ট-কেন্দ্রিক, অ্যাপ-কেন্দ্রিক নয়, এবং জাভাস্ক্রিপ্ট তৈরি ও স্থাপন করা হয়েছিল মাত্র ১০ দিনে! কিন্তু এগুলো কল্পনার চেয়ে অনেক বেশি সক্ষম বলে প্রমাণিত হয়েছে - ওয়েব ডেভেলপাররা এর ভালো দিকগুলোকে কাজে লাগাতে এবং খারাপ দিকগুলোকে নিয়ন্ত্রণে আনতে শিখেছে, এবং এখন স্কেলেবল ডিজাইনের জন্য প্যাটার্নগুলোও বোঝা যায়। এছাড়াও, স্ট্যান্ডার্ডগুলো থেমে নেই, এবং HTML5, CSS3, ও EcmaScript Harmony-এর মতো উদ্যোগগুলো ডেভেলপারদের অভিজ্ঞতাকে উন্নত করছে। আপনি C++, Java বা JavaScript কোনটি পছন্দ করেন তা একটি ধর্মীয় বিতর্কের বিষয়, এবং এটি আপনার পুরোনো কোডবেসের উপরও নির্ভর করে। কিন্তু আজকাল আমরা অবশ্যই জাভাস্ক্রিপ্টকে একটি শক্তিশালী প্রতিযোগী হিসেবে অন্তর্ভুক্ত করতে পারি।
ব্রাউজার/রানটাইম বিভাজনের অন্য দিকটি হলো এই যে, এই সমস্ত পরিবেশের অস্তিত্বই রয়েছে। জাভাতে একটি অ্যান্ড্রয়েড অ্যাপ তৈরি করলে, iOS সমর্থন করার জন্য আপনাকে সেটিকে অবজেক্টিভ সি-তে সম্পূর্ণ পোর্ট করতে হবে। একবার একটি ওয়েব অ্যাপ তৈরি করলে তা অ্যান্ড্রয়েড এবং iOS-এ চলবে, এছাড়াও WebOS, ব্ল্যাকবেরি, উইন্ডোজ মোবাইল এবং আরও অনেক কিছুতে চলবে... আচ্ছা, অন্তত তত্ত্বগতভাবে তো এটাই। বাস্তবে, অভিজ্ঞতাটি সত্যিই নিখুঁত করতে চাইলে আপনাকে প্রতিটি প্ল্যাটফর্মের জন্য কিছু পরিবর্তন করতে হবে। কিন্তু বেশিরভাগ মোবাইল অপারেটিং সিস্টেমের জন্য নেটিভ কোডেও আপনাকে একই কাজ করতে হবে – কারণ সেগুলোর বিভিন্ন সংস্করণ এবং বিভিন্ন ডিভাইস রয়েছে।
সুখবর হলো, ওয়েবে ‘ফ্র্যাগমেন্টেশন’ বা খণ্ডায়ন সবসময়ই এমন ছিল, এবং এর মোকাবিলা করার জন্য সুপরিচিত কিছু কৌশলও রয়েছে। সবচেয়ে গুরুত্বপূর্ণ হলো, প্রগ্রেসিভ এনহ্যান্সমেন্ট বা প্রগতিশীল উন্নতির নীতি ডেভেলপারদের প্রথমে একটি সাধারণ ডিভাইসকে লক্ষ্য করতে উৎসাহিত করে এবং যেখানে সম্ভব, সেখানে প্ল্যাটফর্ম-নির্দিষ্ট চমৎকার সব স্তর যুক্ত করতে বলে। ফিচার ডিটেকশন বা বৈশিষ্ট্য শনাক্তকরণের মূলমন্ত্রটিও এক্ষেত্রে সহায়ক এবং আজকাল রেসপন্সিভ ওয়েব ডিজাইনকে সমর্থন করার জন্য মডার্নাইজারের মতো লাইব্রেরির সহায়তাও রয়েছে। এই কৌশলগুলোর বিচক্ষণ ব্যবহারের মাধ্যমে, আপনি প্রস্তুতকারক এবং অপারেটিং সিস্টেম নির্বিশেষে, প্রায় সকল ডিভাইসে—এমনকি পুরনো দিনের ‘ফিচার ফোন’, ঘড়ি এবং টিভির মতো ফর্ম ফ্যাক্টরগুলোতেও আপনার পরিধি প্রসারিত করতে পারেন। গুগল আইও ২০১১-তে আমাদের মাল্টি-ইউআই প্রদর্শনীটিই তার প্রমাণ, যেখানে আমরা লজিক এবং মার্কআপের একটি সাধারণ কোডবেস ব্যবহার করে বিভিন্ন ফর্ম ফ্যাক্টরকে (ফিচার ফোন, স্মার্টফোন, ট্যাবলেট, ডেস্কটপ, টিভি) লক্ষ্য করেছিলাম।
চেহারা এবং অনুভূতি
মূল কথা: নেটিভ প্ল্যাটফর্মের চেহারা ও অনুভূতির সাথে মানানসই।
যেকোনো প্ল্যাটফর্মের অন্যতম প্রধান বৈশিষ্ট্য হলো এর বাহ্যিক রূপ ও অনুভূতি। ব্যবহারকারীরা আশা করেন যে কন্ট্রোলগুলো একই রকমভাবে উপস্থাপন করা হবে এবং একইভাবে ব্যবহার করা যাবে। কিছু নির্দিষ্ট প্রচলিত রীতি রয়েছে যা প্ল্যাটফর্মভেদে ভিন্ন হয়, যেমন—ব্যবহারকারী যখন কোনো এলিমেন্টকে কয়েক সেকেন্ড ধরে স্পর্শ করে রাখেন (অর্থাৎ ‘লং হোল্ড’ করেন), তখন কী ঘটে? এই ধরনের কাজের জন্য প্ল্যাটফর্মগুলোর নিজস্ব প্রমিত রীতি রয়েছে, এবং একটিমাত্র HTML5 অ্যাপ দিয়ে সেগুলোর সবকটি পূরণ করা সম্ভব নয়।
তাছাড়া, প্ল্যাটফর্মের বাহ্যিক রূপ ও অনুভূতি এর নিজস্ব সফটওয়্যার লাইব্রেরি দ্বারা নিয়ন্ত্রিত হয়, যার উইজেটগুলো ব্যবহারকারীদের প্রত্যাশিত রূপ ও অনুভূতিকে ধারণ করে। শুধুমাত্র এই নিজস্ব টুলকিটটি ব্যবহার করার মাধ্যমেই আপনি প্রত্যাশিত রূপ ও অনুভূতির অনেকটাই "বিনা মূল্যে" পেয়ে যান।
পাল্টা যুক্তি: ওয়েবের নিজস্ব একটি রূপ ও অনুভূতি রয়েছে, এবং আপনি আপনার সবচেয়ে পছন্দের প্ল্যাটফর্মগুলোর জন্য ওয়েব ইন্টারফেসও নিজের মতো করে সাজিয়ে নিতে পারেন।
পূর্ববর্তী বিভাগে যেমন ব্যাখ্যা করা হয়েছে, ওয়েব ডেভেলপমেন্টের পদ্ধতি হলো একটি মৌলিক "সবার জন্য প্রযোজ্য" সংস্করণ তৈরি করা এবং তারপর ক্রমান্বয়ে সেটিকে উন্নত করা। যদিও এই উন্নতি সাধারণত ফিচারের উপর ভিত্তি করে করা হয়, আপনি আপনার সবচেয়ে পছন্দের প্ল্যাটফর্মগুলোকে লক্ষ্য করেও এটিকে উন্নত করতে পারেন। এটি এক ধরনের "ব্রাউজার শনাক্তকরণ", যা ওয়েব কমিউনিটির কাছে কখনও কখনও ভালো চোখে দেখা হয় না, মূলত কারণ বাজারে অনেক সম্ভাব্য ব্রাউজার রয়েছে। কিন্তু যদি আপনি দুই বা তিনটি প্ল্যাটফর্মকে খুব উচ্চ অগ্রাধিকার দেন এবং নেটিভ বিকল্পগুলোর সাথে পাল্লা দেওয়ার জন্য অতিরিক্ত প্রচেষ্টা করতে ইচ্ছুক থাকেন, তবে এটিই সঠিক পথ হতে পারে।
বেসলাইন সংস্করণের কথা বলতে গেলে, ওয়েবের নিজস্ব একটি লুক-এন্ড-ফিল রয়েছে, এবং আমরা এও বলতে পারি যে প্রতিটি মোবাইল প্ল্যাটফর্মের নিজস্ব একটি "ওয়েব লুক-এন্ড-ফিল" আছে, যা ডিফল্ট ব্রাউজার এবং ওয়েব রানটাইম দ্বারা প্রতিষ্ঠিত হয়। "ওয়েব লুক-এন্ড-ফিল" আপনার ব্যবহারকারীদের জন্য ঠিকঠাক হতে পারে, এবং প্রকৃতপক্ষে, এটি আপনাকে ডেস্কটপ ব্রাউজিং অভিজ্ঞতার সাথে, এবং ব্যবহারকারী অন্য যে ডিভাইসগুলো ব্যবহার করছেন সেগুলোর অভিজ্ঞতার সাথেও, আরও বেশি সামঞ্জস্য অর্জন করতে সাহায্য করে। তাছাড়া, এমন অনেক সফল অ্যাপ রয়েছে যেগুলো নেটিভ লুক-এন্ড-ফিলকে তেমন সমর্থন করে না। গেমের ক্ষেত্রে এটি অবশ্যই সত্য (আপনার প্রিয় মোবাইল গেমটি কি আপনার মোবাইল ওএস-এর লুক-এন্ড-ফিল অনুসরণ করে?), এবং এমনকি আরও প্রচলিত অ্যাপগুলোর ক্ষেত্রেও এটি সত্যি, যেমন আপনার পছন্দের প্ল্যাটফর্মে থাকা জনপ্রিয় নেটিভ টুইটার ক্লায়েন্টগুলো দেখুন, এবং আপনি সেখানে বিভিন্ন ধরনের ইউজার-ইন্টারফেস মেকানিজম কাজ করতে দেখবেন।
আবিষ্কারযোগ্যতা
মূল কথা: নেটিভ অ্যাপগুলো খুঁজে পাওয়া সহজ।
অ্যান্ড্রয়েডের মার্কেট এবং অ্যাপলের অ্যাপ স্টোরের মতো অ্যাপ বিতরণের ব্যবস্থাগুলো সাম্প্রতিক বছরগুলোতে ব্যাপক জনপ্রিয়তা লাভ করেছে এবং এগুলো সমগ্র মোবাইল শিল্পের একটি প্রধান চালিকাশক্তি। যেকোনো ডেভেলপার তাদের নেটিভ অ্যাপটি মার্কেটপ্লেসে জমা দিতে পারেন, যেখানে ব্যবহারকারীরা ব্রাউজিং, সার্চিং এবং সুপারিশ পাওয়ার মাধ্যমে অ্যাপটি খুঁজে পেতে পারেন। শুধু তাই নয়, আপনি যদি আপনার কাজটি সঠিকভাবে করে থাকেন, তবে চমৎকার রেটিং এবং মন্তব্যগুলো ব্যবহারকারীদের সেই অতি গুরুত্বপূর্ণ ইনস্টল বোতামটি চাপতে উৎসাহিত করবে।
পাল্টা যুক্তি: আসলে, ওয়েব অ্যাপ খুঁজে পাওয়া আরও সহজ।
বলা যেতে পারে, ওয়েব হলো এযাবৎকালের সবচেয়ে সহজে খুঁজে পাওয়ার মাধ্যম। এই সাধারণ ইউআরএল-এর মধ্যে (অন্তত তাত্ত্বিকভাবে) ওয়েবে প্রকাশিত প্রতিটি জিনিসের জন্য একটি অনন্য শনাক্তকারী রয়েছে, যার মধ্যে সাধারণ ওয়েবসাইটে প্রকাশিত যেকোনো অ্যাপও অন্তর্ভুক্ত। সার্চ ইঞ্জিনগুলো সেই কন্টেন্ট খুঁজে বের করা সহজ করে দেয় এবং অন্যান্য ওয়েবসাইট এতে লিঙ্ক করতে পারে, যার মধ্যে মোবাইল মার্কেটপ্লেসের মতো ওয়েব অ্যাপের ক্যাটালগও রয়েছে। প্রকৃতপক্ষে, যেকোনো ব্যক্তি ইমেল এবং সোশ্যাল নেটওয়ার্ক মেসেজে লিঙ্ক পাঠিয়েই তার বন্ধুদের সাথে ওয়েব অ্যাপ শেয়ার করতে পারে। এসএমএস-এর মাধ্যমেও লিঙ্ক পাঠানো যায়, যেখানে মোবাইল ব্যবহারকারীরা লিঙ্কে ক্লিক করে তাদের ডিভাইসের ব্রাউজারে অ্যাপটি চালু করতে পারে।
আমাদের কাছে এখনও সেরকম মার্কেটপ্লেস নেই যেখানে ব্যবহারকারীরা অ্যাপগুলোকে রেটিং দিতে ও মন্তব্য করতে পারেন, কিন্তু সেটাও বদলে যাচ্ছে। আরও পড়ুন…
নগদীকরণ
মূল কথা: নেটিভকে মনিটাইজ করা সম্ভব।
"৬ বছর বয়সী শিশু দুপুরের খাবারের বিরতিতে একটি অ্যাপ তৈরি করে, এবং প্রতিটি ৩ ডলারে তার লক্ষ লক্ষ কপি বিক্রি করে"। আজকাল এই শিরোনামটি প্রায়শই দেখা যায়, তাই এতে অবাক হওয়ার কিছু নেই যে ছোট-বড় ডেভেলপাররা অর্থ উপার্জনের জন্য মোবাইল মার্কেটপ্লেসের দিকে ঝুঁকছে। মোবাইল প্ল্যাটফর্মগুলো ডেভেলপারদের তাদের অ্যাপের জন্য সরাসরি মূল্য নির্ধারণের বিভিন্ন উপায় সরবরাহ করে। সবচেয়ে সহজ উপায় হলো এককালীন অর্থ প্রদান করে অ্যাপটিকে চিরদিনের জন্য আনলক করা। কিছু প্ল্যাটফর্মে ইন-অ্যাপ পেমেন্ট এবং সাবস্ক্রিপশন ব্যবস্থাও রয়েছে, এবং সেগুলো একটি সামঞ্জস্যপূর্ণ ও নিরাপদ পদ্ধতির সাথে নিবিড়ভাবে সংযুক্ত। অর্থপ্রদানের এই নতুন পদ্ধতিগুলো ডেভেলপারদের একটি সুপারহিট অ্যাপকে দীর্ঘমেয়াদী আয়ের উৎসে পরিণত করতে সাহায্য করে।
অ্যাপ পেমেন্টের পাশাপাশি, আপনি বিজ্ঞাপন এবং স্পনসরশিপের মতো প্রচলিত ওয়েব মডেলের মাধ্যমেও আয় করতে পারেন।
পাল্টা যুক্তি: ওয়েবে অর্থ উপার্জন করা সবসময়ই সম্ভব ছিল, এবং সুযোগগুলো বেড়েই চলেছে।
অর্থ উপার্জনের প্রচুর সুযোগ না থাকলে ওয়েব আধুনিক শিল্পের চালিকাশক্তি হতে পারত না। যদিও সরাসরি 'ব্যবহার অনুযায়ী মূল্য পরিশোধ' (pay-per-use) ব্যবস্থা এখনও তেমন প্রসার লাভ করেনি, এমন অনেক ক্ষেত্র রয়েছে যেখানে সাবস্ক্রিপশন-ভিত্তিক 'সফটওয়্যার অ্যাজ আ সার্ভিস' (software as a service) সমাধানগুলো বেশ কার্যকর হয়ে উঠেছে। এর উদাহরণ হলো গুগল অ্যাপস, ৩৭সিগন্যালস-এর বিভিন্ন পণ্য এবং বিভিন্ন ইমেল পরিষেবার প্রিমিয়াম সংস্করণ। তাছাড়া, ওয়েব অ্যাপ থেকে লাভ করার একমাত্র উপায় সরাসরি অর্থপ্রদান নয়। আরও রয়েছে অনলাইন বিজ্ঞাপন, অ্যাফিলিয়েট লিঙ্ক, স্পনসরশিপ এবং অন্যান্য পণ্য ও পরিষেবার ক্রস-প্রমোশন।
তবে একথা বলার পরেও, একজন ওয়েব ডেভেলপারের পক্ষে শিরোনামগুলো পড়ে পারিশ্রমিকের প্রতি কিছুটা ঈর্ষা বোধ করাটা খুবই স্বাভাবিক। আপনি নেটিভ মার্কেটপ্লেসগুলোতে কোনো ওয়েব ইউআরএল জমা দিতে পারবেন না, তাহলে একজন ওয়েব ডেভেলপার কী করবেন? যা করতে হবে তা হলো, একটি নেটিভ "র্যাপার অ্যাপ" তৈরি করা। আপনি যে প্ল্যাটফর্মগুলোকে টার্গেট করতে চান, তার প্রতিটির জন্য একটি করে খালি নেটিভ অ্যাপ তৈরি করুন, যেটিতে শুধু একটি ওয়েব ভিউ থাকবে। এই ওয়েব ভিউতেই আপনি আসল অ্যাপটি এমবেড করবেন। এরপর আপনি এই অ্যাপগুলো বিভিন্ন মার্কেটপ্লেসে জমা দিয়ে দেবেন (এবং আশা করা যায়, টাকা আসতে থাকবে!)। বর্তমানে প্রধান মার্কেটপ্লেসগুলোতে সম্ভবত শত শত, এমনকি হাজার হাজার ওয়েব-চালিত অ্যাপ রয়েছে, যার মধ্যে কিছু এতটাই চতুরতার সাথে একীভূত হয়ে গেছে যে আমরা তাদের ওয়েব অ্যাপগুলো সম্পর্কে মোটেই জানি না।
এর অসুবিধা হলো প্রতিটি প্ল্যাটফর্মের জন্য ক্রস-কম্পাইল করার দায়িত্ব। এখানেই ফোনগ্যাপ (PhoneGap)-এর মতো একটি বিদ্যমান ফ্রেমওয়ার্ক সাহায্য করতে পারে। আরও ভালো ব্যাপার হলো, ফোনগ্যাপ বিল্ড (PhoneGap Build) এবং অ্যাপারেশিও (Apparatio)-এর মতো ওয়েব পরিষেবাগুলো এখনও তৈরি হচ্ছে। এই ওয়েবসাইটগুলোকে আপনার কোড রিপোজিটরির সাথে যুক্ত করে দিন, আর সাথে সাথেই একটি অ্যান্ড্রয়েড অ্যাপ, একটি আইওএস অ্যাপ, ইত্যাদি তৈরি হয়ে যাবে… যা আপনি সংশ্লিষ্ট স্টোরগুলোতে জমা দেওয়ার জন্য প্রস্তুত। আপনার মেশিনে কোনো নেটিভ এসডিকে (SDK) ইনস্টল করার প্রয়োজন নেই; এই সমস্ত নেটিভ অ্যাপ তৈরি করার জন্য আপনার শুধু একটি কোড এডিটর এবং একটি ওয়েব ব্রাউজার প্রয়োজন ছিল।
মার্কেটপ্লেসগুলো কি কখনো নেটিভভাবে র্যাপ করার সমস্ত বাড়তি ঝামেলা ছাড়াই সরাসরি ওয়েব অ্যাপ সমর্থন করবে? বিষয়টি এখনো স্পষ্ট নয়। আমরা জানি যে গুগল গত বছর ক্রোম ওয়েব স্টোর চালু করেছে, এবং যদিও এটি শুধুমাত্র ডেস্কটপের জন্য প্রযোজ্য, এই স্টোরটি অন্যান্য ব্রাউজার নির্মাতাদের আগ্রহ জাগিয়েছে এবং সামগ্রিকভাবে এটি ওয়েব অ্যাপ ক্যাটালগের দিকে একটি প্রবণতার অংশ, যার মধ্যে মোবাইলের জন্য নির্দিষ্ট কিছু উদ্যোগও রয়েছে। ওয়েব স্টোরের ধারণাটির জন্য এটি এখনও প্রাথমিক পর্যায়, কিন্তু লক্ষণগুলো আশাব্যঞ্জক।
উপসংহার
এখানে কোনো বিজয়ী ঘোষণা করতে পারলে ভালো হতো, কিন্তু এই মুহূর্তে কোনো সুস্পষ্ট বিজয়ী নেই। কিছু অ্যাপ নেটিভের জন্য সবচেয়ে উপযুক্ত এবং কিছু ওয়েবের জন্য। তর্কসাপেক্ষে ওয়েব স্ট্যাকের গতি বেশি, কিন্তু সক্ষমতা এবং কার্যকারিতার দিক থেকে নেটিভ অ্যাপগুলোও দ্রুত এগিয়ে যাচ্ছে। এবং যতক্ষণ না এমন সময় আসে যখন বেশিরভাগ মোবাইল ওএস-এ ওয়েব প্রযুক্তি একটি প্রথম সারির মাধ্যম হয়ে ওঠে, ততক্ষণ পর্যন্ত নেটিভ সবসময়ই একটি গুরুত্বপূর্ণ বিবেচ্য বিষয় থাকবে।
এই নিবন্ধে উল্লিখিত একটি কৌশল হলো হাইব্রিড অ্যাপস, এবং এটি কিছু ডেভেলপারের জন্য সেরা সমাধান হতে পারে: যেখানে সম্ভব সেখানে ওয়েব ভিউ এবং যেখানে সম্ভব নয় সেখানে প্ল্যাটফর্ম-নির্দিষ্ট নেটিভ কম্পোনেন্ট ব্যবহার করা।
আপনি যদি ওয়েবের পথ বেছে নেন, তবে ওয়েব স্ট্যান্ডার্ড এবং প্রগ্রেসিভ এনহ্যান্সমেন্টের নীতি সম্পর্কে সচেতন থাকবেন। ওয়েব এমন একটি প্রযুক্তি যা চারপাশের অসংখ্য ডিভাইস এবং অপারেটিং সিস্টেমকে কীভাবে কাজে লাগাতে হয় তা জানে। আপনি একে 'ফ্র্যাগমেন্টেশন' বা 'ডাইভারসিটি' যা-ই বলুন না কেন, ওয়েব তা গ্রহণ করে এবং আপনারা ডেভেলপাররা বিদ্যমান সমস্ত পূর্ববর্তী উদ্ভাবন থেকে উপকৃত হতে পারেন।
