Main ve Renderer Process: Electron.js'in Temelleri


Electron.js, hem web hem de masaüstü uygulama geliştirmeyi kolaylaştıran güçlü bir çerçevedir. Uygulama mimarisi, iki temel bileşen olan Main ve Renderer süreçlerinden oluşur. Bu makalede, bu süreçlerin ne olduğu, nasıl çalıştığı ve Electron uygulamalarında nasıl kullanılacağı detaylandırılacaktır.

Main Süreci Nedir?

Main süreci, Electron uygulamanızın ana kontrol merkezidir. Kullanıcı arayüzü yüklenmeden önce çalışır ve uygulama pencerelerini yönetir. Ayrıca, arka planda çalışan tüm Renderer süreçleriyle iletişim kurar. Main sürecindeki temel özelliklerden biri, Node.js'nin kullanıma açık olmasıdır.

Main Sürecinde Neler Yapılır?

  • Uygulama pencere yönetimi
  • Renderer süreçleri ile iletişim
  • Yerel sistem kaynaklarına erişim
const { app, BrowserWindow } = require('electron');

let mainWindow;

app.on('ready', () => {
    mainWindow = new BrowserWindow({
        width: 800,
        height: 600
    });
    mainWindow.loadFile('index.html');
});

Renderer Süreci Nedir?

Renderer süreci, kullanıcı arayüzünün oluşturulmasında ve görüntülenmesinde kritik bir rol oynar. Her bir pencere için ayrı bir Renderer süreci bulunur. Bu süreç, web teknolojileri (HTML, CSS, JavaScript) kullanarak kullanıcı arayüzünü oluşturur ve günceller.

Renderer Sürecinin Temel İşlevleri

  • HTML ve CSS ile arayüz oluşturma
  • JavaScript ile etkileşim
  • Ağ çağrıları yapma
const { ipcRenderer } = require('electron');

document.getElementById('myButton').addEventListener('click', () => {
    ipcRenderer.send('button-clicked');
});

Main ve Renderer Süreçleri Arasındaki İletişim

Main ve Renderer süreçleri arasındaki iletişim, IPC (Inter-Process Communication) aracılığıyla gerçekleşir. Bu, süreçler arası veri alışverişini sağlamak için önemlidir.

const { ipcMain } = require('electron');

ipcMain.on('button-clicked', (event) => {
    console.log('Butona tıklandı!');
});

Sonuç olarak, Main ve Renderer süreçleri, Electron tabanlı uygulamaların işleyişini sağlamak için tercihen tasarlanmış iki kritik bileşendir. Bu süreçlerin nasıl çalıştığını anlamak, daha etkili ve verimli uygulamalar geliştirmenin anahtarıdır. Geliştiriciler, bu süreçleri dikkate alarak tasarımlarını daha iyi bir hale getirebilirler.