Introduction :
Créer une application avec Typescript et Electron permet aux développeurs de concevoir des applications de bureau multiplateformes en utilisant des technologies web comme HTML, CSS et JavaScript. Grâce à la puissance de Typescript, qui améliore la robustesse du code, et Electron, qui permet de transformer une application web en logiciel de bureau, vous pouvez créer des applications performantes tout en réutilisant vos compétences de développeur web. Si vous souhaitez en savoir plus sur les meilleures pratiques de développement applicatif, consultez ce guide sur le développement applicatif.
Quels sont les prérequis pour créer une application avec Typescript et Electron ?
Installation de Node.js et Typescript
Avant de commencer, assurez-vous d’avoir Node.js installé sur votre machine. Node.js est indispensable pour gérer les dépendances du projet via npm (Node Package Manager). Vous pouvez télécharger et installer la version stable de Node.js depuis le site officiel. Si vous travaillez dans un environnement agile, vous pouvez également envisager d’explorer la méthode du Sprint 0, souvent utilisée pour préparer les bases d’un projet avant de démarrer le développement.
Ensuite, installez Typescript globalement avec la commande suivante :
bashCopier le codenpm install -g typescript
Cette installation vous permet de compiler des fichiers Typescript (.ts) en JavaScript (.js).
Installation d’Electron et création du projet de base
Une fois Node.js et Typescript installés, vous pouvez initialiser votre projet en créant un nouveau dossier et en utilisant les commandes suivantes :
bashCopier le codemkdir electron-ts-app
cd electron-ts-app
npm init -y
Ensuite, installez Electron en tant que dépendance de développement :
bashCopier le codenpm install electron --save-dev
Cela ajoutera Electron à votre projet, permettant de le transformer en application de bureau.
Si vous travaillez dans une agence spécialisée dans la création d’applications mobiles comme celle-ci, cette étape sera souvent réalisée par les équipes de développement, avec une forte attention portée à l’expérience utilisateur.
Configuration de Typescript pour le projet
Il est maintenant temps de configurer Typescript en créant un fichier tsconfig.json
à la racine du projet. Ce fichier indique à Typescript comment compiler votre code. Utilisez la commande suivante :
bashCopier le codetsc --init
Puis, configurez le fichier pour que votre code soit compatible avec Electron en définissant le dossier de sortie, les options de module, et en activant des options comme strict
pour une meilleure gestion des types.
Pour une meilleure gestion de vos fonctionnalités en amont, vous pouvez également intégrer des processus agiles comme une feature team qui facilitent la collaboration entre vos développeurs et les équipes produits.
Comment configurer Electron avec Typescript ?
Configuration du fichier tsconfig.json
Le fichier tsconfig.json
doit être ajusté pour garantir que Typescript compile correctement votre code pour Electron. Voici un exemple de configuration de base :
jsonCopier le code{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"outDir": "./dist",
"strict": true
},
"include": ["src/**/*"]
}
Cela indique que tous les fichiers Typescript dans le dossier src
seront compilés en JavaScript dans le dossier dist
.
Si vous envisagez d’intégrer des solutions basées sur la blockchain, Electron peut également s’intégrer parfaitement dans vos projets. Pour une consultation plus approfondie de cette technologie, visitez notre page dédiée.
Création du fichier main.ts
(point d’entrée)
Electron utilise un fichier principal qui sert de point d’entrée à l’application. Créez un fichier src/main.ts
et définissez la création de la fenêtre principale de l’application comme suit :
typescriptCopier le codeimport { app, BrowserWindow } from 'electron';
let mainWindow: BrowserWindow;
app.on('ready', () => {
mainWindow = new BrowserWindow({
width: 800,
height: 600,
});
mainWindow.loadFile('index.html');
});
Cela crée une fenêtre de 800×600 qui charge un fichier HTML lorsque l’application démarre.
Compilation du projet Typescript vers JavaScript
Pour compiler le projet, exécutez la commande suivante :
bashCopier le codetsc
Cela traduira votre fichier Typescript en JavaScript, prêt à être exécuté par Electron. Vous pouvez maintenant lancer votre application en exécutant la commande :
bashCopier le codenpm start
Comment créer la première fenêtre Electron avec Typescript ?
Création de la fenêtre principale avec BrowserWindow
Le module BrowserWindow
est au cœur d’Electron pour la création de fenêtres. Vous pouvez définir plusieurs propriétés pour personnaliser la fenêtre, comme sa taille, son icône ou même son comportement. Par exemple :
typescriptCopier le codemainWindow = new BrowserWindow({
width: 1024,
height: 768,
backgroundColor: '#ffffff',
icon: 'path/to/icon.png'
});
Gestion des options de la fenêtre (taille, icône, couleur de fond)
L’API Electron permet de nombreuses personnalisations, comme le réglage de la couleur de fond de la fenêtre ou l’ajout d’une icône spécifique. Vous pouvez également définir si la fenêtre doit être redimensionnable ou non :
typescriptCopier le codemainWindow = new BrowserWindow({
width: 1024,
height: 768,
resizable: false,
backgroundColor: '#282c34'
});
Affichage d’un fichier HTML dans la fenêtre
Pour afficher du contenu dans la fenêtre Electron, vous devez charger un fichier HTML. Cela se fait via la méthode loadFile()
ou loadURL()
si vous souhaitez afficher un site distant :
typescriptCopier le codemainWindow.loadFile('index.html');
Si vous développez des solutions en mode lean startup, cette approche rapide et flexible vous permettra de tester des versions MVP efficacement. Pour en savoir plus, consultez notre article sur la méthode Lean Startup.
Comment personnaliser les menus Electron avec Typescript ?
Ajout de menus par défaut et menus personnalisés
Electron propose des menus par défaut. Cependant, vous pouvez personnaliser ceux-ci pour répondre aux besoins spécifiques de votre application :
typescriptCopier le codeimport { Menu } from 'electron';
const template = [
{ label: 'Fichier', submenu: [{ label: 'Quitter', role: 'quit' }] },
{ label: 'Édition', submenu: [{ label: 'Copier', role: 'copy' }] }
];
const menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
Si votre application inclut des composants UX complexes, n’oubliez pas de consulter les outils UX Design disponibles ici, qui peuvent enrichir l’interface de votre application.
Création d’événements pour les menus
Vous pouvez également ajouter des événements pour les actions du menu. Par exemple, vous pouvez déclencher une fonction lorsque l’utilisateur clique sur un élément du menu :
typescriptCopier le codesubmenu: [
{
label: 'Rafraîchir',
click() { mainWindow.reload(); }
}
]
Utilisation des menus natifs en fonction des plateformes (Windows, macOS)
Electron propose de définir des menus adaptés à chaque système d’exploitation. Par exemple, sous macOS, vous pourriez vouloir que l’application reste ouverte même lorsque toutes les fenêtres sont fermées.
Comment gérer du code spécifique aux plateformes dans Electron avec Typescript ?
Utilisation de process.platform
pour identifier les systèmes d’exploitation
Electron permet d’adapter le comportement de l’application en fonction de la plateforme utilisée, via la variable process.platform
. Par exemple :
typescriptCopier le codeif (process.platform === 'darwin') {
// Comportement spécifique pour macOS
}
Si votre application contient des éléments sensibles nécessitant des tests rigoureux, n’oubliez pas d’effectuer un test de non-régression. Vous pouvez trouver plus d’informations ici.
Personnalisation des comportements pour macOS, Windows, et Linux
Sur macOS, les applications continuent de fonctionner même après la fermeture des fenêtres. Pour gérer cela, vous pouvez écouter l’événement window-all-closed
:
typescriptCopier le codeapp.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
Création de fonctionnalités spécifiques à chaque système
Electron permet de créer des conditions pour adapter votre application aux spécificités de chaque système, qu’il s’agisse des raccourcis clavier, des menus ou du comportement général.
Comment packager et distribuer une application Electron avec Typescript ?
Installation et configuration de electron-packager
Pour packager votre application et la distribuer, installez electron-packager
:
bashCopier le codenpm install electron-packager --save-dev
Cela vous permet de générer un fichier exécutable pour chaque plateforme. Si vous avez des clients potentiels souhaitant tester votre produit, vous pouvez faciliter la distribution de votre application grâce à TestFlight, particulièrement utile pour les versions iOS.
Génération des fichiers .exe
ou .app
pour une distribution locale
Ajoutez un script de packaging dans votre fichier package.json
:
jsonCopier le code"scripts": {
"build": "electron-packager . MyApp --platform=win32 --arch=x64"
}
Exécutez ensuite la commande suivante pour créer un exécutable :
bashCopier le codenpm run build
Ajout de la fonctionnalité d’auto-update avec electron-builder
Pour ajouter la fonctionnalité d’auto-update, installez electron-builder
et configurez-le dans votre projet. Vous pourrez ainsi déployer des mises à jour sans intervention des utilisateurs.
Quels frameworks Javascript peut-on utiliser avec Electron et Typescript ?
Intégration de React avec Typescript et Electron
Vous pouvez intégrer React pour gérer l’interface utilisateur tout en utilisant Typescript pour améliorer la gestion des composants et des états. Pour une définition plus détaillée de React, consultez cet article sur React.
Utilisation de Vue.js avec Typescript et Electron
Vue.js est également un excellent choix pour construire une interface utilisateur réactive, en particulier avec Typescript pour une meilleure gestion des types.
Avantages de l’utilisation de frameworks dans Electron
Les frameworks permettent de structurer et de rendre l’application plus modulaire. Ils offrent une meilleure gestion des composants et facilitent le développement à grande échelle.