মোবাইল অ্যাপ বিতর্ক
ভূমিকা
মোবাইল অ্যাপ এবং HTML5 হল বর্তমানে দুটি সবচেয়ে জনপ্রিয় প্রযুক্তি এবং সেখানে প্রচুর ওভারল্যাপ আছে। ওয়েব অ্যাপ মোবাইল ব্রাউজারে চলে এবং বিভিন্ন মোবাইল প্ল্যাটফর্মে নেটিভ অ্যাপ হিসেবে রি-প্যাকেজ করা যেতে পারে। বিভিন্ন ধরনের প্ল্যাটফর্মের সাথে কাজ করার সুবিধা এবং মোবাইল ব্রাউজারের অসাধারণ ক্ষমতার কারণে ডেভেলপাররা HTML5-কে "একবার লিখুন, অনেকবার চালান" সমাধান হিসেবে ব্যবহার করছেন। কিন্তু এটি কি সত্যিই সম্ভব? নেটিভ অ্যাপ তৈরি করার পিছনে এখনও অনেক জোরালো কারণ আছে এবং স্পষ্টতই, অনেক ডেভেলপার সেই পথেই হাঁটছেন। এই নিবন্ধটি নেটিভ বনাম ওয়েব নিয়ে একটি বিতর্ক।
ফিচারের প্রাচুর্য
পয়েন্ট: নেটিভ আরও বেশি করতে পারে
আমরা মোবাইল কার্যকারিতাকে দুটি মাত্রায় ভাগ করতে পারি: অ্যাপের নিজস্ব অভিজ্ঞতা এবং এটি ডিভাইসের ইকোসিস্টেমের সাথে যেভাবে যুক্ত হয়, যেমন Android-এর জন্য, এটি উইজেট এবং বিজ্ঞপ্তির মতো ফিচার হবে। নেটিভ বিজ্ঞাপন দুটি ডাইমেনশনেই দারুণ পারফর্ম করে।
অ্যাপ অভিজ্ঞতার ক্ষেত্রে, নেটিভ অ্যাপ আরও বেশি কিছু করতে পারে। যেসব প্ল্যাটফর্মে সোয়াইপ ইভেন্ট, মাল্টিটাচ ইভেন্ট কাজ করে, সেখানে তারা সহজেই এগুলি ব্যবহার করতে পারবেন। এগুলি সাধারণত Android-এর সার্চ বোতাম ও ভলিউম কন্ট্রোলের মতো হার্ড কী প্রেস করার ক্ষেত্রে কাজ করে। এছাড়াও, তারা জিপিএস ও ক্যামেরার মতো হার্ডওয়্যার অ্যাক্সেস করতে পারে। এবং ব্যবহারকারীর অনুমতি নিয়ে, কিছু প্ল্যাটফর্ম অপারেটিং সিস্টেমে অবাধ অ্যাক্সেস প্রদান করে। HTML5-এর সাহায্যে ব্যাটারিতে কতটা চার্জ আছে তা শনাক্ত করার চেষ্টা করুন!
তবে, এটি অ্যাপ-মধ্যস্থ অভিজ্ঞতার চেয়েও বেশি। Android-এর মতো অপারেটিং সিস্টেম অ্যাপকে ব্যবহারকারীর সাথে এবং অন্যান্য অ্যাপের সাথে ইন্টার্যাক্ট করার বিভিন্ন উপায় প্রদান করে। হোমপেজে আপনার অ্যাক্টিভ উইজেট আছে। আপনার কাছে বিজ্ঞপ্তি আছে, যা ডিভাইসের স্ট্যাটাস বারে দেখা যায়। এবং আপনার কাছে ইনটেন্ট আছে, যা আপনার অ্যাপকে নিজেকে এমন একটি সাধারণ পরিষেবা প্রদানকারী হিসেবে ঘোষণা করার অনুমতি দেয় যা অন্যান্য অ্যাপের প্রয়োজন হতে পারে।
পাল্টা যুক্তি: নেটিভ ফিচার আরও উন্নত করা যেতে পারে এবং ওয়েব যেকোনও উপায়েই এর সাথে তাল মিলিয়ে চলছে
এটা সত্যি যে অনেক ইন-অ্যাপ ফিচার HTML5 অ্যাপের পক্ষে ব্যবহার করা সম্ভব নয়। আপনার ওয়েব-ফু দক্ষতা যতই ভালো হোক না কেন, আপনার অ্যাপ যদি ক্যামেরা API ছাড়া স্যান্ডবক্সে আটকে থাকে, তাহলে এটি শীঘ্রই স্ন্যাপ নিতে পারবে না! ভাগ্যক্রমে, আপনাকে সেই স্যান্ডবক্সে থাকতে হবে না। আপনার ওয়েব অ্যাপের মাধ্যমে ফটো তোলার প্রয়োজন হলে, আপনি নেটিভ অ্যাপ তৈরি করতে পারেন, যার মধ্যে এম্বেড করা ওয়েব ভিউ থাকে এবং এটি ইউজার ইন্টারফেসের বেশিরভাগ অংশ প্রদান করে। ওপেন-সোর্স PhoneGap ফ্রেমওয়ার্ক এইভাবে কাজ করে: এটি নেটিভ ফিচারকে ওয়েব পরিষেবা হিসেবে প্রকাশ করে ফাঁক পূরণ করে, যা ওয়েব ভিউ স্ট্যান্ডার্ড নেটওয়ার্কিং API ব্যবহার করে কল করে। আপনি যখন এই ধরনের হাইব্রিড অ্যাপ তৈরি করেন, তখন আপনি উইজেট, বিজ্ঞপ্তি এবং ইনটেন্টের মতো প্ল্যাটফর্ম ফিচারগুলিও ব্যবহার করতে পারেন।
হাইব্রিড - নেটিভ প্লাস ওয়েব - অ্যাপ তৈরি করা আদর্শ সমাধান নয়। এটি জটিলতা বাড়ায় এবং মোবাইল ব্রাউজার থেকে অ্যাক্সেস করা প্রথাগত ওয়েবসাইটের পরিবর্তে নেটিভ অ্যাপ হিসেবে র্যাপ করা ওয়েব অ্যাপের ক্ষেত্রে প্রযোজ্য হয়। তবে, এটি বেশিদিন করার প্রয়োজন নাও হতে পারে। ওয়েব স্ট্যান্ডার্ড দ্রুত পরিবর্তিত হচ্ছে এবং আধুনিক মোবাইল ব্রাউজারও সেই অনুযায়ী আপডেট হচ্ছে। উদাহরণস্বরূপ, অফলাইন স্টোরেজ, ভৌগোলিক অবস্থান, ক্যানভাস গ্রাফিক্স এবং ভিডিও/অডিও প্লেব্যাক, আধুনিক স্মার্টফোনে ব্যাপকভাবে ব্যবহার করা হয়। এমনকি ক্যামেরা কাজ করাও শুরু করেছে - Android 3.1 থেকে, ওয়েব স্ট্যান্ডার্ড ব্যবহার করে ফটো ও ভিডিও ক্যাপচার করা সম্ভব। এবং লেটেস্ট iOS ব্রাউজার ২-ওয়ে স্ট্রিমিংয়ের জন্য WebSocket সাপোর্ট করে, এর পাশাপাশি ডিভাইস ওরিয়েন্টেশন শনাক্ত করে।
সামগ্রিকভাবে, মোবাইল আরও উন্নত হচ্ছে। কিন্তু ওয়েবও দ্রুত পরিবর্তিত হচ্ছে। শুধু ডেস্কটপ ব্রাউজারের মধ্যেই, পাঁচটি প্রধান ব্রাউজার ভেন্ডর স্ট্যান্ডার্ড উন্নত করছে এবং দ্রুত গতিতে ফিচার যোগ করছে। এইসব ফিচার মোবাইলে পোর্ট করা সহজ নয়, তবে এর মধ্যে অনেকগুলি ফিচার ইতিমধ্যেই মোবাইল ব্রাউজারে উপলভ্য করা হয়েছে।
নেটিভ দ্রুত পরিবর্তনশীল লক্ষ্য, তবে ওয়েব এই ব্যবধান কমিয়ে আনছে।
পারফর্ম্যান্স
পয়েন্ট: নেটিভ আরও দ্রুত রান করে
নেটিভ অ্যাপে ওয়েব রানটাইম সংক্রান্ত কোনও বাধা থাকে না। এগুলি মেটালের কাছাকাছি রান করে এবং GPU অ্যাক্সিলারেশন ও মাল্টিথ্রেডিংয়ের মতো পারফর্ম্যান্স বুস্টারের সুবিধা নিতে পারে।
কাউন্টারপয়েন্ট: ওয়েব রানটাইম এখন অনেক দ্রুত কাজ করে এবং বেশিরভাগ অ্যাপের ক্ষেত্রে এই স্পিডের প্রয়োজন হয় না
সাম্প্রতিক বছরগুলিতে ওয়েব আরও দ্রুত হয়েছে, এটি বললে কম বলা হবে। V8 হল জাভাস্ক্রিপ্ট ইঞ্জিন যা Chrome-এর সাথে শিপ করা হয়, এটি লঞ্চ হওয়ার সময় ওয়েব পারফর্ম্যান্সের ক্ষেত্রে একটি বড় ডেভেলপমেন্ট ছিল এবং তারপর থেকে, এটি শুধুমাত্র আরও দ্রুত হয়েছে:
গ্রাফিক রেন্ডারিং ইঞ্জিনও ওয়েবের গতি বাড়িয়েছে এবং এখন হার্ডওয়্যার অ্যাক্সিলারেশন শুরু হচ্ছে। হার্ডওয়্যার অ্যাক্সিলারেটেড-ক্যানভাস দ্বারা প্রদত্ত স্পিড বাম্প দেখুন:
এছাড়াও, নতুন Web Workers API মাল্টিথ্রেডিংয়ের সম্ভাবনা তৈরি করে এবং আধুনিক ওয়েব ডেভেলপাররা পারফর্ম্যান্স-অপ্টিমাইজ করা বিভিন্ন লাইব্রেরি এবং ভালোভাবে রিসার্চ করা পারফর্ম্যান্স অপ্টিমাইজেশন টেকনিকও ব্যবহার করতে পারেন। যদিও এর মধ্যে বেশিরভাগই ডেস্কটপ ওয়েবে শুরু হয়েছিল, তবুও সেগুলি মোবাইলের জন্য প্রাসঙ্গিক এবং মোবাইলের দিকে আরও বেশি মনোযোগ দেওয়া হয়েছে, যেমন পারফরম্যান্স গুরু স্টিভ সাউডার্সের মোবাইল পারফরম্যান্স টুলের জন্য ডেডিকেটেড পৃষ্ঠা রয়েছে।
ডেস্কটপের সব উন্নত ফিচার এখনও সব মোবাইল প্ল্যাটফর্মে উপলভ্য হয়নি, তবে ট্রেন্ড থেকে বোঝা যাচ্ছে যে সেগুলি শীঘ্রই উপলভ্য হবে। এছাড়াও, এটি মনে রাখা গুরুত্বপূর্ণ যে অধিকাংশ মোবাইল অ্যাপই অত্যাধুনিক 3D গেম নয়, বরং মূলত তথ্য-ভিত্তিক: খবর, মেল, সময়সূচি, সোশ্যাল নেটওয়ার্ক ইত্যাদি। আপনার মোবাইল থেকে কয়েকটি সাইট দেখুন, যেমন GMail, Amazon, Twitter এবং আপনি নিশ্চিত করতে পারবেন যে মোবাইল ওয়েবের পারফর্ম্যান্স পর্যাপ্তের চেয়েও বেশি। গেমের ক্ষেত্রে, বেসিক গেমগুলি ইতিমধ্যেই 2D ক্যানভাসের সাথে ব্যবহার করা যায় এবং WebGL মোবাইলে আসতে শুরু করেছে - Firefox 4 দেখুন। এটি ব্যাপকভাবে ব্যবহার না হওয়া পর্যন্ত, ফ্রেমওয়ার্কের একটি ক্রমবর্ধমান ফ্যামিলি আছে যা WebGL অ্যাপকে নেটিভ অ্যাপে কম্পাইল করে যা OpenGL-এর সুবিধা নিতে পারে, যেমন ImpactJS।
ডেভেলপার অভিজ্ঞতা
পয়েন্ট: নেটিভ বিজ্ঞাপন তৈরি করা সহজ
নেটিভ অ্যাপে শক্তিশালী প্রোগ্রামিং ল্যাঙ্গুয়েজ (যেমন, Java, Objective C, C++) ব্যবহার করা হয় যা জটিল অ্যাপ্লিকেশন ডেভেলপ করার জন্য ডিজাইন করা হয়েছে এবং এর ট্র্যাক রেকর্ডও ভালো। API-গুলি প্ল্যাটফর্মকে সহায়তা করার জন্য ডিজাইন করা হয়েছে। আপনি ডেস্কটপ এমুলেটরে সহজেই অ্যাপ ডিবাগ করতে পারবেন যা টার্গেট ডিভাইসের একটি কাছাকাছি উপস্থাপনা প্রদান করে।
ওয়েব ডেভেলপমেন্টকে বিশেষভাবে কষ্টকর করে তোলে ব্রাউজার এবং রানটাইমের বিশাল বৈচিত্র্য। আপনার অ্যাপ রান করলে, ফিচার X উপলভ্য হবে কিনা তার কোনও গ্যারান্টি নেই। আর যদি তা হয়ও, তাহলে ব্রাউজার কীভাবে তা প্রয়োগ করবে? স্ট্যান্ডার্ডের ব্যাখ্যা বিভিন্নভাবে করা যেতে পারে।
কাউন্টারপয়েন্ট: ওয়েব ডেভেলপ করা প্রায়শই সহজ, বিশেষ করে একাধিক ডিভাইস টার্গেট করলে
প্রথমে কোর টেকনোলজি নিয়ে আলোচনা করা যাক। এটা ঠিক যে ওয়েব স্ট্যান্ডার্ডগুলি মূলত এমন এক যুগে তৈরি করা হয়েছিল যখন ওয়েব মূলত ডকুমেন্ট সম্পর্কে ছিল, অ্যাপ নয়, জাভাস্ক্রিপ্ট তৈরি এবং মাত্র ১০ দিনে ডিপ্লয় করা হয়েছিল! তবে, এগুলি কল্পনার চেয়েও অনেক বেশি কার্যকর বলে প্রমাণিত হয়েছে - ওয়েব ডেভেলপাররা ভাল অংশগুলি কাজে লাগাতে এবং খারাপ অংশগুলি নিয়ন্ত্রণ করতে শিখেছেন, এখন স্কেলেবল ডিজাইনের জন্য প্যাটার্ন বোঝা গেছে। এছাড়াও, স্ট্যান্ডার্ডগুলি স্থির থাকে না এবং HTML5, CSS3 এবং EcmaScript Harmony-এর মতো প্রচেষ্টাগুলি সবই ডেভেলপারের অভিজ্ঞতা উন্নত করছে। আপনি C++ বা Java বা JavaScript-এর মধ্যে কোনটি পছন্দ করেন তা নিয়ে বিতর্ক রয়েছে এবং এটি আপনার লিগ্যাসি কোড বেসের উপরও নির্ভর করে। তবে, আজকাল জাভাস্ক্রিপ্টকে আমরা অবশ্যই গুরুত্বপূর্ণ প্রতিযোগী হিসেবে অন্তর্ভুক্ত করতে পারি।
ব্রাউজার/রানটাইম ফ্র্যাগমেন্টেশনের উল্টো দিক হল, এইসব এনভায়রনমেন্ট প্রথম থেকেই আছে। Java-তে Android অ্যাপ ডেভেলপ করুন এবং iOS-এ কাজ করার জন্য Objective C-তে সম্পূর্ণ পোর্ট করুন। একবার একটি ওয়েব অ্যাপ ডেভেলপ করুন এবং এটি Android ও iOS-এ চলবে, WebOS, BlackBerry, Windows Mobile এবং… হ্যাঁ, এটিই হল থিওরি। বাস্তবে, আপনি যদি সত্যিই সঠিক অভিজ্ঞতা পেতে চান, তাহলে প্রতিটি প্ল্যাটফর্মের জন্য আপনাকে কিছু পরিবর্তন করতে হবে। কিন্তু আপনাকে নেটিভেও তা করতে হবে, বেশিরভাগ মোবাইল অপারেটিং সিস্টেমের জন্য - বিভিন্ন ভার্সন এবং বিভিন্ন ডিভাইস আছে।
সুখবর হল, "ফ্র্যাগমেন্টেশন" সবসময়ই ওয়েবে এইভাবেই কাজ করে এবং এর সাথে মানিয়ে নেওয়ার জন্য সুপরিচিত কৌশল রয়েছে। সবচেয়ে গুরুত্বপূর্ণ হল, প্রোগ্রেসিভ এনহ্যান্সমেন্টের নীতি ডেভেলপারদের প্রথমে একটি বেসিক ডিভাইসকে টার্গেট করতে এবং যেখানে উপলভ্য সেখানে প্ল্যাটফর্ম-নির্দিষ্ট দুর্দান্ত লেয়ার যোগ করতে উৎসাহিত করে। ফিচার শনাক্তকরণের মন্ত্রও সাহায্য করে এবং আজকাল, রেসপন্সিভ ওয়েব ডিজাইনকে সাপোর্ট করার জন্য আমাদের কাছে Modernizr-এর মতো লাইব্রেরি সাপোর্ট রয়েছে। এইসব টেকনিকের বিচক্ষণ ব্যবহারের মাধ্যমে, আপনি অধিকাংশ ডিভাইসে আপনার রিচ বাড়াতে পারবেন, এমনকি পুরনো ধাঁচের "ফিচার ফোন", এমনকি ঘড়ি ও টিভির মতো ফর্ম ফ্যাক্টরেও, মেক ও OS যাই হোক না কেন। Google IO 2011-এ আমাদের মাল্টি-UI ডেমো দেখুন, যেখানে আমরা লজিক ও মার্কআপের একটি সাধারণ কোড বেস সহ বিভিন্ন ফর্ম ফ্যাক্টর (ফিচার ফোন, স্মার্টফোন, ট্যাবলেট, ডেস্কটপ, টিভি) টার্গেট করেছি।
লুক-অ্যান্ড-ফিল
পয়েন্ট: নেটিভ বিজ্ঞাপন প্ল্যাটফর্মের লুক-অ্যান্ড-ফিলের সাথে মানানসই হয়
যেকোনও প্ল্যাটফর্মের অন্যতম গুরুত্বপূর্ণ ফিচার হল তার লুক ও ফিল। ব্যবহারকারীরা আশা করেন যে কন্ট্রোলগুলি ধারাবাহিকভাবে উপস্থাপন করা হবে এবং একইভাবে ম্যানিপুলেট করা হবে। কিছু বাগধারা আছে যা প্ল্যাটফর্ম অনুযায়ী পরিবর্তিত হয়, যেমন, ব্যবহারকারী "অনেকক্ষণ ধরে রাখলে" (কয়েক সেকেন্ড ধরে কোনও এলিমেন্ট স্পর্শ করে থাকলে) কী হয়? এই ধরনের বিষয়ের জন্য প্ল্যাটফর্মের স্ট্যান্ডার্ড ইডিয়ম আছে এবং আপনি একটি HTML5 অ্যাপের মাধ্যমে সবকটি পূরণ করতে পারবেন না।
এছাড়াও, প্ল্যাটফর্মের নেটিভ সফ্টওয়্যার লাইব্রেরি দ্বারা প্ল্যাটফর্মের লুক-অ্যান্ড-ফিল অর্কেস্ট্রেট করা হয়, যার উইজেটগুলি ব্যবহারকারীদের প্রত্যাশিত লুক-অ্যান্ড-ফিলকে এনক্যাপসুলেট করে। নেটিভ টুলকিট ব্যবহার করে আপনি প্রত্যাশিত লুক-অ্যান্ড-ফিল "ফ্রিতে" পেয়ে যাবেন।
কাউন্টারপয়েন্ট: ওয়েবের নিজস্ব লুক-অ্যান্ড-ফিল আছে এবং আপনি যেসব প্ল্যাটফর্ম সবচেয়ে বেশি ব্যবহার করেন সেগুলির জন্য ওয়েব ইন্টারফেস কাস্টমাইজ করতে পারবেন
আগের বিভাগে যেমন ব্যাখ্যা করা হয়েছে, ওয়েব ডেভেলপমেন্টের পদ্ধতি হল "একই সাইজ সবার জন্য" এই ধরনের একটি প্রাথমিক ভার্সন লেখা এবং তারপর ধীরে ধীরে সেটিকে উন্নত করা। যদিও সাধারণত ফিচারের উপর ভিত্তি করে উন্নত করা হয়, আপনি সবচেয়ে বেশি গুরুত্ব দেন এমন প্ল্যাটফর্মকে টার্গেট করেও উন্নত করতে পারেন। এটি এক ধরনের "ব্রাউজার শনাক্তকরণ", যা কখনও কখনও ওয়েব কমিউনিটি দ্বারা ভ্রুকুটি করা হয়, বেশিরভাগই কারণ সেখানে অনেক সম্ভাব্য ব্রাউজার আছে। কিন্তু আপনি যদি দুটি বা তিনটি প্ল্যাটফর্মকে খুব বেশি অগ্রাধিকার দেন এবং আপনি যদি নেটিভ বিকল্পের বিরুদ্ধে স্ট্যাক আপ করার জন্য অতিরিক্ত প্রচেষ্টা করতে ইচ্ছুক হন, তাহলে এটিই হতে পারে সঠিক পথ।
বেসলাইন ভার্সনের ক্ষেত্রে, ওয়েবের নিজস্ব লুক-অ্যান্ড-ফিল আছে এবং আমরা এমনকি বলতে পারি যে প্রতিটি মোবাইল প্ল্যাটফর্মের নিজস্ব "ওয়েব লুক-অ্যান্ড-ফিল" আছে যা ডিফল্ট ব্রাউজার এবং ওয়েব রানটাইম দ্বারা প্রতিষ্ঠিত। "ওয়েব লুক-অ্যান্ড-ফিল" আপনার ব্যবহারকারীদের জন্য ভালো হতে পারে এবং আসলে, ডেস্কটপ ব্রাউজিং অভিজ্ঞতার সাথে আরও বেশি সামঞ্জস্য অর্জন করতে আপনাকে সাহায্য করে, সেইসাথে ব্যবহারকারী কাজ করতে পারেন এমন অন্যান্য ডিভাইসেও। এছাড়াও, এমন অনেক সফল অ্যাপ আছে যেগুলি নেটিভ লুক ও ফিলকে খুব একটা সাপোর্ট করে না। গেমের ক্ষেত্রে এটি অবশ্যই সত্যি (আপনার প্রিয় মোবাইল গেম কি আপনার মোবাইল OS-এর লুক ও ফিল অনুসরণ করে?), এমনকি আরও প্রচলিত অ্যাপের ক্ষেত্রেও সত্যি, যেমন আপনার পছন্দের প্ল্যাটফর্মে আরও জনপ্রিয় নেটিভ Twitter ক্লায়েন্ট চেক করে দেখুন এবং আপনি কাজ করার সময় ইউজার ইন্টারফেস মেকানিজমের একটি বিস্তৃত রেঞ্জ দেখতে পাবেন।
খুঁজে নেওয়ার যোগ্যতা
পয়েন্ট: নেটিভ অ্যাপ আরও সহজে খুঁজে পাওয়া যায়
Android-এর Market এবং Apple-এর App Store-এর মতো অ্যাপ ডিস্ট্রিবিউশন মেকানিজম সাম্প্রতিক বছরগুলিতে অত্যন্ত জনপ্রিয় হয়ে উঠেছে এবং সমগ্র মোবাইল ইন্ডাস্ট্রির জন্য একটি প্রধান চালিকা শক্তি। যেকোনও ডেভেলপার মার্কেটপ্লেসে তার নেটিভ অ্যাপ জমা দিতে পারেন, যেখানে ব্যবহারকারীরা ব্রাউজ, সার্চ ও সাজেশন পাওয়ার মাধ্যমে এটি খুঁজে পেতে পারেন। শুধু তাই নয়, আপনি যদি নিজের কাজ ঠিকভাবে করে থাকেন, তাহলে উজ্জ্বল রেটিং ও কমেন্ট ব্যবহারকারীদের সেই অতি গুরুত্বপূর্ণ ইনস্টল বোতামে ক্লিক করতে বাধ্য করবে।
কাউন্টারপয়েন্ট: আসলে, ওয়েব অ্যাপ খুঁজে পাওয়া আরও সহজ
ওয়েব হল সম্ভবত এখনও পর্যন্ত তৈরি করা সবচেয়ে বেশি খুঁজে পাওয়ার যোগ্য মাধ্যম। URL-এর মধ্যে, আমাদের কাছে (অন্তত তাত্ত্বিকভাবে) ওয়েবে প্রকাশিত সবকিছুর জন্য একটি অনন্য শনাক্তকারী রয়েছে, যার মধ্যে স্ট্যান্ডার্ড ওয়েবসাইটে প্রকাশিত যেকোনও অ্যাপ অন্তর্ভুক্ত। সার্চ ইঞ্জিনের মাধ্যমে সেই কন্টেন্ট সহজেই খুঁজে পাওয়া যায় এবং অন্যান্য ওয়েবসাইট সেটির সাথে লিঙ্ক করতে পারে, যার মধ্যে মোবাইল মার্কেটপ্লেসের মতো ওয়েব অ্যাপের ক্যাটালগও অন্তর্ভুক্ত। আসলে, যে কোনও ব্যক্তি ইমেল এবং সোশ্যাল নেটওয়ার্ক মেসেজে লিঙ্ক করে তার বন্ধুদের সাথে ওয়েব অ্যাপ শেয়ার করতে পারেন। এছাড়াও, এসএমএস-এ লিঙ্ক পাঠানো যেতে পারে, যেখানে মোবাইল ব্যবহারকারীরা লিঙ্কে ক্লিক করতে এবং তাদের ডিভাইসের ব্রাউজারে অ্যাপটি চালু করতে পারবেন।
আমাদের কাছে এখনও এমন মার্কেটপ্লেস নেই যেখানে ব্যবহারকারীরা অ্যাপে রেটিং এবং কমেন্ট করতে পারেন, তবে এটিও পরিবর্তন হচ্ছে। আরও পড়ুন…
মনিটাইজেশন
পয়েন্ট: নেটিভ মনিটাইজ করা যাবে
"৬ বছরের বাচ্চা লাঞ্চের সময় অ্যাপ তৈরি করে, $৩ মূল্যে অসংখ্য কপি বিক্রি করে"। আজকাল এই ধরনের শিরোনাম প্রায়ই দেখা যায়, তাই ছোট-বড় সব ডেভেলপারই যে মনিটাইজেশনের জন্য মোবাইল মার্কেটপ্লেসের দিকে ঝুঁকছেন, তাতে অবাক হওয়ার কিছু নেই। মোবাইল প্ল্যাটফর্ম ডেভেলপারদের তাদের অ্যাপের জন্য সরাসরি চার্জ করার জন্য বেশ কয়েকটি উপায় অফার করে। সবচেয়ে সহজ হল এককালীন পেমেন্ট, যা অ্যাপটি চিরকালের জন্য আনলক করে দেয়। এছাড়াও, কিছু প্ল্যাটফর্মে অ্যাপ-মধ্যস্থ পেমেন্ট ও সাবস্ক্রিপশন মেকানিজম অফার করা হয় এবং সেগুলি একটি সামঞ্জস্যপূর্ণ, সুরক্ষিত, মেকানিজমে দৃঢ়ভাবে ইন্টিগ্রেট করা থাকে। এইসব নতুন পেমেন্ট পদ্ধতির মাধ্যমে ডেভেলপাররা একটি জনপ্রিয় অ্যাপকে দীর্ঘমেয়াদী উপার্জনের উৎসে পরিণত করতে পারেন।
অ্যাপ পেমেন্ট ছাড়াও, আপনি বিজ্ঞাপন ও স্পনসরশিপের মতো প্রথাগত ওয়েব মডেলের মাধ্যমে মনিটাইজ করতে পারবেন।
পাল্টা যুক্তি: ওয়েবে মনিটাইজ করা সবসময়ই সম্ভব এবং সুযোগ আরও বাড়ছে
অর্থ উপার্জনের পর্যাপ্ত সুযোগ না থাকলে, ওয়েব আধুনিক ইন্ডাস্ট্রির ইঞ্জিন হতে পারত না। যদিও সরাসরি "ব্যবহার-অনুযায়ী-পেমেন্ট" মেকানিজম এখনও ততটা জনপ্রিয় হয়নি, তবে বিভিন্ন নিশ রয়েছে যেখানে সাবস্ক্রিপশন-ভিত্তিক "পরিষেবা হিসেবে সফ্টওয়্যার" সমাধান প্রকৃতপক্ষে কার্যকর হয়েছে। উদাহরণস্বরূপ, Google Apps, 37Signals' প্রোডাক্টের রেঞ্জ এবং বিভিন্ন ইমেল পরিষেবার প্রিমিয়াম ভার্সন। এছাড়াও, ওয়েব অ্যাপ থেকে লাভ করার একমাত্র উপায় সরাসরি পেমেন্ট নয়। অনলাইন বিজ্ঞাপন, অ্যাফিলিয়েট লিঙ্ক, স্পনসরশিপ, অন্যান্য প্রোডাক্ট ও পরিষেবার ক্রস-প্রোমোশন।
তবে, একজন ওয়েব ডেভেলপারের পক্ষে শিরোনাম পড়ে পেমেন্ট সংক্রান্ত ঈর্ষা অনুভব করা সম্পূর্ণ স্বাভাবিক। আপনি নেটিভ মার্কেটপ্লেসে ওয়েব URL জমা দিতে পারবেন না, তাহলে ওয়েব ডেভেলপার কী করবেন? আপনি যা করেন তা হল একটি নেটিভ "র্যাপার অ্যাপ" তৈরি করা - প্রতিটি প্ল্যাটফর্মের জন্য আপনি টার্গেট করতে চান, একটি খালি নেটিভ অ্যাপ তৈরি করুন যাতে কেবল একটি ওয়েব ভিউ থাকে। ওয়েব ভিউতে আপনি আসল অ্যাপটি এম্বেড করেন। তারপর আপনি বিভিন্ন মার্কেটপ্লেসে এই অ্যাপগুলি জমা দেন (এবং আশা করি টাকা উপার্জন করেন!)। আজকের দিনে প্রধান মার্কেটপ্লেসে হাজার হাজার না হলেও শত শত ওয়েব-পরিচালিত অ্যাপ রয়েছে, যার মধ্যে কিছু অ্যাপ এতটাই চতুরতার সাথে মিশে গেছে যে আমরা সেগুলিকে ওয়েব অ্যাপ হিসেবে চিনতেই পারি না।
এর অসুবিধা হল প্রতিটি প্ল্যাটফর্মে ক্রস-কম্পাইল করার দায়িত্ব। PhoneGap-এর মতো আগে থেকে থাকা ফ্রেমওয়ার্ক এখানে সাহায্য করতে পারে। আরও ভালো হয়, যদি PhoneGap Build এবং Apparatio-এর মতো ওয়েব পরিষেবা ডেভেলপ করা হয়। এইসব ওয়েবসাইটকে আপনার কোড রিপোজিটরিতে পয়েন্ট করুন এবং Android অ্যাপ, iOS অ্যাপ এবং আরও অনেক কিছু পপ-আপ হবে… যা সংশ্লিষ্ট স্টোরে জমা দেওয়ার জন্য রেডি। আপনার মেশিনে নেটিভ SDK ইনস্টল করার প্রয়োজন নেই; এই সব নেটিভ অ্যাপ তৈরি করার জন্য আপনার যা প্রয়োজন তা হল একটি কোড এডিটর এবং একটি ওয়েব ব্রাউজার।
মার্কেটপ্লেসগুলি কি কখনও সরাসরি ওয়েব অ্যাপগুলিকে সমর্থন করবে, নেটিভভাবে মোড়ানোর সমস্ত ওভারহেড ছাড়াই? এটি এখনও স্পষ্ট নয়। আমরা জানি যে Google গত বছর Chrome ওয়েব স্টোর চালু করেছে এবং যদিও এটি শুধুমাত্র ডেস্কটপের ক্ষেত্রে প্রযোজ্য, স্টোরটি অন্যান্য ব্রাউজার ভেন্ডরদের আগ্রহকে ট্রিগার করেছে এবং সামগ্রিকভাবে ওয়েব অ্যাপ ক্যাটালগের দিকে একটি প্রবণতার অংশ, যার মধ্যে কিছু মোবাইল-নির্দিষ্ট প্রচেষ্টা রয়েছে। ওয়েব স্টোরের ধারণাটি নতুন হলেও, এর ভবিষ্যৎ উজ্জ্বল।
উপসংহার
এখানে কোনও একটিকে সেরা ঘোষণা করতে পারলে ভালো হত, কিন্তু এই মুহূর্তে, কোনও স্পষ্ট সেরা নেই। কিছু অ্যাপ নেটিভের জন্য এবং কিছু অ্যাপ ওয়েবের জন্য সবচেয়ে উপযুক্ত। ওয়েব স্ট্যাকের গতি বেশি হলেও, ক্ষমতা ও এক্সিকিউশন কোয়ালিটির দিক থেকে নেটিভ অ্যাপও দ্রুত এগিয়ে চলেছে। এবং যতক্ষণ না এমন সময় আসে যখন অধিকাংশ মোবাইল OS-এ ওয়েব প্রযুক্তি ফার্স্ট-ক্লাস সিটিজেন হিসেবে বিবেচিত হয়, ততক্ষণ নেটিভ সবসময় গুরুত্বপূর্ণ বিবেচনা হিসেবে থাকবে।
এই নিবন্ধে উল্লেখ করা একটি কৌশল হল হাইব্রিড অ্যাপ এবং এটি কিছু ডেভেলপারের জন্য সেরা আপস হতে পারে: যেখানে সম্ভব সেখানে ওয়েব ভিউ এবং যেখানে সম্ভব নয় সেখানে প্ল্যাটফর্ম-নির্দিষ্ট নেটিভ কম্পোনেন্ট।
আপনি যদি ওয়েব পাথ বেছে নেন, তাহলে ওয়েব স্ট্যান্ডার্ড এবং প্রোগ্রেসিভ এনহ্যান্সমেন্টের নীতি সম্পর্কে সচেতন থাকুন। ওয়েব হল এমন একটি প্রযুক্তি যা জানে কীভাবে আশেপাশের অসংখ্য ডিভাইস এবং অপারেটিং সিস্টেমকে টার্গেট করতে হয়। আপনি এটিকে "ফ্র্যাগমেন্টেশন" বা "বৈচিত্র্য" যাই বলুন না কেন, ওয়েব এটিকে গ্রহণ করে এবং ডেভেলপাররা আগে থেকে থাকা সব পূর্ব বিবৃতি থেকে উপকৃত হতে পারেন।