কম্পিউটার টিউটোরিয়াল

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

যখন আপনি আপনার অ্যাপ্লিকেশনের একটি নতুন ভার্সন রিলিজ করেন, আপনি চান আপনার ব্যবহারকারীরা সেটি সম্পর্কে জানেন। আপনি একটি ক্রিটিক্যাল বাগ ফিক্স করেছেন, একটি নতুন ফিচার যোগ করেছেন, বা অ্যাপ্লিকেশনটি আরও স্মুথ বা দ্রুত চলে - তাদের জানা দরকার।

অ্যাপ্লিকেশন ডেভেলপার হিসেবে, আমরা চাই আমাদের সব ব্যবহারকারী আমাদের অ্যাপ্লিকেশনের সবচেয়ে সাম্প্রতিক ভার্সন ব্যবহার করে।

কিন্তু আমরা কীভাবে নিশ্চিত করব যে ব্যবহারকারীরা আমাদের অ্যাপ্লিকেশনের নতুন ভার্সন সম্পর্কে অবগত हैं?

उस প্রশ্নের উত্তর খুব সহজ: নতুন ভার্সন আসা হলে তাদের জানিয়ে দেন কেন?

আপনি এটি বিভিন্নভাবে করতে পারেন:

  • পশ নোটিফিকেশন ব্যবহার করুন
  • অ্যাপ্লিকেশন লঞ্চ হলে তাদের জানান

এই নিবন্ধে পশ নোটিফিকেশনের সাথে কাজ করব না। বরং দেখাব কীভাবে আপনি (এক বা দুটি প্যাকেজ ব্যবহার করে) আপনার ব্যবহারকারীদের একটি ডায়ালগ দেখিয়ে জানাতে পারেন যে অ্যাপ্লিকেশনের একটি নতুন ভার্সন আউট হয়েছে এবং আপডেট নিয়ে কীভাবে কাজ করতে হবে।

অপেক্ষা করুন, এটি ইতিমধ্যে অন্তর্ভুক্ত নয় কি?

আপনি ভাবতে পারেন এই ধরনের ফাংশনালিটি আধুনিক মোবাইল OS সিস্টেমে ইতিমধ্যে থাকা উচিত। এবং আপনি সঠিক হচ্ছেন - কিন্তু শুধু অ্যান্ড্রয়েডের জন্য।

iOS বর্তমানে ডেভেলপারদের 능력을 দেয় না যে তারা দেখে নিতে পারে অ্যাপ্লিকেশনের নতুন ভার্সন আছে কিনা এবং ব্যবহারকারীদের সেটি সম্পর্কে নোটিফাই করতে পারে। অ্যান্ড্রয়েডে, আপনার গুগল প্লে লাইব্রেরির অংশ হিসেবে ইন-অ্যাপ আপডেট লাইব্রেরি রয়েছে।

এই কারণেই, এবং ফ্লাটার যেহেতু উভয় প্ল্যাটফর্ম সাপোর্ট করে, আমি দুটি প্রমুখ প্যাকেজ নিয়ে আলোচনা করব যা আপনার অ্যাপ্লিকেশনের ভার্সন আপডেট হ্যান্ডেল করতে সাহায্য করে:

  1. Upgrader
  2. In App Update

দুটোই আপনার কাঙ্খিত ফলাফল দিতে পারে, কিন্তু তারা কীভাবে করে সেটি অনেক ভিন্ন।

শুরু করার আগে, এটি বুঝতে অত্যন্ত গুরুত্বপূর্ণ যে আপনার অ্যাপ্লিকেশনের একটি ভার্সন অবশ্যই সরাসরি গুগল প্লে স্টোর থেকে ইনস্টল করা থাকতে হবে। এটি প্রয়োজন কারণ উভয় প্যাকেজই গুগল প্লে সার্ভিসেস এবং এর অ্যাপ্লিকেশনের মালিক যাচাই করার ক্ষমতায় নির্ভর করে।

যদি আপনি এটি না করেন, প্যাকেজগুলো ব্যবহার করার চেষ্টা করার সময় আপনি নিচের এরর দেখবেন:

_Install Error(-10): The app is not owned by any user on this device. An app is "owned" if it has been acquired from Play. (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_APP_NOT_OWNED)_

In App Update প্যাকেজ কীভাবে ব্যবহার করবেন

শুরুতেই জানাতে চাই এই প্যাকেজ শুধু অ্যান্ড্রয়েডে কাজ করবে। কারণ এটি ইন-অ্যাপ আপডেট লাইব্রেরিতে নির্ভর করে এর অভ্যন্তরীণ কাজের জন্য।

এই প্যাকেজ মূলত অ্যান্ড্রয়েড লাইব্রেরির একটি র‍্যাপার। নিচে এর এক্সপোজড 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 

তারপর pub get চালান।

আপনার অ্যাপ্লিকেশনের ভিতরে, যেখানে আপনি ইন-অ্যাপ আপডেট হ্যান্ডেল করার লজিক করতে চান, নিচের ইম্পোর্ট যোগ করুন:

import 'package:in_app_update/in_app_update.dart'; 

প্রথমে আমাদের লজিক যোগ করতে হবে যেটি চেক করবে আমাদের অ্যাপ্লিকেশনে আপডেট আছে কিনা। সেটি করার জন্য, আমরা checkForUpdate মেথডটি ব্যবহার করব। এর রিটার্ন ভ্যালু একটি Future যেটি অ্যাপ আপডেটের উপলব্ধতা এবং প্রগ্রেস সম্পর্কে তথ্য ধারণ করে।

আমরা updateAvailability প্রোপার্টি ব্যবহার করে আপডেট উপলব্ধ কিনা চেক করতে পারি। যদি আপডেট উপলব্ধ থাকে, এর মান হবে UPDATE_AVAILABLE। তাই, আপনার মেথডটি এমন দেখাবে:

InAppUpdate.checkForUpdate().then((updateInfo) { if (updateInfo.updateAvailability == UpdateAvailability.updateAvailable) { // আপডেট করার লজিক } }); 

এরপর, আমাদের সিদ্ধান্ত নিতে হবে কোন ধরনের আপডেট ট্রিগার করতে চাই - ইমিডিয়েট বা ফ্লেক্সিবল।

ইমিডিয়েট আপডেটের জন্য যেতে হবে যদি অ্যাপ্লিকেশন আপডেট আপনার ব্যবহারকারীদের জন্য ক্রিটিক্যাল হয়। সেটি মানে একটি ক্রিটিক্যাল বাগ ফিক্স করা ভার্সন বা একটি নতুন ফিচার অফার করা ভার্সন।

ইমিডিয়েট আপডেট শুরু করতে, আমরা performImmediateUpdate মেথডটি ব্যবহার করতে পারি। এই মেথডটি একটি AppUpdateResult enum রিটার্ন করে যা বলে দেয় আপডেট সফল হয়েছে কিনা।

এই মেথড কল করার আগে আমাদের চেক করতে হবে আমরা কি ইমিডিয়েট আপডেট চালাতে পারি। সেটি আমরা AppUpdateInfo অবজেক্টের immediateUpdateAllowed ফ্ল্যাগ অ্যাক্সেস করে চেক করি।

যদি আমরা ফ্লেক্সিবল আপডেট ট্রিগার করতে চাই, startFlexibleUpdate মেথডটি ব্যবহার করি। এটি ব্যাকগ্রাউন্ডে চলে এবং ইমিডিয়েট আপডেট মেথডের মতো। এটি\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(); } }); } } }); 

Upgrader প্যাকেজ কীভাবে ব্যবহার করবেন

প্রথম অপশনের বিপরীতে, এটি iOS এবং অ্যান্ড্রয়েড উভয়ের জন্য সমাধান দেয়। এটি স্টোর থেকে ডেটা সংগ্রহ করে এবং সেটি অ্যাপ্লিকেশন থেকে বর্তমান ডেটার সাথে মিলিয়ে চেক করে।

ডেটা কোয়েরি করার জন্য API থাকার বদলে, এই প্যাকেজে উইজেট থাকে যা हुडের নিচে লজিক করে।

প্যাকেজ সেট আপ কীভাবে করবেন

প্রথমে, আপনার pubspec.yaml ফাইলে প্যাকেজটি যোগ করুন:

dependencies: flutter: sdk: flutter upgrader: ^5.0.0 

তারপর pub get চালান।

আপনার অ্যাপ্লিকেশনের ভিতরে, যেখানে আপনি ইন-অ্যাপ আপডেট হ্যান্ডেল করার লজিক করতে চান, নিচের ইম্পোর্ট যোগ করুন:

import 'package:upgrader/upgrader.dart'; 

এই দুটি অপশনের মূল পার্থক্য শুধু UI-তে, তাই আপনার জন্য যেটি উপযুক্ত সেটি বেছে নিন।

এই প্যাকেজ ইন্টিগ্রেট করতে, আপনাকে আপনার বডি উইজেটকে UpgradeAlert বা UpgradeCard দিয়ে র‍্যাপ করতে হবে। নিচে একটি উদাহরণ:

class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: applicationName, home: UpgradeAlert( /// <------------------ child: MainPage( key: Key("YOUR_KEY"), title: applicationName ), ) ); } } 

যদি স্টোরে আপনার অ্যাপ্লিকেশনের একটি নতুন ভার্সন উপলব্ধ থাকে, আপনি এটি দেখবেন:

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

টেস্ট করার জন্য, নিচের কোডটি আপনার main.dart ফাইলের main মেথডে যোগ করুন:

await Upgrader.clearSavedSettings() 

বस জানালে রাখুন, Upgrader প্যাকেজের জন্য কনফিগারেশনের একটি বড় পরিমাণ আছে। আমি দৃঢ়ভাবে সুপারিশ করছি আপনি সেগুলো চেক আউট করুন।

প্যাকেজগুলো কীভাবে টেস্ট করবেন

আপনি কোন প্যাকেজে কাজ করছেন তা নির্বিশেষে, আপনাকে জানতে হবে আপনার লজিক সঠিকভাবে কাজ করছে কিনা।

কিন্তু অফিশিয়াল ভার্সন রিলিজ না করেই আপনি সেটি কীভাবে করবেন? আপনি গুগল প্লে কনসোলে ইন্টারনাল টেস্টিং অপশন ব্যবহার করতে পারেন। ইন্টারনাল টেস্টারদের জন্য আপনার অ্যাপ্লিকেশনের একটি নতুন ভার্সন রিলিজ করলে, সেটি পাবলিক হবে না এবং আপনাকে আপগ্রেডিং ফাংশনালিটি টেস্ট করতে দেবে।

আপনাকে যা করতে হবে:

  1. আপনার গুগল প্লে কনসোল অ্যাকাউন্টে লগইন করুন এবং আপনি যে অ্যাপ্লিকেশনে কাজ করছেন সেটিতে যান যাতে আপগ্রেডিং লজিক থাকে
  2. Setup → Internal App Sharing-এর অধীনে, Manage Testers-এ যান এবং নিশ্চিত করুন টেস্টারদের শেয়ার করা অ্যাপ্লিকেশন ডাউনলোড ও ইনস্টল করার অনুমতি দেওয়া আছে। আপনি লিংক বা ইমেইল যেকোনো মাধ্যমে করতে পারেন।

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

  1. তারপর, Testing → Internal Testing-এ যান এবং Create new release বাটনে ক্লিক করুন (উপরের ডানপাশে)।

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

  1. রিলিজ সম্পন্ন হলে, আবার মূল Internal Testing পেজে যান এবং Testers ট্যাবে ক্লিক করুন। সেখানে টেস্টার ইমেইলের একটি লিস্ট থাকবে (এখন খালি)। নীল তীর আইকনে ক্লিক করুন।

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

  1. এই স্ক্রিনে আপনি নিজেকে ইন্টারনাল টেস্টার হিসেবে যোগ করতে পারেন (Add email addresses-এ)।

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

  1. যখন xog হবে, Internal Testing উইন্ডোতে ফিরে যান। নিচে স্ক্রোল করুন এবং আপনি How testers join your test দেখবেন এবং একটি Copy link বাটন থাকবে।

আপনি এখন বাটনে ক্লিক করে লিংকটি নিজের কাছে পাঠাতে পারেন যাতে আপনি আপনার অ্যাপ্লিকেশনের নতুন ভার্সন ডাউনলোড করতে পারেন।

যদি উপরের ধাপগুলো থেকে যেকোনো একটি ব্যর্থ হয়, জেনারেট করা লিংকটি একটি নট ফাউন্ড (Error 404) পেজে নিয়ে যাবে:

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

যদি আপনি সব কিছু সফলভাবে করেন, জেনারেট করা লিংকে ক্লিক করলে আপনি নিচেরটি দেখবেন:

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

যদি আপনি এই এররটি দেখেন:

_Install Error(-6): The download/install is not allowed, due to the current device state (e.g. low battery, low disk space, …). (https://developer.android.com/reference/com/google/android/play/core/install/model/InstallErrorCode#ERROR_INSTALL_NOT_ALLOWED)_

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

সমাপন

আমি এই নিবন্ধটি লিখেছি কারণ আমাকে নিজের অ্যাপ্লিকেশনের সাথে ইন-অ্যাপ আপডেট প্যাকেজ ইন্টিগ্রেট করার সময় একই প্রসেস থেকে गुजরতে হয়েছিল।

আপনি গুগল প্লে স্টোরে এটিকে চেক আউট করতে পারেন:

ইন-অ্যাপ আপডেট: ফ্লাটার ব্যবহারকারীদের নতুন ভার্সন সম্পর্কে কার্যকরভাবে জানানো

এবং পুরো সোর্স কোড এখানে দেখতে পারেন:

পড়ার জন্য ধন্যবাদ!

Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started


ত্রিভুজ No
  1. এক্সটার্নাল হার্ড ড্রাইভে macOS Monterey ইনস্টল করুন: সম्पূর্ণ গাইড

  2. লিনাক্সে এন্টিভাইরাস সফটওয়্যারের প্রয়োজন কি নিশ্চিত?

  3. Windows Menu Plus দিয়ে অ্যাপ উইন্ডোতে এক্সট্রা ইউজফুল মেনু যোগ করুন

  4. উবুন্টুতে ইউজার ম্যানেজ করার পদ্ধতি