আপনি যখন আপনার অ্যাপ্লিকেশনের একটি নতুন সংস্করণ রোল আউট করেন, তখন আপনি চান যে আপনার ব্যবহারকারীরা এটি সম্পর্কে জানুক। আপনি একটি জটিল বাগ সংশোধন করেছেন, একটি নতুন বৈশিষ্ট্য যোগ করেছেন, বা অ্যাপ্লিকেশনটি কেবল মসৃণ বা দ্রুত চলে - তাদের জানতে হবে।
অ্যাপ্লিকেশন বিকাশকারী হিসাবে, আমরা চাই আমাদের সমস্ত ব্যবহারকারীরা আমাদের অ্যাপ্লিকেশনটির সাম্প্রতিকতম সংস্করণ ব্যবহার করুক৷
৷কিন্তু কিভাবে আমরা নিশ্চিত করতে পারি যে ব্যবহারকারীরা আমাদের অ্যাপ্লিকেশনের একটি নতুন সংস্করণ সম্পর্কে সচেতন?
এই প্রশ্নের উত্তরটি বেশ সহজ:অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ বের হলে কেন তাদের জানাবেন না?
আপনি এটি বিভিন্ন উপায়ে করতে পারেন:
- একটি পুশ বিজ্ঞপ্তি ব্যবহার করুন
- অ্যাপ্লিকেশানটি চালু হলে তাদের জানান
আমরা এই নিবন্ধে পুশ বিজ্ঞপ্তি নিয়ে কাজ করব না। পরিবর্তে আমরা কীভাবে আপনি (একটি প্যাকেজ বা দুটি ব্যবহার করে) আপনার ব্যবহারকারীদের একটি ডায়ালগ দেখাতে পারেন তা দেখানোর উপর ফোকাস করব যে অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ বের হয়েছে এবং কীভাবে আপডেটটি মোকাবেলা করতে হবে।
অপেক্ষা করুন, এটি কি ইতিমধ্যেই অন্তর্ভুক্ত নয়?
আপনি মনে করবেন যে এই ধরনের কার্যকারিতা ইতিমধ্যেই আধুনিক মোবাইল ওএস সিস্টেমে অন্তর্ভুক্ত করা উচিত। এবং আপনি সঠিক হবেন - কিন্তু শুধুমাত্র Android এর জন্য।
iOS (বর্তমানে) ডেভেলপারদের অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ আছে কিনা তা দেখার এবং ব্যবহারকারীদের এটি সম্পর্কে অবহিত করার ক্ষমতা দেয় না। অ্যান্ড্রয়েডে, আপনার কাছে ইন-অ্যাপ আপডেট লাইব্রেরি রয়েছে যা Google Play লাইব্রেরির অংশ৷
এই কারণে, এবং যেহেতু ফ্লাটার উভয় প্ল্যাটফর্মকে সমর্থন করে, আমি দুটি বিশিষ্ট প্যাকেজের উপরে যেতে যাচ্ছি যা আপনাকে আপনার অ্যাপ্লিকেশনের সংস্করণ আপডেটগুলি পরিচালনা করতে সহায়তা করে:
- আপগ্রডার
- অ্যাপ আপডেটে
উভয়ই আপনাকে পছন্দসই ফলাফল পেতে পারে, তবে তারা কীভাবে এটি করে তার মধ্যে তারা ব্যাপকভাবে পরিবর্তিত হয়।
আমরা শুরু করার আগে, এটা বোঝা গুরুত্বপূর্ণ যে আপনার কাছে আপনার অ্যাপ্লিকেশনের একটি সংস্করণ থাকতে হবে যা সরাসরি Google Play স্টোর থেকে ইনস্টল করা হয়েছে . এটি প্রয়োজনীয় কারণ উভয় প্যাকেজই Google Play পরিষেবা এবং অ্যাপ্লিকেশনটির মালিককে যাচাই করার ক্ষমতার উপর নির্ভর করে৷
আপনি যদি তা করতে ব্যর্থ হন, তাহলে প্যাকেজগুলির একটি ব্যবহার করার চেষ্টা করার সময় আপনি নিম্নলিখিত ত্রুটিটি দেখতে পাবেন:
_ইনস্টল ত্রুটি(-10):অ্যাপটি এই ডিভাইসের কোনো ব্যবহারকারীর মালিকানাধীন নয়। একটি অ্যাপ "মালিকানাধীন" যদি এটি Play থেকে অধিগ্রহণ করা হয়। (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_APP_NOTনিয়ন্ত্রিত)
ইন অ্যাপ আপডেট প্যাকেজ কিভাবে ব্যবহার করবেন
ব্যাট থেকে সরাসরি আপনার জানা উচিত যে এই প্যাকেজটি শুধুমাত্র অ্যান্ড্রয়েডে কাজ করবে। কারণ এটি এর অভ্যন্তরীণ কাজের জন্য অ্যাপ আপডেট লাইব্রেরির উপর নির্ভর করে।
এই প্যাকেজটি মূলত অ্যান্ড্রয়েড লাইব্রেরির জন্য একটি মোড়ক। নীচে এর উন্মুক্ত API পদ্ধতিগুলি রয়েছে:
Future<AppUpdateInfo> checkForUpdate():কোনো আপডেট উপলব্ধ আছে কিনা তা পরীক্ষা করেFuture<AppUpdateResult> performImmediateUpdate():একটি অবিলম্বে আপডেট করে (পূর্ণ-স্ক্রীন)Future<AppUpdateResult> startFlexibleUpdate():একটি নমনীয় আপডেট শুরু করে (পটভূমি ডাউনলোড)Future<void> completeFlexibleUpdate():আসলে একটি উপলব্ধ নমনীয় আপডেট ইনস্টল করে
✋ আপনি যদি একটি তাৎক্ষণিক আপডেট বা একটি নমনীয় আপডেটের মধ্যে পার্থক্য সম্পর্কে আরও পড়তে চান তবে এখানে যান৷
প্যাকেজ কিভাবে সেট আপ করবেন
প্রথমে, আপনার pubspec.yaml ফাইলে প্যাকেজ যোগ করুন:
dependencies:
flutter:
sdk: flutter
in_app_update: ^3.0.0
তারপর পাব পেতে পারফর্ম করুন।
আপনার অ্যাপ্লিকেশনের ভিতরে, যেখানে আপনি অ্যাপ আপডেটগুলি পরিচালনা করার জন্য যুক্তি সম্পাদন করতে চান, নিম্নলিখিত আমদানি যোগ করুন:
import 'package:in_app_update/in_app_update.dart';
আমাদের প্রথমে যুক্তি যোগ করতে হবে যা চেক করে যে আমাদের অ্যাপ্লিকেশনটিতে একটি আপডেট আছে কিনা। এটি করতে, আমরা checkForUpdate ব্যবহার করব৷ পদ্ধতি এর রিটার্ন মান হল একটি ভবিষ্যত যাতে একটি অ্যাপ আপডেটের প্রাপ্যতা এবং অগ্রগতি সম্পর্কে তথ্য থাকে।
আপডেট উপলভ্যতা বৈশিষ্ট্য ব্যবহার করে আমরা একটি আপডেট উপলব্ধ কিনা তা পরীক্ষা করতে পারি। যদি একটি আপডেট উপলব্ধ থাকে, তাহলে সেটির মান হবে UPDATE_AVAILABLE৷ . সুতরাং, আপনার পদ্ধতিটি এইরকম দেখতে পারে:
InAppUpdate.checkForUpdate().then((updateInfo) {
if (updateInfo.updateAvailability == UpdateAvailability.updateAvailable) {
//Logic to perform an update
}
});
এর পরে, আমাদের সিদ্ধান্ত নিতে হবে যে আমরা কোন ধরনের আপডেট ট্রিগার করতে চাই - হয় একটি নমনীয় বা একটি তাত্ক্ষণিক আপডেট।
একটি অবিলম্বে আপডেটের জন্য যাওয়া একটি অ্যাপ্লিকেশন আপডেটের জন্য সংরক্ষিত করা উচিত যা আপনার ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ। এর অর্থ হতে পারে এমন একটি সংস্করণ যা একটি জটিল বাগ সংশোধন করে বা একটি নতুন বৈশিষ্ট্য অফার করে৷
একটি অবিলম্বে আপডেট শুরু করতে, আমরা performImmediateUpdate ব্যবহার করতে পারি পদ্ধতি এই পদ্ধতিটি একটি AppUpdateResult enum প্রদান করে যা আপনাকে আপডেটটি সফল হয়েছে কিনা তা জানাতে দেয়।
এই পদ্ধতিতে কল করার আগে আমাদের তাৎক্ষণিক আপডেট চালানোর অনুমতি দেওয়া হয়েছে কিনা তা পরীক্ষা করতে হবে। আমরা ইমিডিয়েটআপডেটঅ্যালোড অ্যাক্সেস করে তা করি AppUpdateInfo অবজেক্টে পতাকা।
যদি আমরা একটি নমনীয় আপডেট ট্রিগার করতে চাই, আমরা startFleixbleUpdate ব্যবহার করি পদ্ধতি এটি ব্যাকগ্রাউন্ডে চলে এবং তাৎক্ষণিক আপডেট পদ্ধতির অনুরূপ। এটি একটি AppUpdateResult enumও প্রদান করে।
এই পরিস্থিতিতে আপডেট সফল হলে, আমাদের completeFlexibleUpdate কল করতে হবে আমাদের অ্যাপ্লিকেশনে আপডেট ইনস্টল করার পদ্ধতি।
সুতরাং, যদি আমরা উপরের কোড স্নিপেটটি দেখি এবং বিভিন্ন ধরণের আপডেটের জন্য যুক্তি যোগ করি, তাহলে এটি এইরকম দেখাবে:
InAppUpdate.checkForUpdate().then((updateInfo) {
if (updateInfo.updateAvailability == UpdateAvailability.updateAvailable) {
if (updateInfo.immediateUpdateAllowed) {
// Perform immediate update
InAppUpdate.performImmediateUpdate().then((appUpdateResult) {
if (appUpdateResult == AppUpdateResult.success) {
//App Update successful
}
});
} else if (updateInfo.flexibleUpdateAllowed) {
//Perform flexible update
InAppUpdate.startFlexibleUpdate().then((appUpdateResult) {
if (appUpdateResult == AppUpdateResult.success) {
//App Update successful
InAppUpdate.completeFlexibleUpdate();
}
});
}
}
});
কিভাবে আপগ্রেডার প্যাকেজ ব্যবহার করবেন
প্রথম বিকল্পের বিপরীতে, এটি আইওএস এবং অ্যান্ড্রয়েড উভয়ের জন্য একটি সমাধান সরবরাহ করে। এটি স্টোর থেকে ডেটা সংগ্রহ করা এবং অ্যাপ্লিকেশন থেকে বর্তমান ডেটার বিরুদ্ধে এটি পরীক্ষা করার উপর নির্ভর করে।
ডেটা জিজ্ঞাসা করার জন্য একটি API থাকার পরিবর্তে, এই প্যাকেজটিতে এমন উইজেট রয়েছে যা হুডের নীচে যুক্তি সম্পাদন করে৷
প্যাকেজ কিভাবে সেট আপ করবেন
প্রথমে, আপনার pubspec.yaml ফাইলে প্যাকেজ যোগ করুন:
dependencies:
flutter:
sdk: flutter
upgrader: ^5.0.0
তারপর পাব পেতে পারফর্ম করুন।
আপনার অ্যাপ্লিকেশনের ভিতরে, যেখানে আপনি অ্যাপ আপডেটগুলি পরিচালনা করার জন্য যুক্তি সম্পাদন করতে চান, নিম্নলিখিত আমদানি যোগ করুন:
import 'package:upgrader/upgrader.dart';
এই দুটি বিকল্পের মধ্যে প্রধান পার্থক্য হল শুধুমাত্র একটি UI, তাই আপনার জন্য সবচেয়ে উপযুক্ত একটি বেছে নিন।
এই প্যাকেজটি সংহত করার জন্য, আপনাকে আপগ্রেড অ্যালার্ট এর সাথে আপনার বডি উইজেট মোড়ানো প্রয়োজন অথবা আপগ্রেডকার্ড . নীচে একটি উদাহরণ:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: applicationName,
home: UpgradeAlert( /// <------------------
child: MainPage(
key: Key("YOUR_KEY"),
title: applicationName
),
)
);
}
}
যদি আপনার অ্যাপ্লিকেশনের একটি নতুন সংস্করণ দোকানে উপলব্ধ হয়, আপনি এটি দেখতে পাবেন:
জিনিসগুলি পরীক্ষা করতে, নিশ্চিত করুন যে আপনি এটি যোগ করেছেন:
await Upgrader.clearSavedSettings()
আপনার main.dart ফাইলে আপনার প্রধান পদ্ধতির ভিতরে।
শুধু তাই আপনি সচেতন, সেখানে একটি টন কনফিগারেশন আছে যা আপনি আপগ্রডার প্যাকেজের জন্য সেট করতে পারেন। আমি অত্যন্ত সুপারিশ করছি আপনি যান এবং এইগুলি পরীক্ষা করে দেখুন৷
৷প্যাকেজগুলি কীভাবে পরীক্ষা করবেন
আপনি যে প্যাকেজের সাথে কাজ করতে চান তা নির্বিশেষে, আপনাকে জানতে হবে যে আপনার যুক্তি সঠিকভাবে কাজ করে।
কিন্তু আপনি কীভাবে আপনার অ্যাপ্লিকেশনটির একটি অফিসিয়াল সংস্করণ প্রকাশ না করে এটি করতে পারেন? আপনি Google Play Console-এ অভ্যন্তরীণ পরীক্ষার বিকল্প ব্যবহার করতে পারেন। অভ্যন্তরীণ পরীক্ষকদের কাছে আপনার অ্যাপ্লিকেশনটির একটি নতুন সংস্করণ প্রকাশ করার মাধ্যমে, এটি সর্বজনীন হবে না এবং আপনাকে আপগ্রেডিং কার্যকারিতা পরীক্ষা করার অনুমতি দেবে৷
আপনাকে যা করতে হবে তা এখানে:
- আপনার Google Play Console অ্যাকাউন্টে লগ ইন করুন এবং আপডেট করার যুক্তি পেতে আপনি যে অ্যাপ্লিকেশনটিতে কাজ করছেন তাতে যান
- সেটআপের অধীনে → অভ্যন্তরীণ অ্যাপ শেয়ারিং, ম্যানেজ পরীক্ষক-এ যান এবং পরীক্ষকদের শেয়ার করা অ্যাপ্লিকেশন ডাউনলোড এবং ইনস্টল করার অনুমতি দেওয়ার বিষয়টি নিশ্চিত করুন। আপনি লিঙ্কের মাধ্যমে বা ইমেলের মাধ্যমে এটি করতে বেছে নিতে পারেন।
- তারপর, টেস্টিং → ইন্টারনাল টেস্টিং-এ যান এবং নতুন রিলিজ তৈরি করুন বোতামে ক্লিক করুন (উপরে ডানদিকে)।
- একবার আপনি একটি রিলিজ সম্পাদন করলে, আপনি মূল অভ্যন্তরীণ পরীক্ষার পৃষ্ঠায় ফিরে যেতে পারেন এবং পরীক্ষক ট্যাবে ক্লিক করতে পারেন। সেখানে আপনি পরীক্ষক ইমেল সম্বলিত একটি তালিকা দেখতে পাবেন (এখনই খালি)। নীল তীর আইকনে ক্লিক করুন৷
- এই স্ক্রিনে আপনি নিজেকে একজন অভ্যন্তরীণ পরীক্ষক হিসেবে যুক্ত করতে পারেন (ইমেল ঠিকানা যোগ করুন)।
- আপনার কাজ শেষ হলে, আপনি অভ্যন্তরীণ পরীক্ষা উইন্ডোতে ফিরে যেতে পারেন। নিচের দিকে স্ক্রোল করুন এবং আপনি দেখতে পাবেন কিভাবে পরীক্ষকরা আপনার পরীক্ষায় যোগ দেন এবং আপনি একটি অনুলিপি লিঙ্ক বোতাম দেখতে পাবেন।
আপনি এখন বোতামটি ক্লিক করতে পারেন এবং নিজেকে লিঙ্কটি পাঠাতে পারেন যাতে আপনি আপনার অ্যাপ্লিকেশনটির নতুন সংস্করণ ডাউনলোড করতে সক্ষম হবেন৷
আপনি যদি উপরের ধাপগুলির মধ্যে একটি করতে ব্যর্থ হন, তাহলে উত্পন্ন লিঙ্কটি একটি পাওয়া যায়নি (ত্রুটি 404) পৃষ্ঠার দিকে নিয়ে যাবে:
আপনি যদি সবকিছু সফলভাবে করেন, আপনি যখন জেনারেট করা লিঙ্কে ক্লিক করবেন তখন আপনি নিম্নলিখিতগুলি দেখতে পাবেন:
আপনি যদি এই ত্রুটি দেখতে পান:
_ইনস্টল ত্রুটি(-6):বর্তমান ডিভাইসের অবস্থার (যেমন কম ব্যাটারি, কম ডিস্ক স্পেস, …) এর কারণে ডাউনলোড/ইনস্টল করা অনুমোদিত নয়। (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOTALLOWED)
এর অর্থ হতে পারে আপনি একটি অনুকরণ করা ডিভাইসে আপনার অ্যাপ্লিকেশন চালাচ্ছেন এবং আপনাকে এতে Google Play Store ইনস্টল করতে হবে এবং লগ ইন করতে হবে৷
র্যাপিং আপ
আমি এই নিবন্ধটি লিখেছিলাম কারণ আমার নিজের অ্যাপ্লিকেশনের সাথে ইন অ্যাপ আপডেট প্যাকেজ সংহত করার সময় আমাকে একই প্রক্রিয়ার মধ্য দিয়ে যেতে হয়েছিল।
Google Play Store-এ এটি চেক আউট করার জন্য আপনাকে স্বাগতম:
এবং এখানে পুরো সোর্স কোড দেখুন:
পড়ার জন্য আপনাকে ধন্যবাদ!
বিনামূল্যে কোড শিখুন. freeCodeCamp-এর ওপেন সোর্স পাঠ্যক্রম 40,000-এরও বেশি লোককে ডেভেলপার হিসেবে চাকরি পেতে সাহায্য করেছে। শুরু করুন