মোবাইল অ্যাপ্লিকেশনের বিল্ড এবং ডিপ্লয়মেন্ট — সোর্স কোডকে একটি ইনস্টলেবল ফাইল (APK, AAB, IPA)-এ রূপান্তর এবং অ্যাপ স্টোরগুলিতে আপলোড করার প্রক্রিয়া। Google Play Console (2025)-এর মতে, Android App Bundle (AAB) আগস্ট 2021 থেকে Google Play-তে প্রকাশের জন্য বাধ্যতামূলক ফরম্যাট। এই নিবন্ধে আমরা বিল্ড ফরম্যাট, কম্পাইলেশন, কোড সাইনিং, প্রকাশনা প্রক্রিয়া এবং বিটা টেস্টিং নিয়ে আলোচনা করব।
মূল পয়েন্ট
APK (Android Package Kit) — Android-এ মোবাইল অ্যাপ্লিকেশন বিল্ড এবং প্রকাশের ঐতিহ্যবাহী ফরম্যাট। APK-তে অ্যাপ্লিকেশনের সমস্ত কোড, রিসোর্স এবং ম্যানিফেস্ট থাকে। AAB (Android App Bundle) — Google 2018 সালে চালু করা একটি ফরম্যাট এবং আগস্ট 2021 থেকে নতুন অ্যাপ্লিকেশনের জন্য বাধ্যতামূলক হয়েছে। AAB সরাসরি ইনস্টল হয় না — Google Play প্রতিটি ডিভাইসের জন্য AAB থেকে ডায়নামিকভাবে অপ্টিমাইজড APK জেনারেট করে।
AAB-এর সুবিধা: ডাউনলোড আকার গড়ে 15% ছোট (শুধুমাত্র প্রয়োজনীয় রিসোর্স সরবরাহ করার কারণে: সঠিক স্ক্রিন ডেনসিটি, ভাষা, CPU আর্কিটেকচার)। AAB মডুলার ডেলিভারিও সমর্থন করে — আপনি অন ডিমান্ড (Play Feature Delivery) বা বিলম্বিত (Play On-Demand) মডিউল লোড করতে পারেন। ডেভেলপারদের জন্য AAB বাধ্যতামূলক; Google Play-এর বাইরে বিতরণের জন্য (সাইডলোডিং, মার্কেটপ্লেস) — শুধুমাত্র APK।
IPA (iOS App Store Package) — iOS ইনস্টলেবল ফাইল, যা একটি সাইন করা অ্যাপ্লিকেশন সহ একটি ZIP আর্কাইভ। IPA-তে Payload/ ফোল্ডার .app বান্ডল, Provisioning Profile এবং সাইনিং থাকে। IPA শুধুমাত্র macOS-এ Xcode-এর মাধ্যমে বিল্ড করা হয়, যা একটি আর্কাইভ (.xcarchive) তৈরি করে এবং IPA এক্সপোর্ট করে। App Store-এর মাধ্যমে বিতরণের জন্য IPA Apple Distribution Certificate দিয়ে সাইন করা হয়; Ad Hoc বা Enterprise-এর জন্য — সংশ্লিষ্ট সার্টিফিকেট দিয়ে।
| প্যারামিটার | APK | AAB | IPA |
|---|---|---|---|
| প্ল্যাটফর্ম | Android | Android (Google Play) | iOS |
| ফরম্যাট | ZIP আর্কাইভ | ZIP আর্কাইভ | ZIP আর্কাইভ |
| সরাসরি ইনস্টলেশন | হ্যাঁ | না (Google Play-এর মাধ্যমে) | App Store / MDM-এর মাধ্যমে |
| সাইনিং | Keystore (JKS) | Keystore (JKS/PEPK) | Apple Certificate |
| App Thinning | না | হ্যাঁ (স্বয়ংক্রিয়) | হ্যাঁ (Slicing, Bitcode) |
JIT (Just-In-Time) — অ্যাপ্লিকেশন এক্সিকিউশনের সময় কোডের কম্পাইলেশন, যা বিল্ড এবং প্রকাশনার গতিকে প্রভাবিত করে। Android সংস্করণ 5.0 (Lollipop) পর্যন্ত JIT কম্পাইলেশন সহ Dalvik VM ব্যবহার করা হত। প্রতিটি অ্যাপ্লিকেশন লঞ্চে DEX বাইটকোড «মুহূর্তে» মেশিন কোডে রূপান্তরিত হত। ত্রুটি: প্রথম লঞ্চে ধীরগতি এবং অতিরিক্ত শক্তি খরচ। AOT (Ahead-Of-Time) — অ্যাপ্লিকেশন লঞ্চের আগে, ইনস্টলেশনের সময় কোডের কম্পাইলেশন। Android 7.0 (Nougat) থেকে, ART (Android Runtime) ইনস্টলেশনের সময় অ্যাপ্লিকেশনটি সম্পূর্ণভাবে কম্পাইল করে।
ART (Android Runtime) — রানটাইম পরিবেশ যা Android 5.0-এ Dalvik-কে প্রতিস্থাপন করেছে। ART একটি হাইব্রিড পদ্ধতি ব্যবহার করে: ইনস্টলেশনের সময় AOT কম্পাইলেশন + ঘন ঘন এক্সিকিউটেড মেথডের জন্য JIT। এটি AOT-এর গতি (দ্রুত স্টার্টআপ) এবং JIT-এর নমনীয়তা (অ্যাডাপটিভ অপ্টিমাইজেশন) একত্রিত করে। ফলাফল: Dalvik-এর তুলনায় Android অ্যাপ্লিকেশনের পারফরম্যান্স 20-30% বেড়েছে। ডেভেলপারদের জন্য, ART-তে রূপান্তর স্বচ্ছ — কোডে পরিবর্তনের প্রয়োজন নেই।
Bitcode — কোডের একটি মধ্যবর্তী উপস্থাপনা (IR) যা Apple বিভিন্ন প্রসেসর আর্কিটেকচারের জন্য IPA পুনরায় কম্পাইল করতে ব্যবহার করে। Bitcode ঐচ্ছিক: iOS অ্যাপ্লিকেশনের জন্য এটি ডিফল্টভাবে সক্রিয়, watchOS এবং tvOS-এর জন্য বাধ্যতামূলক। Apple নতুন প্রসেসর প্রকাশের সময় ডেভেলপারের অংশগ্রহণ ছাড়াই Bitcode পুনরায় কম্পাইল করতে পারে। App Thinning — Apple-এর প্রযুক্তি যার মধ্যে Slicing (ডিভাইসের জন্য শুধুমাত্র প্রয়োজনীয় রিসোর্স সরবরাহ) এবং On-Demand Resources (প্রয়োজন অনুযায়ী রিসোর্স লোড) অন্তর্ভুক্ত। App Thinning App Store থেকে ডাউনলোডের আকার 30-50% কমিয়ে দেয়।
DEX — Android-এর জন্য বাইটকোড ফরম্যাট, ART/Dalvik দ্বারা এক্সিকিউটেড। Kotlin/Java সোর্স কোড class ফাইলে কম্পাইল হয়, তারপর dx বা d8 (আধুনিক এবং দ্রুত টুল) এর মাধ্যমে DEX-এ। Multidex — অ্যাপ্লিকেশনের জন্য একটি মেকানিজম যা একটি DEX ফাইলে 65,536 মেথডের সীমা অতিক্রম করে। আধুনিক প্রজেক্টে, targetSdkVersion >= 21 হলে multidex স্বয়ংক্রিয়ভাবে সক্রিয় হয়।
Keystore — একটি ফাইল যা বিল্ডের সময় Android অ্যাপ্লিকেশন সাইন করার জন্য প্রাইভেট কী এবং সার্টিফিকেট ধারণ করে। Keystore keytool (-genkey কমান্ড) বা Android Studio-এর মাধ্যমে তৈরি করা হয়। গুরুত্বপূর্ণ: Keystore হারানো যাবে না — এটি ছাড়া আপনি Google Play-তে অ্যাপ্লিকেশন আপডেট করতে পারবেন না। সাইনিং প্যারামিটার: keyAlias, keyPassword, storePassword এবং storeFile। ফরম্যাট: JKS (Java KeyStore) বা AAB-এর জন্য PEPK (Play Encrypted Private Key)।
App Bundle ID (Android) — প্যাকেজ নোটেশন (com.example.app)-এ অ্যাপ্লিকেশনের অনন্য শনাক্তকারী। Version Code — অভ্যন্তরীণ সংস্করণ সংখ্যাকরণের জন্য পূর্ণসংখ্যা (প্রত্যেক নতুন বিল্ড এটি বাড়ায়)। Version Name — ব্যবহারকারীকে দেখানো স্ট্রিং (1.2.3)। এই প্যারামিটারগুলি build.gradle-এ অ্যাপ স্তরে সেট করা হয়।
Apple Certificate — একটি ডিজিটাল সার্টিফিকেট যা ডেভেলপারের পরিচয় যাচাই করে। প্রকার: Development (ডিবাগিংয়ের জন্য), Distribution (App Store-এর জন্য), Ad Hoc (সীমিত বিতরণের জন্য)। সার্টিফিকেট Apple Developer Account-এ তৈরি করা হয় এবং Keychain-এ ডাউনলোড করা হয়। Provisioning Profile — একটি ফাইল যা সার্টিফিকেট, App ID (Bundle Identifier) এবং অনুমোদিত ডিভাইসের তালিকাকে সংযুক্ত করে। Provisioning Profile ছাড়া অ্যাপ্লিকেশন ডিভাইসে চলবে না।
Bundle ID (iOS) — অ্যাপ্লিকেশনের অনন্য শনাক্তকারী (com.example.app)। Build Number — বিল্ড সংস্করণ, প্রতিটি বিল্ডের সাথে বাড়ে। Marketing Version — ব্যবহারকারীকে দেখানো সংস্করণ। সংস্করণ ব্যবস্থাপনা: iOS-এর জন্য, প্যারামিটারগুলি Info.plist এবং Project Settings-এ সেট করা হয়; Android-এর জন্য — build.gradle-এ। IT Sectr-এ, আমরা Fastlane-এর মাধ্যমে সংস্করণ আপডেট স্বয়ংক্রিয় করি — এটি রিলিজের সময় মানবিক ত্রুটি দূর করে।
Google Play Console — Android অ্যাপ্লিকেশন প্রকাশের একটি টুল। প্রক্রিয়া: ডেভেলপার অ্যাকাউন্ট নিবন্ধন ($25 একবার), অ্যাপ্লিকেশন তৈরি, মেটাডেটা পূরণ (নাম, বিবরণ, স্ক্রিনশট, বিভাগ), AAB আপলোড, মূল্য এবং বিতরণ কনফিগার, পর্যালোচনা। Google অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে পরীক্ষা করে (ভাইরাস, নীতি সম্মতি) এবং কিছু বিভাগের জন্য ম্যানুয়ালি। পর্যালোচনায় কয়েক ঘন্টা থেকে 2-3 দিন সময় লাগে।
App Store Connect — iOS অ্যাপ্লিকেশন প্রকাশের জন্য Apple-এর প্ল্যাটফর্ম। প্রক্রিয়া: Apple ডেভেলপার অ্যাকাউন্ট ($99/বছর), App Store Connect-এ অ্যাপ্লিকেশন তৈরি, Xcode-এ IPA প্রস্তুত (Archive → Distribute App → App Store Connect), Transporter বা Xcode-এর মাধ্যমে আপলোড, মেটাডেটা পূরণ, পর্যালোচনার জন্য জমা। App Review — Apple-এর ম্যানুয়াল পর্যালোচনায় 24 ঘন্টা থেকে 7 দিন সময় লাগতে পারে। প্রত্যাখ্যানের সাধারণ কারণ: কাজ না করা বাটন, অসম্পূর্ণ কন্টেন্ট, ব্যাখ্যা ছাড়াই অনুমতির অনুরোধ।
TestFlight — iOS অ্যাপ্লিকেশনের বিটা টেস্টিংয়ের জন্য Apple-এর অফিসিয়াল টুল। TestFlight Internal Testing (ইমেলের মাধ্যমে 100 টেস্টার পর্যন্ত, পর্যালোচনা ছাড়া) এবং External Testing (10,000 টেস্টার পর্যন্ত, Apple পর্যালোচনা সহ) সমর্থন করে। বিল্ড 90 দিন পর্যন্ত উপলব্ধ থাকে, তারপরে নতুন বিল্ড আপলোড করতে হবে। TestFlight নতুন বিল্ড আপলোড করলে টেস্টারদের কাছে অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে আপডেট করে।
Internal Testing (Android) — 100 টেস্টার পর্যন্ত, Google পর্যালোচনা ছাড়া, বিল্ড অবিলম্বে উপলব্ধ। Closed Beta — ইমেল বা Google Groups-এর মাধ্যমে 1000 টেস্টার পর্যন্ত, পর্যালোচনা ছাড়া। Open Beta — পাবলিক লিঙ্কের মাধ্যমে সীমাহীন টেস্টার, Google পর্যালোচনা সহ। Staged Rollout — আপডেট প্রাপ্ত ব্যবহারকারীদের শতাংশের ক্রমিক বৃদ্ধি (5% → 20% → 50% → 100%)। এটি রিলিজের সবচেয়ে নিরাপদ পদ্ধতি।
App Thinning (iOS) — ডাউনলোড করা IPA আকারের স্বয়ংক্রিয় হ্রাস: Slicing (ডিভাইসের জন্য শুধুমাত্র প্রয়োজনীয় রিসোর্স), Bitcode (প্রসেসর অপ্টিমাইজেশন), On-Demand Resources (প্রয়োজন অনুযায়ী ডাউনলোড)। IT Sectr-এ, আমরা iOS বিটা টেস্টিংয়ের জন্য TestFlight এবং Android-এর জন্য Internal Testing ব্যবহার করি — এটি ব্যাপক রিলিজের আগে সমস্যা শনাক্ত করতে সাহায্য করে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
APK — একটি সার্বজনীন ইনস্টলেবল ফাইল, যেকোনো ডিভাইসে কাজ করে। AAB — Google Play-এর জন্য ফরম্যাট যা প্রতিটি ডিভাইসের জন্য সর্বোত্তম APK জেনারেট করে। AAB-এর মাধ্যমে ডাউনলোড আকার 15% ছোট। Google Play-এর জন্য AAB বাধ্যতামূলক, সাইডলোডিংয়ের জন্য — APK।
আপনি Google Play-তে অ্যাপ্লিকেশন আপডেট করতে পারবেন না — আপনাকে নতুন package name সহ নতুন অ্যাপ্লিকেশন তৈরি করতে হবে। Keystore নিরাপদ স্থানে রাখুন (পাসওয়ার্ড ম্যানেজার, এনক্রিপ্টেড Git)। Google Play App Signing (Google কী ব্যবহার) এই ঝুঁকি কমায়।
Google Play — ডেভেলপার অ্যাকাউন্টের জন্য $25 একবার। App Store — $99/বছর। উভয় পরিমাণে সীমাহীন অ্যাপ্লিকেশন অন্তর্ভুক্ত। iOS-এর জন্য আপনার একটি Mac (থেকে $999) বা ক্লাউড Mac ভাড়াও প্রয়োজন।
Staged Rollout — ক্রমিক আপডেট রোলআউট: প্রথমে 5% ব্যবহারকারী, তারপর 20%, 50% এবং 100%। যদি যেকোনো ধাপে ক্র্যাশ পাওয়া যায় — রোলআউট বন্ধ করা হয়। Google Play Console-এ উপলব্ধ।
Android-এর জন্য — না, আপনি অ্যাকাউন্ট ছাড়াই USB বা এমুলেটরের মাধ্যমে ডিভাইসে APK ইনস্টল করতে পারেন। iOS-এর জন্য — হ্যাঁ, $99/বছর অ্যাকাউন্ট ছাড়া অ্যাপ্লিকেশন শুধুমাত্র সিমুলেটরে কাজ করবে, বাস্তব ডিভাইসে নয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।