আপনার ওয়েব অ্যাপ আপডেট করার একটি ভালো উপায়

ড্যান মারফি
Dan Murphy
দিব্যজ্যোতি পাল
Dibyajyoti Pal

প্রকাশিত: ২১ জানুয়ারী, ২০২৬

Chrome 144 থেকে ইনস্টলযোগ্য ওয়েব অ্যাপগুলির আপডেট প্রক্রিয়া, যেগুলিতে ওয়েব অ্যাপ ম্যানিফেস্ট রয়েছে, সেগুলিকে আরও সহজ করে তোলা হয়েছে, যা এটিকে আরও নির্ধারক, অনুমানযোগ্য এবং দক্ষ করে তুলেছে। এই পোস্টে বর্তমান পদ্ধতি এবং এটি উন্নত করার জন্য আমরা যে পরিবর্তনগুলি করেছি তা ব্যাখ্যা করা হয়েছে।

পূর্ববর্তী পদ্ধতি (Chrome 144 এর আগে)

Chrome 144 এর আগে, ওয়েব অ্যাপ্লিকেশনগুলিতে আপডেটগুলি সক্রিয়ভাবে ট্রিগার করার জন্য কোনও নির্দিষ্ট ইভেন্ট ছিল না। পরিবর্তে, ডেভেলপাররা অ্যাপ ম্যানিফেস্ট বা এর সাথে সম্পর্কিত আইকনগুলি পরিবর্তন করলে আপডেটগুলি ঘটতে পারে। আপডেট প্রক্রিয়াটি শুরু হয় যখন একজন ব্যবহারকারী এজেন্ট একটি ম্যানিফেস্ট লিঙ্ক ব্যবহার করে একটি ম্যানিফেস্ট পুনরুদ্ধার করে, যা সাধারণত তখন ঘটে যখন একজন ব্যবহারকারী কোনও সাইট পরিদর্শন করেন বা একটি অ্যাপ চালু করেন (যে ম্যানিফেস্ট লিঙ্কযুক্ত থাকে)। একটি আপডেট প্রয়োজন কিনা তা নির্ধারণ করতে, সিস্টেমটি বর্তমান ম্যানিফেস্ট এবং আইকনগুলিকে পূর্বে রেকর্ড করা অবস্থার সাথে তুলনা করে। এই প্রক্রিয়াটি সম্পদ-নিবিড় ছিল কারণ বিটম্যাপ তুলনা করার জন্য সর্বদা নেটওয়ার্ক থেকে আইকনগুলি ডাউনলোড করার প্রয়োজন হত।

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

এই পদ্ধতির মাধ্যমে, ডেভেলপারদের নিরাপত্তা-সংবেদনশীল পরিবর্তনগুলি বাস্তবায়নের সময় জটিলতার মুখোমুখি হতে হত, যেমন অ্যাপের নাম বা আইকনের আপডেট, যা প্রায়শই অ্যাপ আইডেন্টিটি পরিবর্তন নামে পরিচিত। যেহেতু ওয়েব অ্যাপগুলিতে আপডেটগুলি পর্যালোচনা করার জন্য গুগল প্লে-এর মতো কেন্দ্রীয় কর্তৃপক্ষের অভাব রয়েছে, তাই এই পরিবর্তনগুলি নিশ্চিতকরণের জন্য ব্যবহারকারীদের কাছে স্পষ্টভাবে উপস্থাপন করতে হবে। তবে, এই পরিবর্তনগুলির জন্য ব্যবহারকারীদের অনুরোধ করার জন্য সবচেয়ে উপযুক্ত সময় নির্ধারণ করা একটি চ্যালেঞ্জ হিসাবে রয়ে গেছে।

আপডেট ডায়ালগের পূর্ববর্তী পুনরাবৃত্তিগুলি প্রায়শই বিভ্রান্তির সৃষ্টি করত, কারণ দাবি করা হত যে আইকনগুলি ব্যবহারকারীর সাথে দৃশ্যত অভিন্ন দেখালেও পরিবর্তিত হয়েছিল। এই সমস্যাটি সরাসরি পিক্সেল তুলনার উপর নির্ভর করার কারণে উদ্ভূত হয়েছিল, যা প্রায়শই নগণ্য পার্থক্যগুলিকে চিহ্নিত করে। যদিও কিছু বৈচিত্র্য ইচ্ছাকৃতভাবে বিকাশকারীর পরিবর্তনের ফলে হয়েছিল, অনেকগুলি CDN-এর গতিশীলভাবে চিত্রগুলি পুনরায় এনকোড করার কারণে হয়েছিল। নিশ্চিতকরণ ডায়ালগের এই ঘন ঘন অতিরিক্ত ট্রিগার অবশেষে Chrome 91-এ আইকন আপডেটগুলি অক্ষম করে তোলে।

এই সমস্যা সমাধানের জন্য, Chrome for Android-এ বেশ কয়েক বছর আগে একটি ভিজ্যুয়াল ডিফারেন্স থ্রেশহোল্ড চালু করা হয়েছিল। এটি নিশ্চিত করে যে ব্যবহারকারীর নিশ্চিতকরণ শুধুমাত্র তখনই অনুরোধ করা হবে যদি আইকন পরিবর্তনগুলি উল্লেখযোগ্য হয়। এই সংশোধনের ফলে Android-এ আইকন আপডেট পুনঃস্থাপন করা সম্ভব হয়েছিল, যদিও বৈশিষ্ট্যটি Chrome-এর ডেস্কটপে অক্ষম রয়ে গেছে।

আইকনে পরিবর্তন দেখানো একটি সতর্কতা, এবং ব্যবহারকারীকে পরিবর্তনটি ঠিক করার বা অ্যাপটি আনইনস্টল করার বোতাম সহ সতর্ক করে একটি বার্তা।
ডেস্কটপ (Chrome 91 এর পরে আনশিপ করা হয়েছে)
আইকনে পরিবর্তন দেখানো একটি মোবাইল সতর্কতা, এবং ব্যবহারকারীকে পরিবর্তনটি ঠিক করার বা অ্যাপটি আনইনস্টল করার বোতাম সহ সতর্ক করে একটি বার্তা।
অ্যান্ড্রয়েড (বর্তমান)

ওয়েব অ্যাপ আপডেটে পরিবর্তনের সীমাবদ্ধতা এবং লক্ষ্য

নতুন আপডেট প্রক্রিয়ার উন্নয়নে নিম্নলিখিত উদ্দেশ্যগুলি পরিচালিত হয়েছিল:

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

Chrome 144-এ কী পরিবর্তন হয়েছে?

নাম এবং আইকন আপডেট এখন ঐচ্ছিক

অতীতে, ব্যবহারকারীদের একটি বিঘ্নিত সংলাপের সম্মুখীন হতে হত যার জন্য তাদের হয় অ্যাপটি আনইনস্টল করতে হত অথবা অবিলম্বে আইকন এবং নামের পরিবর্তনগুলি গ্রহণ করতে হত। এটি একটি আরও ব্যবহারকারী-বান্ধব পরামর্শ দ্বারা প্রতিস্থাপিত হয়েছে যা একটি বর্ধিত 3-ডট মেনু থেকে অ্যাক্সেস করা হয়। নির্বাচনের পরে, ব্যবহারকারীদের এখন পছন্দ হলে এই পরিচয় পরিবর্তনগুলি সম্পূর্ণরূপে উপেক্ষা করার বিকল্প রয়েছে।

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

'রিভিউ অ্যাপ আপডেট' বিকল্পটি দেখানো মেনু।

"রিভিউ অ্যাপ আপডেট" এ ক্লিক করলে সংশোধিত ডায়ালগটি দেখাবে। কোন উপাদানগুলি আপডেট হচ্ছে তার উপর ভিত্তি করে শিরোনাম পরিবর্তন হয়।

ডেস্কটপ ডায়ালগ ব্যবহারকারীকে আইকন পর্যালোচনা এবং নাম আপডেট করতে বলছে।

আইকন ফিল্ডে কোন পরিবর্তন না থাকলে আইকন ডাউনলোড করা হয় না।

ম্যানিফেস্টে icons ফিল্ডটি যদি আগের প্রয়োগ করা সংস্করণের মতোই থাকে তবে আইকনগুলি এখন অপরিবর্তিত বলে বিবেচিত হবে। এই নতুন লজিকের অধীনে, Chrome ভিজ্যুয়াল তুলনার জন্য আইকনগুলি ডাউনলোড করা এড়িয়ে চলে, কার্যকরভাবে আইকন URLগুলিকে Cache-Control:immutable হিসাবে বিবেচনা করে। একটি আইকন আপডেট ট্রিগার করতে, ডেভেলপারদের এখন মেটাডেটা অথবা আইকন URL পরিবর্তন করতে হবে।

আপডেট থ্রোটল অপসারণ

যেহেতু Chrome আর কোনও ইনস্টল করা অ্যাপ্লিকেশনের জন্য ম্যানিফেস্টের মুখোমুখি হলেই আইকন ডাউনলোড করে না, তাই আগের সীমাবদ্ধতা - যা প্রতিদিন একবার আপডেট চেক করার জন্য সীমাবদ্ধ ছিল - তা বাদ দেওয়া হয়েছে। ডেভেলপাররা এখন সমস্ত অ-নিরাপত্তা-সংবেদনশীল সদস্যদের জন্য তাৎক্ষণিকভাবে আপডেটের উপর নির্ভর করতে পারেন।

প্ল্যাটফর্ম জুড়ে ছোটখাটো আইকন বৈচিত্র্য পরিচালনা করুন

ব্যবহারকারীর অভিজ্ঞতা উন্নত করার জন্য, Chrome এখন স্বয়ংক্রিয়ভাবে আইকন আপডেটগুলি প্রয়োগ করে যা পিক্সেল-বাই-পিক্সেল তুলনাতে 10% এরও কম পার্থক্য দেখায়। এটি নিশ্চিত করে যে CDN পুনঃএনকোডিংয়ের কারণে সৃষ্ট ছোটখাটো পরিবর্তনগুলি ব্যবহারকারীর জন্য বিভ্রান্তিকর আপডেট ডায়ালগ তৈরি করবে না।

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

আইকন এবং নাম আপডেটের উদাহরণ

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}

আইকন URL পরিবর্তন করলে ব্যবহারকারী আইকন পরিবর্তন করার জন্য একটি আপডেট ডায়ালগ দেখতে পাবেন তা নিশ্চিত হয়।

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app-NEW-URL.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}