আমি একজন মোবাইল বিকাশকারী যিনি এই সমস্যাটি বিবেচনা করে প্রচুর সময় ব্যয় করেছেন।
কেন জিজ্ঞাসা করছ?
সম্ভবত, আপনি অ্যাপ্লিকেশন উন্নয়ন ব্যয় দ্বারা কমাতে আশা করি:
- বিদ্যমান HTML5 / জাভাস্ক্রিপ্ট বিকাশ দক্ষতা ব্যবহার করে
- স্ক্র্যাচ থেকে একাধিক অ্যাপ না লিখে একাধিক প্ল্যাটফর্ম লক্ষ্যবস্তু করা হচ্ছে
- ভবিষ্যতে একাধিক কোডবেস বজায় রাখতে হবে না
কারণগুলির মধ্যে অন্তর্ভুক্ত থাকতে পারে:
- এইচটিএমএল 5 / জাভাস্ক্রিপ্ট বিকাশ স্থানীয় প্ল্যাটফর্ম বিকাশের চেয়ে "সহজ" হিসাবে বিবেচিত
- বিকাশকারী প্রোগ্রাম রেজিস্ট্রেশন ফি প্রদান করা এড়ানো
- অ্যাপস্টোর সামগ্রীর সীমাবদ্ধতা (জুয়া ইত্যাদি) এড়ানো
- বিকাশ হার্ডওয়্যার ক্রয় করা এড়ানো (যেমন আইফোন বিকাশের জন্য ম্যাক)
সংজ্ঞা
উল্লিখিত তিনটি পদ্ধতির প্রত্যেকটির দ্বারা আমরা কী বোঝাতে চাই ঠিক তা প্রতিষ্ঠিত করুন:
নেটিভ
একটি অ্যাপ্লিকেশন যা কোনও ডিভাইসে ইনস্টল করা থাকে, সাধারণত তার অ্যাপ স্টোর থেকে (যদিও মাঝে মাঝে সাইডলয়েড করা যায়)। এই আলোচনার উদ্দেশ্যে, একটি নেটিভ অ্যাপ্লিকেশনটির ইউআই সাধারণত সাধারণত একটি পূর্ণ-স্ক্রিন ওয়েবভিউ নিয়ে গঠিত হয় না।
মোবাইল ওয়েব
এটি আসলে কোনও ওয়েব পৃষ্ঠা হতে পারে, তবে এই আলোচনার জন্য আসুন একটি একক পৃষ্ঠার ওয়েব অ্যাপ্লিকেশনটি বিবেচনা করুন যা কোনও নেটিভ অ্যাপ্লিকেশনটির চেহারা ও অনুকরণের চেষ্টা করে। এটি কোনও স্থানীয় অ্যাপ নয়, এটি ডিভাইসের ব্রাউজারে চলে runs
হাইব্রিড
হাইব্রিড অ্যাপ instanceof
নেটিভ অ্যাপ্লিকেশন।
বেশিরভাগ লোকেরা সম্ভবত একটি একক পৃষ্ঠার মোবাইল ওয়েব অ্যাপ্লিকেশন হিসাবে হাইব্রিড অ্যাপ্লিকেশনটি বুঝতে পারে (সম্ভবত সম্ভবত কোনও নেটিভ অ্যাপ্লিকেশনটির চেহারা এবং অনুকরণ অনুকরণ করে), তবে দেশীয় পরিষেবাগুলিতে অ্যাক্সেস সহ একটি স্থানীয় অ্যাপ্লিকেশন হিসাবে প্যাকেজড (Phone লা ফোনগ্যাপ)।
তবে ফোনগ্যাপ মডেল এবং সম্পূর্ণ নেটিভের মধ্যে আসলে একটি স্পেকট্রাম রয়েছে যা আমি পরে আসব।
মোবাইল ওয়েব
প্রযুক্তিগত সীমাবদ্ধতা
প্রথমে মোবাইল ওয়েব অ্যাপ্লিকেশনগুলিতে কিছু প্রযুক্তিগত বিধিনিষেধের তালিকা তৈরি করা যাক যা আপনি যা করছেন তার উপর নির্ভর করে ডিল-ব্রেকারগুলি নিজেরাই হতে পারে:
- শুধুমাত্র এইচটিএমএল / ক্যানভাস ইউআই
- নির্দিষ্ট ডিভাইস ইভেন্ট এবং পরিষেবাদিতে অ্যাক্সেস নেই (এগুলি ব্যাপকভাবে নথিভুক্ত করা হয়)
- অ্যাপ স্টোরগুলিতে তালিকাভুক্ত করা যায় না (আবিষ্কারের প্রভাবিত করে)
- পুরো স্ক্রিনে পরিণত হতে পারে এবং আইওএস এ হোমস্ক্রীন আইকন থাকতে পারে, তবে বেশিরভাগ ব্যবহারকারীর জন্য এটি একটি অস্বাভাবিক এবং অপরিচিত অভিজ্ঞতা
যদি আপনি উপরের সমস্তগুলি সহ বাস করতে পারেন তবে একক পৃষ্ঠার নেটিভ-স্টাইল ওয়েব অ্যাপ্লিকেশনগুলির চ্যালেঞ্জগুলি সম্পর্কে আরও পড়ুন। তবে এই বিভাগটি এফটি অ্যাপ্লিকেশনটির উল্লেখ ছাড়াই সম্পূর্ণ হবে না।
ফাইনানশিয়াল টাইমস
দ্য ফুলটাইম ওয়েব অ্যাপ্লিকেশন অ্যাপ্লিকেশন এই শৈলী একটি বিখ্যাত উদাহরণ। এটি সম্পর্কে ইউকে গার্ডিয়ান পত্রিকার একটি আকর্ষণীয় বৈশিষ্ট্য's
এটি প্রকৌশলের অবশ্যই একটি উল্লেখযোগ্য কীর্তি। নোট করুন যে এটি বর্তমানে কেবলমাত্র আইওএস-এ কেবল উপলভ্য - এটি আমাকে বলে যে তারা উন্নত ক্রস-ব্রাউজার বিকাশের চ্যালেঞ্জগুলি সমাধান করা সত্যিই খুব কঠিন হতে পারে finding
একক পৃষ্ঠা নেটিভ-স্টাইল ওয়েব অ্যাপ্লিকেশন
এই বিভাগটি মোবাইল ওয়েব এবং ফোনগ্যাপ-স্টাইল উভয় অ্যাপ্লিকেশনগুলিতে প্রযোজ্য।
কোনও ওয়েব অ্যাপ্লিকেশনটির মধ্যে নেটিভ-স্টাইলের চেহারা এবং অনুভূতি সাধারণত সেনচা টাচের মতো কাঠামোর সাথে অর্জন করা হয় যা আপনাকে ব্যবহারের জন্য ইউআই উপাদানগুলির একটি স্যুট সরবরাহ করে।
এই জাতীয় ফ্রেমওয়ার্কগুলি খুব সাধারণ ইউআই-তে উপযুক্ত। তবে তাদের নমনীয়তার অভাব রয়েছে। আপনি সেনচা ব্যবহার করে কোনও নেটিভ অ্যাপ্লিকেশন ডিজাইন প্রয়োগ করতে সক্ষম হবেন না, আপনার ফ্রেমওয়ার্কটি কী সামঞ্জস্য করতে পারে তার সাথে আপনার নকশাকে মানিয়ে নিতে হবে।
এই ফ্রেমওয়ার্কগুলি যে প্রধান উপায়ে ভুগছে তা হ'ল প্ল্যাটফর্মের নিজস্ব ইউআই জটিলতা অনুকরণ করার চেষ্টা করা। আপনি আইফোনের একটি তালিকার শেষে স্ক্রোল করলে আপনি যে দুর্দান্ত সামান্য বাউন্সিং এফেক্ট পাবেন? আপনার কাঠামোর জাভাস্ক্রিপ্টে তা অনুকরণ করা দরকার। এটি সম্পূর্ণরূপে পুনরায় তৈরি করা অসম্ভব, এটি ধীর হয়ে যাওয়ার প্রবণতা হবে এবং আপনার ব্যবহারকারীরা এমন একটি অ্যাপ্লিকেশনটির "অস্বাভাবিক উপত্যকায়" আটকে যাবেন যা দেখতে স্থানীয় মত দেখতে ভাল, তবে স্পষ্ট নয়, এবং একটি প্রযুক্তিগত নয় ব্যবহারকারী ঠিক কেন আঙুল রাখতে পারবেন না।
"এইচটিএমএল 5 / জাভাস্ক্রিপ্ট সহজ" পৌরাণিক কাহিনী
ওয়েব ব্রাউজারগুলির মধ্যে ডিভাইস বিভাজন ছড়িয়ে পড়ে এবং আপনি যখন খুব বেসিক এইচটিএমএল এবং সিএসএসের বাইরে চলে যান তখন আপনি লক্ষ্য করবেন যে জিনিসগুলি আপনার প্রত্যাশা মতো কাজ করবে না। আপনি নিজের দেশীয়ভাবে দু'বার করে বাঁচিয়ে সাফ করার চেয়ে বেশি মজাদার UI ইস্যু সমাধান করতে আরও বেশি সময় ব্যয় করতে পারেন। আপনি যদি স্থানীয় হয়ে যাচ্ছেন তবে নোট করুন যে নেটিভ অ্যাপ্লিকেশন ওয়েবভিউগুলি নয় ডিভাইস ব্রাউজারগুলির মতো এবং তাদের নিজস্ব খণ্ডিত সমস্যা রয়েছে।
এবং আপনার অ্যাপ্লিকেশনটি আরও কার্যকরীভাবে জটিল হয়ে উঠলে আপনি দেখতে পাবেন যে আপনার জাভাস্ক্রিপ্টটি পরিষ্কার এবং রক্ষণাবেক্ষণের জন্য আপনার প্রাথমিক বিকাশ দক্ষতার চেয়ে বেশি প্রয়োজন need
এটি বলেছে, এই পদ্ধতির সাহায্যে খুব সহজেই সহজ, কার্যকরী অ্যাপ্লিকেশন তৈরি করা পুরোপুরি সম্ভব। তবে কোনও অ্যাপ্লিকেশন যখন এটি করছে তখন এটি বেশ স্পষ্ট।
আরও বর্ণালী বরাবর
সুতরাং, আমরা একাধিকবার স্ক্র্যাচ থেকে একেবারে সবকিছু না লিখে ফোনগ্যাপ-স্টাইলের অ্যাপ্লিকেশনগুলির চেয়ে আরও ভাল ইউএক্স চাই। আমরা কি করতে পারি?
নন-ইউআই কোডটি ভাগ করুন
একাধিক নেটিভ প্ল্যাটফর্ম জুড়ে ব্যবসায়ের যুক্তি ভাগ করে নেওয়ার জন্য বিভিন্ন কৌশল উপলব্ধ। গুগল J2ObjC চালু করেছে যা জাভাটিকে উদ্দেশ্যমূলক-সি তে অনুবাদ করে। কোডটির যত্ন সহকারে ফ্যাক্টরিংয়ের সাথে একটি জাভা লাইব্রেরি অ্যান্ড্রয়েড এবং আইওএস উভয় ক্ষেত্রে ব্যবহার করা যেতে পারে।
ক্যালতাভা এবং কিরিনের মতো গ্রন্থাগারগুলি জাভাস্ক্রিপ্টে লিখিত কোডবেসগুলিকে (এবং তাই জাভাস্ক্রিপ্টে সংকলন করা যায় এমন কোনও কিছু) স্থানীয় কোড থেকে ম্যানিপুলেট করার অনুমতি দেয়। দাবি অস্বীকার: আমি ভবিষ্যত প্ল্যাটফর্মগুলির জন্য কাজ করি যারা কিরিন তৈরি করেছেন; জিওডব্লিউটি এর সাথে জাভা থেকে উত্পন্ন জাভাস্ক্রিপ্ট সহ আইওএস এ এটি ব্যবহার করে আমরা দুর্দান্ত সাফল্য পেয়েছি, জাভা কোডটিও অ্যান্ড্রয়েডে স্থানীয়ভাবে চালিত হচ্ছে।
ওয়েবভিউগুলি ব্যবহার করুন ... যেখানে উপযুক্ত
স্ক্রিন ট্রানজিশন এবং বাউন্স এফেক্টগুলি অনুকরণ করতে সক্ষম হতে পুরো স্ক্রিন ওয়েবভিউতে প্রচুর কাজ করতে হবে। কিন্তু নেটিভ অ্যাপ্লিকেশন ক্রোমের ভিতরে একটি ওয়েবভিউ দেশীয় থেকে পৃথক হতে পারে।
নেটিভ অ্যাপ্লিকেশন এবং যোগাযোগের জন্য ওয়েবভিউগুলির জন্য মানক এবং ভাল নথিভুক্ত পদ্ধতি রয়েছে।
এইভাবে কাজ করার সাথে তালিকাগুলি এবং সারণীগুলি বিশেষত ভাল কাজ করতে পারে, তবে পাঠ্য এন্ট্রি স্থানীয়ভাবে পরিচালিত কোনও কিছুর উদাহরণ (কীবোর্ডের উপরে সম্পূর্ণ নিয়ন্ত্রণের জন্য)।
সংক্ষেপে
আপনার অ্যাপ্লিকেশনটি কী জটিল, এবং আপনি কোন স্তরের ইউআই পোলিশ দ্বারা সন্তুষ্ট হতে পারবেন তার উপর নির্ভর করে আপনার জন্য সঠিক দৃষ্টিভঙ্গি।
আমার উদ্দেশ্য: আপনি যেখানেই পারেন ওয়েব ভিউগুলি ব্যবহার করুন তবে আপনার ব্যবহারকারীরা তা বলতে পারবেন না তা নিশ্চিত করুন ।