ANPASIDE – এর অবিশ্বাস্য ধামাকা! MIDletPascal Compiler, AndroidX Library, Kotlin Coroutines আর Physics-Based Animation API-র দুর্ধর্ষ পাওয়ার! এটি মোবাইল প্রোগ্রামিং দুনিয়ার এক আগ্নেয়গিরি!

Level 31
সনিক টিউনার, টেকটিউনস, গাইবান্ধা

প্রযুক্তিবিশ্বে আমরা এমন এক সময়ে বাস করছি যেখানে পকেটে থাকা স্মার্টফোনটি কেবল যোগাযোগের মাধ্যম নয়, বরং এটি একটি শক্তিশালী কম্পিউটিং ডিভাইস। যারা কোডিং করতে ভালোবাসেন বা মোবাইল প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশন তৈরি করতে চান, তাদের জন্য Mobile Development Environment একটি স্বপ্নের মতো। আজ আমরা আলোচনা করব ANPASIDE নিয়ে—যা মূলত MIDletPascal Programming Language Compiler ব্যবহার করে মোবাইল থেকেই অ্যাপ্লিকেশন তৈরি এবং রান করার এক অনন্য সুযোগ করে দেয়।

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

১. ANPASIDE এর বর্তমান পরিস্থিতি: একটি গুরুত্বপূর্ণ মাইলফলক

ANPASIDE এর বর্তমান পরিস্থিতি

শুরুতেই একটি খবরের দিকে নজর দেওয়া যাক যা ব্যবহারকারীদের জন্য বেশ তাৎপর্যপূর্ণ। ANPASIDE এর Source Code Repository গত ১৯ জুলাই ২০২৩ তারিখে (2023-07-19) Archived করা হয়েছে। সহজ ভাষায় এর মানে হলো, এর Upstream Repo এখন থেকে আর সক্রিয়ভাবে ডেভেলপ করা হবে না। তাই ভবিষ্যতে এই অ্যাপ্লিকেশনটির জন্য আর কোনো নতুন Updates আসার সম্ভাবনা নেই। এটি এখন একটি 'Freeze' প্রোজেক্ট হিসেবে সংরক্ষিত আছে।

ANPASIDE

অফিসিয়াল ওয়েবসাইট @ ANPASIDE

২. এটি কীভাবে আপনার ডিভাইসে ইনস্টল করবেন?

এটি কীভাবে আপনার ডিভাইসে ইনস্টল করবেন?

আপনি চাইলে সরাসরি এর APKs ডাউনলোড করতে পারেন। তবে আধুনিক এবং নিরাপদ পদ্ধতি হলো একটি Client ব্যবহার করা, যাতে আপনার ডিভাইসে অ্যাপটি সঠিকভাবে ম্যানেজ করা যায়। অনেক জনপ্রিয় Clients যেমন F-Droid, অথবা Sunil-এর তৈরি করা বিশেষ Client-এ এই Repo ডিফল্টভাবে যুক্ত থাকে। তবে কিছু ক্ষেত্রে (যেমন নির্দিষ্ট কিছু Clients) আপনাকে এই Repo ম্যানুয়ালি যুক্ত করতে হতে পারে। এর পদ্ধতি বা প্রয়োজনীয় Hint সাধারণত রিপোজিটরির উপরের অংশে দেওয়া থাকে।

কীভাবে ANPASIDE ব্যবহার করবেন?

১. প্রথমে আপনার অ্যান্ড্রয়েড ফোনে F-Droid বা আপনার পছন্দের ক্লায়েন্ট থেকে IzzyOnDroid রেপোজিটরি যুক্ত করে ANPASIDE অ্যাপটি ডাউনলোড এবং ইন্সটল করুন।

ANPASIDE অ্যাপটি ডাউনলোড এবং ইন্সটল

২. এবার, অ্যাপটি ওপেন করে উপরে থাকা থ্রি ডট আইকনে ক্লিক করুন এবং Create Project অপশনে ক্লিক করে আপনার প্রজেক্ট নাম দিন।

Create Project

৩. তারপর, এর বিল্ট-ইন Mobile Development Environment ব্যবহার করে সরাসরি আপনার ফোন থেকেই MIDletPascal Programming Language-এ কোড লেখা শুরু করুন।

MIDletPascal Programming Language-এ কোড লেখা

৪. কোডিং শেষ হলে অ্যাপের নিজস্ব কম্পাইলার ব্যবহার করে সরাসরি মোবাইল থেকেই আপনার তৈরি করা অ্যাপ্লিকেশনটি রান করুন বা টেস্ট করুন।

অ্যাপ্লিকেশনটি রান

৩. কারিগরি গভীরে: ANPASIDE যে সকল ভিত্তির ওপর দাঁড়িয়ে

কারিগরি গভীরে

একটি অ্যাপ্লিকেশন কতটা শক্তিশালী হবে তা নির্ভর করে তার ব্যবহৃত Libraries এবং Frameworks-এর ওপর। ANPASIDE-এর নির্মাণশৈলী বেশ জটিল এবং আধুনিক প্রযুক্তিতে ঠাসা। চলুন এর প্রতিটি অংশকে ব্যবচ্ছেদ করি:

ক. ফাউন্ডেশন এবং আর্কিটেকচার (Development Framework & Utility)

অ্যাপটির মূল কাঠামো তৈরিতে ব্যবহার করা হয়েছে Android Support Library। এটি আসলে কোনো একক লাইব্রেরি নয়, বরং অনেকগুলো লাইব্রেরির একটি বিশাল সংগ্রহ। একে মূলত Compatibility এবং Component Libraries—এই দুটি প্রধান ভাগে ভাগ করা যায়।

এর আর্কিটেকচারাল ইউটিলিটির মধ্যে রয়েছে:

  • Activity Subclass: এটি মূলত অ্যাপের বেস হিসেবে কাজ করে এবং এর ওপর একটি Composable Structure তৈরি করার জন্য প্রয়োজনীয় Hooks প্রদান করে।
  • Android Jetpack Annotations: কোড লেখার সময় নির্দেশিকা এবং শুদ্ধতা বজায় রাখতে এতে Android Jetpack-এর জন্য নির্দিষ্ট Annotations যুক্ত আছে।
  • Arch Dependencies: বিশেষ করে JUnit Test Rules ব্যবহারের ক্ষেত্রে এটি সহায়ক হিসেবে কাজ করে, যা LiveData-এর সাথে সমন্বয় করা যায়।

খ. ইউজার ইন্টারফেস এবং ভিজ্যুয়াল এক্সপেরিয়েন্স (UI Component)

ব্যবহারকারীর অভিজ্ঞতা বা UI উন্নত করতে ANPASIDE ব্যবহার করে আধুনিক সব টুলস:

  • Material Design Card Pattern: অ্যাপের ভেতর সুন্দর Round Corners এবং Drop Shadows তৈরির জন্য এতে AndroidX Library-র প্রয়োগ রয়েছে।
  • Material Design Drawer Widget: অ্যাপের নেভিগেশন ড্রয়ার বা মেনু সুন্দরভাবে ফুটিয়ে তুলতে এই UI Component ব্যবহার করা হয়েছে।
  • CoordinatorLayout: এটি অ্যাপের উপরের দিকের AppBarLayout এবং FloatingActionButton-এর মতো উপাদানগুলোকে সঠিক স্থানে পজিশন করতে এবং তাদের মধ্যে সমন্বয় করতে ব্যবহৃত হয়।
  • Vector Graphics Render: হাই-কোয়ালিটি গ্রাফিক্সের জন্য এতে Vector Graphics রেন্ডার করার ক্ষমতা রয়েছে।
  • ViewPager2: এটি পুরনো ViewPager-এর সব সমস্যা সমাধান করে তৈরি করা হয়েছে। এটি এখন Right-to-Left Layout Support, Vertical Orientation, এবং সহজে পরিবর্তনযোগ্য Fragment Collections সাপোর্ট করে।

গ. অ্যানিমেশন এবং মোশন (UI Component & Animation)

স্মুথ এবং প্রাণবন্ত ইউজার ইন্টারফেসের জন্য এখানে বেশ কিছু উচ্চস্তরের APIs ব্যবহার করা হয়েছে:

  • Physics-Based Animation API: বাস্তব জগতের পদার্থবিজ্ঞানের নিয়ম মেনে অ্যাপের ভেতর স্মুথ অ্যানিমেশন তৈরি করতে এটি ব্যবহৃত হয়।
  • Animation Interpolators: পুরনো প্ল্যাটফর্মগুলোতেও যেন উন্নত অ্যানিমেশন কাজ করে, তার জন্য এই AndroidX Library যুক্ত করা হয়েছে।
  • MotionLayout: এটি ইউজার ইন্টারফেসের শুরু এবং শেষ লেআউটের মধ্যে চমৎকার মোশন অ্যানিমেশন তৈরি করে।

৪. পারফরম্যান্স এবং ডেটা হ্যান্ডলিং (Utility & Internal Logic)

Utility & Internal Logic

অ্যাপটি যেন ল্যাগ না করে এবং বড় ডেটাসেট নিয়ে কাজ করতে পারে, সেজন্য এতে রয়েছে:

  • Coroutines & ListenableFuture: এই প্রযুক্তিগুলো ব্যবহার করে অ্যাপের ভারী কাজগুলো Main Thread থেকে সরিয়ে নেওয়া হয়, ফলে ইন্টারফেস হ্যাং হয় না।
  • Paging & Large Data Sets: মেমোরি খরচ কমিয়ে বিশাল সব ডেটাসেট স্ক্রিনে প্রদর্শন করার জন্য বিশেষ ইউটিলিটি এতে রয়েছে।
  • Binary Serialization Format: এটি একটি স্থিতিশীল এবং কম্প্যাক্ট ফরম্যাট, যা বিভিন্ন Processes-এর মধ্যে ডেটা নিরাপদে আদান-প্রদান করতে বা Persist (সংরক্ষণ) করতে ব্যবহৃত হয়।
  • App Startup: অ্যাপটি যখন চালু হয়, তখন প্রতিটি কম্পোনেন্ট যেন দ্রুত এবং কার্যকরী উপায়ে Initialize হয়, তার জন্য একটি নির্দিষ্ট AndroidX Library ব্যবহার করা হয়েছে।

৫. ডেভেলপারদের জন্য সহায়ক টুলস (Development Aid & Utility)

Development Aid & Utility

ANPASIDE-এর ভেতরে ডেভেলপারদের জন্য অনেক গোপন হীরা লুকিয়ে আছে:

  • Error Prone: এটি Java-এর জন্য একটি স্ট্যাটিক অ্যানালাইসিস টুল, যা কোড কম্পাইল করার সময়ই সাধারণ ভুলগুলো ধরে ফেলে।
  • Live Layout Inspector: Android Studio ব্যবহার করে অ্যাপের Custom Views-এর ছোটখাটো বৈশিষ্ট্য বা Attributes সরাসরি দেখার জন্য এটি অত্যন্ত কার্যকর।
  • System Trace Buffer: সিস্টেম লেভেলে অ্যাপের কার্যকারিতা ট্র্যাক করার জন্য এখানে Trace Events লেখার সুবিধা রয়েছে।
  • Lifecycle Status Management: Activities এবং Fragments-এর লাইফসাইকেল পরিবর্তনের সাথে সাথে যেন স্বয়ংক্রিয়ভাবে অ্যাকশন নেওয়া যায়, সেজন্য এখানে বিশেষ ইউটিলিটি কাজ করে।

৬. অতিরিক্ত সাপোর্ট এবং বিবিধ লাইব্রেরি (Utility & General Support)

Utility & General Support

পুরো প্যাকেজটিকে সমৃদ্ধ করতে আরও কিছু ফিচার যোগ করা হয়েছে:

  • Emoji Compatibility: পুরনো Android Versions (যেমন KitKat)-এ যেন ইমোজিগুলো ভেঙে না যায় বা খালি বক্স না দেখায়, তার জন্য এতে রয়েছে বিশেষ Emoji Compatibility Library
  • Google Core Libraries for Java 6+: এর ভেতর আছে Multimap, Multiset, Immutable Collections, Graph Library, এবং In-Memory Cache-এর মতো শক্তিশালী সব ডেটা স্ট্রাকচার।
  • Zip Files Handling: জিপ ফাইল নিয়ে কাজ করার জন্য এটি একটি Java Open-Source Library ব্যবহার করে।
  • Event Bus: অ্যাপের এক অংশ থেকে অন্য অংশে যোগাযোগ করার জন্য এটি একটি Application-Wide Event Bus ব্যবহার করে, যা লেয়ার ভায়োলেশনকেও সহজভাবে ম্যানেজ করতে পারে।
  • Print Library: ছবি, ডকুমেন্ট এবং অন্যান্য গ্রাফিক্স প্রিন্ট করার জন্য আলাদা ইউটিলিটি যুক্ত আছে।
  • Apache Project: পুনরায় ব্যবহারযোগ্য Java Components-এর জন্য এটি Apache Project-এর ওপর নির্ভর করে।

পরিশেষে কিছু কথা

ANPASIDE এবং এর বিশাল লাইব্রেরি তালিকা (যেমন CursorAdapter, Custom View Module, File Document View, ইত্যাদি) থেকে স্পষ্ট বোঝা যায় যে, এটি অত্যন্ত নিখুঁতভাবে তৈরি একটি Development Framework। যদিও এটি বর্তমানে Archived অবস্থায় রয়েছে এবং এর আর কোনো নতুন সংস্করণ আসবে না, তবুও MIDletPascal ব্যবহার করে মোবাইল অ্যাপ তৈরির ক্ষেত্রে এটি একটি কালজয়ী টুল হিসেবে থেকে যাবে।

আপনি যদি এই টেকনিক্যাল ইকোসিস্টেমের অংশ হতে চান, তবে এর প্রতিটি কম্পোনেন্ট—হোক সেটা Static Library বা Kotlin Coroutines Support—আপনাকে মোবাইল ডেভেলপমেন্টের এক গভীর স্তরে নিয়ে যাবে। বর্তমানের Android Studio-এর যুগেও ANPASIDE একটি অনন্য উদাহরণ হয়ে থাকবে যা একসময় মোবাইল থেকেই কোডিং করার বিপ্লব ঘটিয়েছিল।

Level 31

আমি মো আতিকুর ইসলাম। সনিক টিউনার, টেকটিউনস, গাইবান্ধা। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 5 বছর 6 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 775 টি টিউন ও 94 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 67 ফলোয়ার আছে এবং আমি টেকটিউনসে 3 টিউনারকে ফলো করি।

“আল্লাহর ভয়ে তুমি যা কিছু ছেড়ে দিবে, আল্লাহ্ তোমাকে তার চেয়ে উত্তম কিছু অবশ্যই দান করবেন।” —হযরত মোহাম্মদ (সঃ)


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস