Electron অ্যাপ্লিকেশনগুলিতে Auto-Updater ফিচারটি ব্যবহারকারীদের জন্য অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে আপডেট করার সুবিধা প্রদান করে। এটি ব্যবহৃত হয়, যাতে অ্যাপ্লিকেশন নতুন ভার্সনে চলে যায় যখন একটি নতুন আপডেট উপলব্ধ হয়। Electron এর auto-updater মডিউল ব্যবহার করে আপনি অ্যাপ্লিকেশনের আপডেট প্রক্রিয়া স্বয়ংক্রিয় করতে পারেন।
Auto-Updater মডিউল Electron এর জন্য একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা অ্যাপ্লিকেশন ব্যবহারের সুবিধা বৃদ্ধি করে, কারণ ব্যবহারকারীকে আপডেট ইনস্টল করার জন্য কোনো পদক্ষেপ নিতে হয় না। এই মডিউলটি Electron অ্যাপ্লিকেশনকে নতুন ভার্সনে আপডেট করতে সহায়তা করে।
১. Auto-Updater মডিউল কনফিগারেশন
auto-updater মডিউল Main Process থেকে ব্যবহৃত হয়। এটি electron-updater নামক প্যাকেজের মাধ্যমে কাজ করে, যা Squirrel.Windows, AppImage, Snap এবং macOS-এর জন্য আপডেট প্রদান করে।
২. নোটিফিকেশন এবং ফাইল সিস্টেম অ্যাক্সেস
আপডেটের সময় ইউজারকে বিজ্ঞপ্তি প্রদর্শন করা এবং update.json ফাইল থেকে আপডেট তথ্য সংগ্রহ করা হয়। Electron অ্যাপ্লিকেশনগুলো সাধারণত GitHub বা S3 এর মতো সার্ভার থেকে আপডেট সংগ্রহ করে।
৩. নির্দিষ্ট নির্ভরতা ইনস্টল করা
আপডেট প্রক্রিয়া চলাতে electron-updater প্যাকেজের সাহায্য নিতে হবে। তাই প্রথমেই electron-updater ইনস্টল করা প্রয়োজন।
npm install electron-updater --save
এছাড়া, electron-builder ব্যবহার করে অ্যাপ্লিকেশনটি প্যাকেজ করতে হবে, যাতে আপডেটের জন্য প্রয়োজনীয় সমস্ত ফাইল তৈরি করা যায়।
npm install electron-builder --save-dev
৪. Auto-Updater কনফিগারেশন
আপডেট কনফিগার করার জন্য autoUpdater API ব্যবহার করা হয়। এটি অ্যাপ্লিকেশনের Main Process-এ ব্যবহৃত হয় এবং আপডেটের জন্য একটি URL নির্ধারণ করা হয়।
উদাহরণ: Main Process - main.js
const { app, BrowserWindow, autoUpdater, dialog } = require('electron');
const { createWindow } = require('./window'); // উইন্ডো তৈরি করার ফাংশন
const path = require('path');
// আপডেটের URL সংজ্ঞায়িত করা (GitHub URL)
const server = 'https://your-update-server.com';
const feedURL = `${server}/update/${process.platform}/${app.getVersion()}`;
let mainWindow;
app.on('ready', () => {
createWindow(); // উইন্ডো তৈরি করা
autoUpdater.setFeedURL(feedURL);
// আপডেট চেক শুরু করা
autoUpdater.checkForUpdates();
// আপডেট পাওয়া গেলে
autoUpdater.on('update-available', () => {
dialog.showMessageBox(mainWindow, {
type: 'info',
buttons: ['OK'],
title: 'Update Available',
message: 'A new update is available. The app will update soon.'
});
});
// আপডেট ডাউনলোড হওয়ার পর
autoUpdater.on('update-downloaded', () => {
dialog.showMessageBox(mainWindow, {
type: 'info',
buttons: ['Restart'],
title: 'Update Downloaded',
message: 'The update has been downloaded. Restart the app to apply the update.'
}).then(result => {
if (result.response === 0) {
autoUpdater.quitAndInstall(); // ইনস্টল এবং পুনরায় অ্যাপ চালু করা
}
});
});
// আপডেট না পাওয়া গেলে
autoUpdater.on('error', (err) => {
dialog.showMessageBox(mainWindow, {
type: 'error',
buttons: ['OK'],
title: 'Update Error',
message: `Error while checking for updates: ${err}`
});
});
});
autoUpdater.setFeedURL(feedURL): আপডেট সার্ভারের URL সেট করা হয়। এটি সাধারণত GitHub, AWS S3 অথবা অন্য যে কোনো সার্ভার হতে পারে যেখানে আপডেট ফাইলগুলো রাখা হয়।autoUpdater.checkForUpdates(): এই ফাংশনটি অ্যাপ্লিকেশন চালু হলে আপডেট চেক করতে ব্যবহৃত হয়।autoUpdater.on('update-available'): একটি নতুন আপডেট পাওয়ার পর এটি ট্রিগার হয় এবং ব্যবহারকারীকে জানানো হয়।autoUpdater.on('update-downloaded'): আপডেট ডাউনলোড হয়ে গেলে এটি ট্রিগার হয় এবং ব্যবহারকারীকে আপডেট ইনস্টল করতে বলা হয়।
৫. GitHub বা অন্য সার্ভারে আপডেট হোস্টিং
আপডেট ফাইল এবং update.json ফাইল GitHub বা অন্য সার্ভারে হোস্ট করা হয়। এখানে একটি সিম্পল update.json ফাইলের উদাহরণ দেওয়া হলো।
উদাহরণ: update.json
{
"url": "https://your-update-server.com/your-app-name-${version}.dmg",
"version": "1.0.1"
}
এটি GitHub Releases বা অন্য সার্ভারে আপডেট ফাইল ডিপ্লয় করা হয়, যেখানে নতুন ভার্সন ফাইল এবং update.json রাখা থাকবে।
৬. Electron Build Configuration
আপনার অ্যাপ্লিকেশনটি আপডেটযোগ্য করার জন্য electron-builder ব্যবহার করতে পারেন, যা auto-updater এর জন্য প্রয়োজনীয় ফাইল তৈরি করতে সহায়ক। এটি আপনার অ্যাপ্লিকেশনটি প্যাকেজ এবং ডিস্ট্রিবিউট করতে ব্যবহৃত হয়।
উদাহরণ: package.json-এ electron-builder কনফিগারেশন
{
"name": "my-electron-app",
"version": "1.0.1",
"build": {
"appId": "com.example.myapp",
"mac": {
"category": "public.app-category.utilities",
"target": "dmg"
},
"win": {
"target": "nsis"
}
},
"dependencies": {
"electron": "^25.0.0",
"electron-updater": "^4.0.6"
}
}
এখানে, electron-builder ব্যবহার করে Mac এবং Windows জন্য প্যাকেজ তৈরি করা হচ্ছে এবং auto-updater এর জন্য electron-updater মডিউল ব্যবহৃত হচ্ছে।
৭. Auto-Updater এর জন্য সার্ভার সেটআপ
আপডেট ফাইলগুলি GitHub বা অন্য সেবা ব্যবহার করে হোস্ট করা যেতে পারে, যেমন AWS S3। যদি GitHub ব্যবহার করা হয়, তাহলে আপনাকে GitHub Releases ব্যবহার করতে হবে, যেখানে নতুন আপডেট ফাইল এবং update.json আপলোড করতে হবে।
উদাহরণ: GitHub Releases URL
{
"url": "https://github.com/username/repository/releases/download/v1.0.1/app-1.0.1.dmg",
"version": "1.0.1"
}
এটি আপনার অ্যাপ্লিকেশনের আপডেট ফাইলগুলিকে সঠিকভাবে ইন্টারফেসের মাধ্যমে ব্যবহারকারীর কাছে পৌঁছাতে সাহায্য করবে।
সারাংশ
- Electron এর Auto-Updater মডিউল ব্যবহার করে অ্যাপ্লিকেশন আপডেট প্রক্রিয়া স্বয়ংক্রিয় করা যায়।
- electron-updater প্যাকেজ ব্যবহার করে সার্ভার থেকে নতুন ভার্সন চেক করা এবং আপডেট ডাউনলোড ও ইনস্টল করা সম্ভব।
- autoUpdater.setFeedURL() এবং autoUpdater.checkForUpdates() ফাংশনগুলো ব্যবহার করে আপডেট প্রক্রিয়া শুরু করা হয়।
- GitHub বা অন্য সার্ভারে আপডেট ফাইল হোস্ট করে, Electron অ্যাপ্লিকেশনগুলির জন্য স্বয়ংক্রিয় আপডেট সিস্টেম তৈরি করা সম্ভব।
Read more