Electron.js : Le web sur le desktop
Electron.js permet de créer des applications desktop en utilisant les technologies web (HTML, CSS, JavaScript). Des applications populaires comme VS Code, Slack et Discord sont construites avec Electron.
Architecture d'une application Electron
Une application Electron comporte deux processus : le Main Process (Node.js, accès système) et le Renderer Process (Chromium, interface utilisateur). La communication entre les deux se fait via IPC (Inter-Process Communication).
Intégration avec React
Combiner Electron avec React et Vite donne un excellent workflow de développement. Le renderer process charge simplement l'application React comme dans un navigateur.
Accès aux APIs système
Electron expose des APIs natives : système de fichiers, notifications, tray icon, menus natifs, protocoles personnalisés. Ces fonctionnalités sont impossibles dans un navigateur web standard.
Sécurité
La sécurité d'Electron nécessite une attention particulière : désactiver l'intégration Node.js dans le renderer, utiliser le context bridge pour exposer des APIs sécurisées, et valider toutes les entrées utilisateur.
Distribution avec Electron Builder
Electron Builder automatise la création des installateurs pour Windows (.exe, .msi), macOS (.dmg) et Linux (.AppImage, .deb). La signature de code est nécessaire pour éviter les avertissements de sécurité OS.
Auto-update
La mise à jour automatique via electron-updater permet de distribuer des mises à jour transparentes, comme une application mobile. Les utilisateurs n'ont plus besoin de réinstaller manuellement.
Conclusion
Electron.js est la solution idéale pour les développeurs web souhaitant créer des applications desktop sans apprendre un nouveau langage. Bien qu'il ait une réputation de consommation mémoire élevée, les dernières versions ont considérablement amélioré les performances.
