Automatiser c’est (pas) tricher

Article

Métier

Vous en avez marre de répéter sans cesse les mêmes tâches ? 

L’automatisation est la solution ! 

Découvrez dans cet article, comment déléguer les tâches répétitives à la machine pour gagner en productivité et en efficacité. 

Mais attention, il ne s’agit pas de remplacer les développeurs, mais de les rendre plus performants, tout en permettant de se concentrer sur des tâches à plus forte valeur ajoutée 😉. 

Un bref historique de l’automatisation 

L’automatisation n’est pas un concept nouveau. 

Dès l’Antiquité, avec les rondes d'Alexandrie et les horloges mécaniques, jusqu’aux avancées révolutionnaires comme la machine à vapeur de James Watt, les premières étapes de la mécanisation étaient déjà en place. 

Au fil des siècles, des inventions comme le télégraphe de Samuel Morse, le fordisme des années 1920, et les premiers robots tels qu’Anatole en 1952 ont marqué des jalons importants. 

Aujourd’hui, nous parlons de machine learning et d’Internet des objets (IoT), avec un regard vers un avenir peut-être plus complexe et automatisé, parfois évoqué sous le nom de “Skynet”. 

Un exemple pratique : l’automatisation dans la restauration 

Prenons l’exemple d’un restaurant pour illustrer les bénéfices de l’automatisation. La question clé est de savoir où réside notre valeur ajoutée. 

Par exemple, un chef cuisinier apporte une valeur dans la création et le goût des plats. Cependant, certaines tâches comme l’achat des ingrédients, la découpe ou encore la vaisselle peuvent être automatisées. 

Un système de livraison fiable remplace aisément le marché quotidien, des machines peuvent effectuer les découpes, et des bras automatisés pourraient prendre en charge la cuisson et le service. 

En intégrant ces solutions d’automatisation, le personnel du restaurant peut se focaliser sur ce qui compte vraiment : l’innovation et l’amélioration continue de la qualité des plats et du service 🤭. 


Automatisation et développement logiciel 

Dans le domaine informatique, la même logique s’applique. 

La vraie valeur ajoutée des développeurs réside dans leur expertise technologique, leur conseil aux clients et l’adaptation des technologies aux besoins spécifiques. 

Par exemple, générer du code à partir de captures d'écran fournies par les designers peut être pris en charge par des intelligences artificielles comme ChatGPT. Les développeurs peuvent alors se concentrer sur l'optimisation du code et les spécificités techniques. 

La génération automatique de code pour des projets initiaux, qui pouvait prendre plusieurs jours, peut désormais être réduite à une demi-journée grâce à des outils de génération comme Excel et des starter kits. 

Le futur de l’automatisation 

L’objectif ultime est de simplifier au maximum les tâches répétitives pour se concentrer sur celles qui apportent une véritable valeur ajoutée. 

Par exemple, des outils de génération de code peuvent être perfectionnés pour gérer non seulement les aspects fonctionnels, mais aussi esthétiques d’une application, comme les couleurs, les images et les logos. Cela permet de libérer du temps pour se concentrer sur le développement fonctionnel et la conception. 

Partie technique : créer un plugin pour Android Studio 

L’objectif de cette partie est de vous montrer comment créer un plugin pour Android Studio avec IntelliJ IDEA. Ce plugin permet de générer automatiquement des fichiers spécifiques et de modifier des configurations d’injection de dépendances dans vos projets Android. Voici un guide étape par étape : 



  1. Configuration de l’environnement de développement (IDE) 

Pour commencer, assurez-vous d’avoir installé “IntelliJ IDEA”, c’est l’environnement recommandé pour le développement de plugins pour Android Studio. Ajoutez ensuite le plugin ‘Plugin Devkit’, il est nécessaire pour développer des extensions pour ‘IntelliJ IDEA’ et Android Studio. 


  1. Création du projet plugin

  • Créez un nouveau projet avec IntelliJ IDEA en sélectionnant le type de projet Plugin 

  • Modifiez le fichier ‘build.gradle.kts’ pour inclure les dépendances et plugins nécessaires : 

1. plugins {
2.    id("java")
3.    id("org.jetbrains.kotlin.jvm") version "1.9.21"
4.    id("org.jetbrains.intellij") version "1.16.1"
5. }


1. // Configure Gradle IntelliJ Plugin
2. // Read more: https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html
3. intellij {
4.     type.set("AI") // Target IDE Platform
5.     version.set("2023.1.1.26")
6. 
7.     plugins.set(listOf("org.jetbrains.android"))
8. }

*’type.set’(“AI”) : indique que le plugin est destiné à Android Studio

*’version.set’ (“2023.1.1.26”) : définit la version cible d’Android Studio

*’plugins.set’ (list0f(“org.jetbrains.android”)) : ajoute le support pour les projets Android


  1. Configuration du Plugin avec “plugin.xml”

Le fichier ‘plugin.xml’ situé dans ‘ressources/META-INF/’ contient la configuration de base de votre plugin notamment ses dépendances et ses actions : 

1. <!-- Product and plugin compatibility requirements.
2.      Read more: https://plugins.jetbrains.com/docs/intellij/plugin-compatibility.html -->
3. 
4. <depends>com.intellij.modules.platform</depends>
5. <depends>org.jetbrains.android</depends>
6. <depends>com.intellij.modules.androidstudio</depends>


  1. Ajout d’une nouvelle action 

Pour ajouter des fonctionnalités spécifiques comme la génération de fichiers ou des modifications de code, nous définissons une action dans ‘plugin.xml’. 

1. <actions>
2.     <group id="Amiltone" text="Amiltone" popup="true"> 
3.         <add-to-group group-id="NewGroup" anchor="first"/> <!-- NewGroup is the menu when you click on "New" -->
4.   </group>
5.    <action id="com.amiltone.generalplugin.generalplugin.kotlin.mvvm.MVVMAndroidFileAction"
6.             class="com.amiltone.generalplugin.generalplugin.kotlin.mvvm.MVVMAndroidFileAction" text="MVVM"
7.             description="Add MVVM files">
8.         <add-to-group group-id="Amiltone" anchor="first"/>
9.     </action>
10. </actions>

*’<group>’ : crée un sous-menu “New” nommé “Amiltone” 

*’<action>’ : définit une action nommée “MVVM3 pour générer des fichiers. 


  1. Création de la classe action 

La classe ‘MVVMAndroidFileAction’ est le point d’entrée de votre plugin, ce qui se passe lorsque l’utilisateur utilise l’action dans le menu. 

1. class MVVMAndroidFileAction : AnAction() {
2. 
3.     override fun actionPerformed(event: AnActionEvent) {
4.         val project: Project = event.project ?: return
5. 
6.         var directory = event.dataContext.getData("virtualFile") as? VirtualFile ?: return
7. 
8.        // Créez deux fichiers
9. 
10.         try {
11.             val app = ApplicationManager.getApplication();
12.             val dialog = MVVMDialogWrapper(project)
13.             if (dialog.showAndGet()) {
14. 
15.                 val featureName = dialog.featureName
16.                 val hasViewModel = dialog.hasViewModel
17.                 val moduleFilePath = dialog.moduleFilePath
18.                 val paparaziFolderPath = dialog.paparaziFolderPath
19. 
20.                 app.runWriteAction {
21.                     //TODO do your actions here
22.                 }
23.            }
24.         }
25.     }
26. }

*’MVVMDialogWrapper’ : affiche une fenêtre pop-up pour récupérer des paramètres nécessaires 

*’runWriteAction { ... }’ : permet d'exécuter des actions de modification de fichiers de manière sécurisée. 


  1. Interface utilisateur : pop-up et sauvegarde des données 

La classe ‘MVVMDialogWrapper’ est utilisée pour afficher une fenêtre de dialogue qui permet à l’utilisateur d’entrer des paramètres. Les données saisies peuvent ensuite être sauvegardées pour une utilisation future via un fichier de préférences. 

En suivant ces étapes, vous pourrez créer un plugin pour Android Studio qui automatise des tâches répétitives telles que la génération de fichiers ou l’ajout de code spécifique. Cette approche met en avant les bénéfices de l’automatisation dans le développement Android, en démontrant qu’il est possible de créer des outils sur mesure qui s'intègrent directement dans votre environnement de travail. 

Conclusion 

L’automatisation, souvent mal comprise ou perçue comme une menace pour l'emploi, se révèle être un outil essentiel pour le progrès et l’innovation, tant dans le secteur de la technologie que dans d’autres domaines. 

Elle ne remplace pas les talents humains mais les amplifie, en leur permettant de se libérer des tâches répétitives et chronophages pour se concentrer sur des activités à forte valeur ajoutée 💪🏼. 

Chez Amiltone, nous sommes convaincus que l’automatisation est un allié précieux pour notre quête d’excellence et d’innovation. Elle nous permet de redéfinir nos métiers et de créer des solutions toujours plus avancées pour répondre aux besoins de nos clients dans un monde en constante évolution 😊.

Partager cet article

Partager cet article

Partager cet article

Nos derniers articles et livres blancs