Premiers tests d’Android Studio Bot l’IA de codage par Google

,

Android Studio Bot est un assistant de codage alimenté par l’intelligence artificielle qui est intégré à Android Studio. Il est conçu pour vous aider à être plus productif en répondant à vos questions sur le développement Android.

Voici les fonctionnalités d’Android Studio Bot :

  • Générer du code
  • Trouver des ressources
  • Apprendre les bonnes pratiques
  • Gagner du temps

Disponible depuis la dernière version canary d’Android Studio Iguana, cette fonctionnalité n’est pas encore disponible en France et aucune date de sortie, n’a été communiqué pour le moment.

Les paramètres de l’outil

Dans les paramètres de l’outil, il est possible de choisir si l’on souhaite transmettre la codebase de notre projet pour obtenir des résultats et suggestions plus pertinents, mais également d’activer ou désactiver l’auto-complétions par l’IA.

Les fonctionnalités de l’interface de saisie

Android Studio Bot est principalement utilisable via un champ de saisie pour soumettre vos requêtes.

Une fois la demande envoyée, le résultat apparaît et de multiples fonctionnalités apparaissent.

Au niveau du code générer, il est possible d’utiliser les outils suivants :

  • Copier le code
  • Insérer le code généré au niveau du curseur
  • Insérer le code généré dans un nouveau fichier
  • Tester le code en mode playground

Il est ensuite possible de visualiser à la fin du résultat, les sources qui ont permis à Studio Bot de répondre à la question.

Options via le Menu contextuel

Lorsque l’on sélectionne une partie de notre code dans l’éditeur d’Android Studio, il est possible d’accéder à des fonctionnalités supplémentaires via le menu contextuel. Il s’agit en réalité que de simples raccourcies pour “copier coller” le code et exécuter une commande dans l’interface de saisie vue juste avant.

Voici les fonctionnalités disponibles via le menu contextuel :

  • Documenter le code
  • Commenter le code
  • Expliquer le code
  • Suggérer des améliorations

Test de création d’une application avec l’IA Studio Bot

Dans le but de tester Android Studio Bot, je lui ai lancé le défi de réaliser une petite application qui affiche le nom et l’adresse d’un utilisateur en utilisant la clean architecture et Jetpack compose.

Création de la data class “Person”

Le résultat est pertinent et directement utilisable dans un projet.

Création d’un package dans la couche domaine

Studio Bot donne la procédure à suivre, mais ne crée pas le package dans le projet.

Création d’un modèle pour l’UI dans un package existant

Si l’on crée un package pour recevoir un modèle, et que l’on demande la création du modèle “PersonUi” à mettre dedans, c’est pareil Studio Bot va uniquement donner la procédure à suivre bien que le package existe.

Cependant le modèle “PersonUi” et les étapes à suivent sont correctes.

Création d’un mapper entre la couche domaine et UI

Maintenant que nous avons un modèle pour la partie domaine “Person” et UI “PersonUi”, faisons la demande d’un mapper “PersonUiMapper”.

Résultat pertinent et immédiatement utilisable.

Création des tests unitaires du mapper “PersonUiMapper”

Dans le but de rendre notre code plus qualitatif avec des tests unitaires, nous allons désormais demander la création d’un test unitaire via Studio Bot sur le mapper précédemment créer “PersonUiMapper”.

Le résultat de Studio Bot couvre effectivement à 100% la méthode “mapToUI”, il est donc utilisable et pertinent.

Création d’un Usecase, Repository, Data source and Service API

Bien que la requête semble complexe, Studio Bot a très bien répondu à la demande. Si l’on reprends la requête et qu’on lui demande également de faire de la clean architecture, alors le résultat est aussi très pertinent et avec 2-3 modifications utilisables :

Création d’un ViewModel

Nous allons maintenant demander à Studio Bot de générer un ViewModel, utilisant notre UseCase créer précédemment :

Le résultat est bon, mais Studio Bot a pris la décision d’ajout un paramètre “PersonId: Int” dans l’appel à mon UseCase, alors que celui-ci n’existe pas. On corrige à la main.

Création d’un écran Compose

Ça y est le moment est arrivé de nous occuper de l’affichage des données de notre modèle “PersonUi” via notre ViewModel. (Ma partie préférée en codage 😊)

Et là encore studio Bot exécute la demande avec une très bonne réponse. La seule erreur est que la Typography du Theme n’existe pas… Tant pis, il faudra faire la modification à la main.

Création d’une activité

Maintenant que notre vue Compose est créé avec son ViewModel, nous allons maintenant demander la création d’une Activity pour afficher notre résultat :

Studio Bot sort le code de l’Activity et son ajout de l’AndroidManifest avec succès.

Résultat

Et voilà le résultat, juste en corrigeant quelques erreurs d’imports ou de codage 😊

Pour aller plus loin, j’ai voulu modifier l’écran en compose, et je me suis aperçu que Studio Bot ne prends pas en compte les modifications faites directement dans le code et sort des réponses enrichie des précédentes questions.

J’ai aussi testé l’auto complétion par l’IA, mais je n’ai pas eu de résultat très intéressant.

Conclusion

Points forts ✅

  • Résultats pertinents
  • Interfaces claires
  • Simple d’utilisation
  • Bien pour avoir un aperçu d’une implémentation
  • Citations et redirections vers les sources

Points faibles 🛑

  • Ne prends pas en compte les paramètres du projet (minSDK, max SDK, AndroidManifest ect)
  • Ne prends pas en compte les fichiers du projet
  • Erreurs lors de la création des fichiers (Imports)
  • Il faut savoir ce que l’on veut

Studio Bot est un outil très prometteur qui remplit tous ses objectifs, mais cependant qui est très loin de pouvoir générer une application tout seule avec toutes les bonnes pratiques du développement mobile sur Android, enfin pour le moment ..

Personnellement, je ne suis pas sur que j’utiliserais cet outil très souvent pour le moment, car je passe plus de temps à décrire mon besoin à Studio Bot, que décrire directement le code moi-même. Mais j’ai hâte de voir comment il va évoluer dans le futur😊