মোবাইল অ্যাপ আর্কিটেকচার

আমরা যত রকম অ্যাপ দেখি, হোক অ্যান্ড্রয়েড অ্যাপ বা আইওএস অ্যাপ, এগুলো মেইনলি দুই ক্যাটেগরির।

একঃ View-heavy বা data-driven অ্যাপ যেমনঃ Social app like Facebook, Twitter etc, Messenger, News app, Note ইত্যাদি। এই অ্যাপ গুলতে বেশির ভাগ তথ্য থাকে টেক্সট, ইমেজ ইত্যাদি।

দুইঃ Graphics-heavy অ্যাপ। Games, Creative Art, Photo Editing

ডেটা ড্রিভেন অ্যাপ গুলো তৈরি করতে যে সব কনসেপ্ট গুলো ক্লিয়ার থাকতে হয়, সে গুলো হচ্ছেঃ

1. Views: Common Controls and View Layout
2. Events: Interaction and Event Handling
3. Navigation: Screen Flows and Navigation
4. Data: Models, Networking and Persistence
5. Platform: OS Services, Hardware, Accessing Sensors

কিছু অ্যাপে হয়তো সব গুলো কনসেপ্ট কাজে লাগবে। কিছু অ্যাপে হয়তো দুই একটা কনসেপ্ট কাজে লাগবে।

ভিউ গুলো ডেটা দেখায়। অ্যান্ড্রয়েড এ বা আইওএস এ হয়তো ভিউ গুলোর নাম ভিন্ন, কিন্তু কাজ একই। যেমন অ্যান্ড্রয়েডে text দেখানোর জন্য Plain Text, সেটা আইওএস এ হচ্ছে Label এমন।

ইভেন্ট হচ্ছে কোথায় ক্লিক করলে কি হবে এসব বিষয় গুলো পরিচালনা করে। স্ক্রিনের ফ্লো গুলোই হচ্ছে ন্যাভিগেশন মূল কনসেপ্ট একই। হয়তো দুইটা মোবাইল অপারেটিং সিস্টেমে দুই রকম নাম।

ডেটা সোর্স Text ফাইল হতে পারে, ডেটাবেজ থেকে হতে পারে, হতে পারে ওয়েব সার্ভার থেকে JSON বা XML ফরমেটে। ডেটা সোর্স ওয়েব সার্ভার হলে আবার নেটওয়ার্ক কল করতে হয়। ডেটা গুলো যে ফরমেটেই আসুক না কেন, একটা কমন ফরমেটে তখন তা কনভার্ট করতে হয়। সাধারণত এটাকে Modelling বলে।

কিছু কিছু অ্যাপ ক্লোজ করে দিলেও কাজ করে। যেমন Skype বা মেসেজিং অ্যাপ গুলো, এলার্ম ইত্যাদি। এগুলোর জন্য দরকার হয় সার্ভিসের। যেন অ্যাপটা বন্ধ করে দিলেও অপারেটিং সিস্টেম নির্দিষ্ট কাজ টি করতে পারে। আমাদের দরকার হয় হার্ডওয়ার, যেমন সেন্সর, ক্যামেরা ইত্যাদি। ডেটা ড্রিভেন অ্যাপ গুলোতে এই সব টপিক্সই বেশি লাগে।

এখনকার ডেটা ড্রিভেন অ্যাপ গুলোতে ডেটা সোর্স থেকে ডেটা পাঠানোর জন্য বেশি ব্যবহৃত হয় JSON ফরমেট। এটি প্রসেসটি মূলত REST API নামে পরিচিত। এই টাইপ অ্যাপ তৈরি করার জন্য নেটওয়ার্কিং, ডেটা সিরিয়ালাইজেশন, ডিসিরিয়ালাইজেশন, মডেল, ভিউ, কন্ট্রোলার সম্পর্কে ধারণা থাকলেই সহজে অ্যাপ গুলো তৈরি করা যায়।

Graphics-heavy অ্যাপ গুলোর কনসেপ্ট কিছুটা অন্যরকম। যেমন এগুলোর জন্য লাগে ক্যানভাস, OpenGL ইত্যাদি। গেম গুলো সাধারণত Graphics-heavy অ্যাপ। এই টাইপ অ্যাপ তৈরি সহজ করার জন্য আবার অনেক গুলো লাইব্রেরী বা ফ্রেমওয়ার্ক রয়েছে। Unity, LibGDX, Unreal Engine, Cryengine, Heroengine ইত্যাদি।

ভবিষ্যৎ এ কি হবে জানি না, কিন্তু বর্তমানে ক্যারিয়ারে ভালো করতে মোবাইল অ্যাপ ডেভেলপমেন্ট পছন্দ করা সবচেয়ে বুদ্ধিমানের কাজ হবে। যে রকম অ্যাপই তৈরি করতে চান না কেনো, ইন্টারনেটে প্রচুর ফ্রি রিসোর্স রয়েছে। এখন শুধু শেখা বাকি। শিখে প্রয়োগ করা বাকি। শিখতে থাকুন, শুভ কামনা


Leave a Reply

Your email address will not be published. Required fields are marked *