Main Process হলো Electron অ্যাপ্লিকেশনের কেন্দ্রীয় প্রক্রিয়া (central process), যা পুরো অ্যাপ্লিকেশনের জীবনচক্র (lifecycle) নিয়ন্ত্রণ করে। এটি Electron অ্যাপ্লিকেশনের মূল স্ক্রিপ্ট হিসেবে কাজ করে এবং Node.js API পুরোপুরি ব্যবহার করতে সক্ষম।
Main Process Electron অ্যাপ্লিকেশনের ব্যাকএন্ড কাজগুলো পরিচালনা করে এবং অ্যাপের বিভিন্ন উইন্ডো তৈরি ও নিয়ন্ত্রণ করে।
Main Process এর বৈশিষ্ট্য
- একক প্রক্রিয়া: একটি Electron অ্যাপ্লিকেশনে শুধুমাত্র একটি Main Process থাকে।
- Node.js API ব্যবহার: এটি Node.js এর সমস্ত ক্ষমতা ব্যবহার করতে পারে, যেমন ফাইল সিস্টেম অ্যাক্সেস, নেটওয়ার্ক অপারেশন ইত্যাদি।
- BrowserWindow নিয়ন্ত্রণ: Main Process অ্যাপ্লিকেশনের জন্য উইন্ডো তৈরি এবং তাদের বৈশিষ্ট্য নিয়ন্ত্রণ করে।
- IPC (Inter-Process Communication): Main Process এবং Renderer Process এর মধ্যে যোগাযোগের জন্য IPC ব্যবহার করা হয়।
- ইভেন্ট-ড্রিভেন আর্কিটেকচার: Main Process ইভেন্ট-ভিত্তিক কাজ সম্পাদন করে।
Main Process এর ভূমিকা
১. অ্যাপ্লিকেশনের জীবনচক্র নিয়ন্ত্রণ
Main Process Electron অ্যাপ্লিকেশনের শুরু (startup), বন্ধ (shutdown), এবং ব্যাকগ্রাউন্ড কার্যক্রম পরিচালনা করে। উদাহরণস্বরূপ:
- অ্যাপ চালু হলে উইন্ডো তৈরি করা।
- উইন্ডো বন্ধ হলে অ্যাপ সম্পূর্ণ বন্ধ করা।
const { app } = require('electron');
app.on('ready', () => {
console.log('অ্যাপ চালু হয়েছে!');
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
২. BrowserWindow তৈরি এবং নিয়ন্ত্রণ
Main Process অ্যাপ্লিকেশনের জন্য BrowserWindow তৈরি করে এবং সেটির বৈশিষ্ট্য নিয়ন্ত্রণ করে। প্রতিটি BrowserWindow এর জন্য একটি আলাদা Renderer Process চালু হয়।
const { BrowserWindow } = require('electron');
let mainWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
},
});
mainWindow.loadFile('index.html');
});
৩. সিস্টেম লেভেল কাজ পরিচালনা
Main Process Node.js এর ক্ষমতা ব্যবহার করে সিস্টেম লেভেলের কাজগুলো সম্পাদন করে। যেমন:
- ফাইল সিস্টেমে পড়া-লেখা করা।
- নেটওয়ার্কের সাথে যোগাযোগ।
- সিস্টেম মেনু এবং নোটিফিকেশন পরিচালনা।
const fs = require('fs');
fs.writeFile('example.txt', 'Hello, Electron!', (err) => {
if (err) throw err;
console.log('ফাইল সফলভাবে লেখা হয়েছে!');
});
৪. IPC (Inter-Process Communication)
Main Process এবং Renderer Process এর মধ্যে ডেটা আদান-প্রদানের জন্য IPC ব্যবহৃত হয়।
Main Process:
const { ipcMain } = require('electron');
ipcMain.on('message', (event, args) => {
console.log('Renderer থেকে বার্তা:', args);
event.reply('reply', 'Main Process থেকে উত্তর!');
});
Renderer Process:
const { ipcRenderer } = require('electron');
ipcRenderer.send('message', 'Hello from Renderer!');
ipcRenderer.on('reply', (event, args) => {
console.log(args);
});
৫. অ্যাপ্লিকেশনের মেনু এবং শর্টকাট তৈরি
Main Process অ্যাপ্লিকেশনের মেনু এবং কীবোর্ড শর্টকাট পরিচালনা করে।
const { Menu } = require('electron');
const menu = Menu.buildFromTemplate([
{
label: 'File',
submenu: [
{ label: 'Open' },
{ label: 'Save' },
],
},
]);
Menu.setApplicationMenu(menu);
Main Process এর গুরুত্বপূর্ণ বৈশিষ্ট্য সারসংক্ষেপ
- Lifecycle Management: অ্যাপ শুরু এবং বন্ধ করা।
- Window Management: একাধিক উইন্ডো তৈরি এবং পরিচালনা।
- System Integration: ফাইল সিস্টেম, নেটওয়ার্ক, এবং অন্যান্য সিস্টেম অপারেশন পরিচালনা।
- Inter-Process Communication: Renderer Process এর সাথে IPC ব্যবহার করে যোগাযোগ।
Main Process অ্যাপ্লিকেশনের কেন্দ্রীয় অংশ, যা ব্যাকএন্ড কাজ এবং Renderer Process এর কার্যক্রম সমন্বয় করে। এটি পুরো Electron অ্যাপ্লিকেশন কার্যকর করার মূল দায়িত্বে থাকে।
Read more