Electron - Créer une application native en HTML/JS
Créer une application native multi OS est devenu très simple grâce à Electron. En effet plus besoin d’apprendre le C, C++, Java… il est désormais possible de développer votre application avec les technologies du Web.
Présentation
Initialement développé pour l’éditeur Atom, l’outil de Github a été utilisé pour créer des applications par des entreprises comme Microsoft, Facebook, Slack et Docker.
Pour fonctionner, Electron utilise NodeJS et Chromium et fourni une API afin de gérer les fenêtres, communiquer avec le système…
Préparation
La première chose à faire est de démarrer un projet NPM.
Installez maintenant Electron en tant que dépendance de développement
Nous allons maintenant structurer notre projet, créez les répertoires suivant :
- dist : contiendra les fichiers natif (Windows, Linus, MacOS)
- src : contiendra le code source de notre application
Créez ensuite les fichiers suivant :
- /main.js : c’est le fichier central, celui qui va générer l’application electron
- /src/index.html : la page d’accueil de notre application
- /src/app.js : le code javascript de notre application sera stocké ici
- /src/app.css : le style css de notre application sera stocké ici
Attention : dans votre fichier package.json
la valeur de la clé main
doit pointer sur main.js
"main": "main.js",
Allons y les z’amis
Nous allons commencer par un exemple des plus basique
main.js
Le code du fichier main.js
est issu du tuto démarrage rapide
index.html
Notre super application nous permettra de générer un nombre aléatoire entre 0 et 100 (oui monsieur). On aura même un bouton pour quitter l’application (oui car le alt + F4
c’est marrant 2 secondes mais pas plus).
app.css
On ajoute un style tout droit sorti du futur
app.js
Et maintenant on code notre application révolutionnaire.
On teste
Pour tester rien de plus simple, il suffit de lancer la commande electron .
Si tout va bien, l’application devrait se lancer en mode fenêtre. Bien sur le bouton “Fermer l’application” ne fonctionne pas (car la fonctionnalité n’a pas été codé).
On passe à la vitesse supérieure (pas trop quand même)
Fermer l’application
Pour fermer l’application nous allons utiliser l’API d’electron afin de faire communiquer l’objet window
avec notre fichier main.js
.
Je vous invite donc à modifier le fichier app.js
comme ceci.
Maintenant si vous relancez electron et que vous cliquez sur “Fermer l’application” … L’application se ferme #magie
Plein écran
Si vous voulez passer votre application en plein écran, vous pouvez modifier le fichier main.js
comme ceci :
Compiler
Bon voilà notre application est terminée, elle est belle et sans bug, comment on compile?
Un outil fait tout le travail (ou presque), il s’agit d’electron-packager
Il faut dans un premier temps l’installer
Et enfin on lance la compilation
La commande va compiler le dossier courant .
dans le répertoire dist
, va le nommer demo
, le compilera pour toutes les plateformes --all
, et enfin forcera la recompilation si le projet existe déjà --overwrite
.
Vous pouvez maintenant trouver dans le répertoire “dist” l’ensemble des déclinaisons de votre projet pour les différents systèmes d’exploitations.
Aller plus loin
- Lire la documentation
- Démarrer vos projets grâce aux Boilerplates de la communauté (react, vuejs…)