Electron'un yeri
Electron, web teknolojileri (HTML/CSS/JavaScript) ile cross-platform desktop uygulaması üretmenin en yaygın yolu. Visual Studio Code, Slack, Discord, Notion gibi büyük uygulamaların hepsi Electron tabanlı. 2026'da Electron olgun ama eleştirilen bir teknoloji — bellek tüketimi ve startup süresi tartışmalı yanları.AIOR'da Electron'u tercih ettiğimiz durumlar: web ekibi mevcut, hızlı iterasyon gerekli, native deneyimden küçük farklar kabul edilebilir, cross-platform hedefi var (Windows + macOS + Linux). Tipik kullanım: internal dashboards, geliştirici araçları, kompleks form-driven uygulamalar.
Electron mimari — Chromium + Node.js
Electron her uygulama için bir Chromium browser instance ve Node.js runtime çalıştırır. Bu mimari:- Web frontend Chromium'da render edilir.
- Node.js sayesinde filesystem, network, child process gibi sistem API'lerine erişilir.
- IPC (Inter-Process Communication) main process (Node.js) ve renderer process (Chromium) arasında.
Bu yapı web geliştirici için sezgisel ama bellek tüketimini artırıyor — minimum 50-100 MB her Electron uygulaması.
Performans gerçeği — eleştiriler haklı mı?
Electron'un performansı tasarım odaklı uygulamalarda native'e göre belirgin geride. Ancak optimizasyon ile büyük fark yaratılabilir:- Code splitting ve lazy loading — initial bundle minimal, on-demand yükleme.
- Native modules — performance-critical bölümler için (kriptografi, görüntü işleme).
- Hardware acceleration — GPU kullanımı renderer'da etkin.
- Background process management — gereksiz process'ler kapatılmalı.
- Memory leak monitoring — long-running uygulamalarda kritik.
AIOR'da Electron uygulamalarımızda Chrome DevTools Memory Profiler standart kullandığımız araç — bellek davranışı izlenir, leak'ler erken yakalanır.
Tauri — Electron'a alternatif
Tauri, Rust tabanlı Electron alternatifi. 2024-2025'te olgunlaştı, 2026'da production'da güvenle kullanılabiliyor. Native sistem webview kullanır (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK), bu sayede binary boyutu Electron'un 1/10'u, bellek tüketimi yarısı.AIOR'da Tauri'yi tercih ettiğimiz senaryolar: bellek-kritik uygulamalar, lightweight tools, distribution boyutu önemli olanlar. Ödünleşmeler: native webview davranış farkları (Safari'nin macOS, Edge'in Windows), Rust öğrenme eğrisi backend kısmı için.
Framework seçimi içeride
Electron uygulaması içinde herhangi bir frontend framework kullanılabilir. AIOR projelerinde tercihimiz:- React + Vite — varsayılan tercihimiz, hızlı build, geniş ekosistem.
- Vue + Vite — Vue deneyimi olan ekipler için.
- Svelte — bundle boyutu kritik projelerde.
Electron Forge veya electron-vite gibi scaffolding tooling'leri kullanıyoruz — kendi başına setup karmaşık.
Native modüller ve sistem erişimi
Electron Node.js'in tüm gücüne erişim sağlar:- File system operations (fs, path).
- Network (http, net).
- Native libraries (NAPI ile C/C++ binding).
- System notifications, tray icons, global shortcuts.
- Auto-update (electron-updater).
- Native dialogs (open file, save file, alert).
AIOR projelerinde özellikle endüstriyel müşteri uygulamalarında native sensor erişimi için NAPI modül yazıyoruz.
Auto-update sistemi
electron-updater 2026'da olgun standart. AIOR'da update sunucusu olarak self-hosted veya AWS S3 + signed releases tercih ediyoruz. Update kanalları (stable/beta/alpha) ile staged rollout.Distribution
electron-builder veya electron-forge ile çoklu platform packaging:- Windows: NSIS installer, MSI, AppX.
- macOS: DMG, signed + notarized app bundle.
- Linux: AppImage, deb, rpm, snap.
AIOR build pipeline'ı GitHub Actions üzerinde — Windows, macOS, Linux runner'ları paralel; signed binary üretimi otomatik.
Güvenlik kaygıları
Electron uygulamaları güvenlik açısından dikkat ister:- `nodeIntegration: false` — renderer'da Node.js API'ye doğrudan erişim engellenmeli.
- `contextIsolation: true` — main/renderer process izolasyonu.
- `webSecurity: true` — CORS ve mixed content koruma.
- Content Security Policy — XSS koruma.
- Preload script'leri minimal API expose etmeli.
AIOR projelerinde bu güvenlik ayarları varsayılan kabul ediliyor; renderer'a sadece IPC ile gerekli API'lar açılır.
Sonuç
Electron 2026'da web teknolojileri ile cross-platform desktop üretmenin en geniş çapta kullanılan yolu. Tauri gibi modern alternatifler bellek/boyut konularında daha iyi olsa da Electron'un ekosistem derinliği eşsiz. AIOR olarak Electron'u hızlı geliştirme + cross-platform hedef için tercih ediyor, Tauri'yi bellek-kritik özel projelerde değerlendiriyoruz. Sizin Electron uygulamanızda kullanıcı şikayeti en çok hangi konuda — bellek, startup süresi, yoksa update sıklığı mı?Where Electron fits
Electron is the most widespread way to build cross-platform desktop apps with web technologies (HTML/CSS/JavaScript). Visual Studio Code, Slack, Discord, Notion — these big apps are all Electron-based. In 2026, Electron is mature but criticised — memory consumption and startup time are its debated weak points.AIOR picks Electron when a web team exists, fast iteration is needed, small differences from native are acceptable, and cross-platform (Windows + macOS + Linux) is a target. Typical use: internal dashboards, developer tools, complex form-driven apps.
Electron architecture — Chromium + Node.js
Electron runs a Chromium browser instance and Node.js runtime per app. This architecture:- Web frontend renders in Chromium.
- Node.js provides access to filesystem, network, child process, etc.
- IPC (Inter-Process Communication) connects main (Node.js) and renderer (Chromium) processes.
The setup is intuitive for web developers but raises memory consumption — minimum 50–100 MB per Electron app.
The performance reality — are critics right?
Electron's performance is meaningfully behind native on design-focused apps. But with optimisation the gap can be substantial:- Code splitting and lazy loading — minimal initial bundle, on-demand loading.
- Native modules — for performance-critical sections (crypto, image processing).
- Hardware acceleration — GPU usage in the renderer.
- Background process management — close unneeded processes.
- Memory leak monitoring — critical in long-running apps.
On AIOR's Electron apps, Chrome DevTools Memory Profiler is our standard tool — memory behaviour is monitored, leaks caught early.
Tauri — alternative to Electron
Tauri is the Rust-based Electron alternative. Matured in 2024–2025, safely usable in production in 2026. Uses the native system webview (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK), so binary size is 1/10 of Electron's and memory use about half.AIOR picks Tauri for memory-critical apps, lightweight tools, and projects where distribution size matters. Trade-offs: native webview behaviour differences (Safari on macOS, Edge on Windows), Rust learning curve for the backend.
Framework choice inside
Any frontend framework can run inside Electron. Our preference at AIOR:- React + Vite — default; fast build, broad ecosystem.
- Vue + Vite — for teams with Vue experience.
- Svelte — when bundle size is critical.
We use scaffolding tooling like Electron Forge or electron-vite — manual setup is complex.
Native modules and system access
Electron exposes the full power of Node.js:- File system operations (fs, path).
- Network (http, net).
- Native libraries (C/C++ binding via NAPI).
- System notifications, tray icons, global shortcuts.
- Auto-update (electron-updater).
- Native dialogs (open file, save file, alert).
On industrial customer apps at AIOR we write NAPI modules specifically for native sensor access.
Auto-update system
electron-updater is the mature standard in 2026. AIOR prefers self-hosted or AWS S3 + signed releases as update servers. Update channels (stable/beta/alpha) for staged rollout.Distribution
electron-builder or electron-forge packages multi-platform:- Windows: NSIS installer, MSI, AppX.
- macOS: DMG, signed + notarised app bundle.
- Linux: AppImage, deb, rpm, snap.
AIOR's build pipeline runs on GitHub Actions — Windows, macOS, Linux runners in parallel; signed binary production automated.
Security concerns
Electron apps require attention to security:- `nodeIntegration: false` — direct Node.js API access in the renderer must be blocked.
- `contextIsolation: true` — isolation between main and renderer processes.
- `webSecurity: true` — CORS and mixed content protection.
- Content Security Policy — XSS protection.
- Preload scripts must expose minimal API.
These security settings are defaults on AIOR projects; only the necessary APIs are exposed to the renderer via IPC.