La GenAI, ça change quoi pour un•e dev mobile ?

le 29/07/2024 par Rémi Dormoy
Tags: Software Engineering, Mobile

Il est difficile de louper le sujet en 2024. L’IA générative (GenAI) est présente dans toutes les discussions, de toutes les conférences, tous les meetups et dans beaucoup de discours d’entreprises. Il est très probable que le sujet soit “en cours” dans votre entreprise, et il est possible que vous en ayez déjà par dessus la tête de la GenAI.

Par contre, il est moins probable que vous ayez une idée précise de ce que cela va vraiment apporter, ou changer à votre manière de travailler. Je me suis moi même posé la question, en tant que développeur mobile : “la GenAI, ça change quoi pour moi ?”.

Il y a bien sûr la GenAI en tant qu’assistant de développement, comme Github Copilot, sujet que nous avons déjà creusé chez OCTO, mais ce n’est pas en tant que “consommateur” de cette technologie que je vais me concentrer dans la suite de cet article. Je cherche à comprendre ce que la GenAI va changer dans les produits que je développe, et ce que ces changements vont introduire dans ma manière de produire des applications mobiles.

Vous saviez peut être que les agents conversationnels comme ChatGPT étaient basés sur des modèles transformeurs génératifs pré-entraînés ? Moi non, mais après tout, les développeurs•euses sont souvent passionnés de tech en général. Mais mon but n’est pas de changer de métier pour participer à créer des modèles de GenAI, ou d’en faire mon expertise principale. J’aime le développement mobile et je compte bien rester dans ce domaine.

Mais alors, le sujet me concerne t-il vraiment ? Au risque de spoiler et de simplifier la suite de cet article, je vais vous répondre oui ! Chez OCTO Technology, nous croyons beaucoup dans la pluridisciplinarité et les profils T-Shaped (voir partie 2 de cet article). Des développeurs•euses qui traversent les frontières de leur métier: qui sont capables de challenger des interfaces graphiques, qui connaissent le design d’API et peuvent échanger avec les équipes back… Il m’a donc semblé naturel que la GenAI nous pousse à ajouter une nouvelle corde à notre arc, ne restait plus qu’à trouver sous quelle forme !

La GenAI dans mes applications, qu’est-ce qu’elle peut apporter ?

Commençons par le commencement. Dans les prochains mois, de quelle manière la GenAI va-t-elle s’introduire dans nos applications ? Ou plutôt, comment allons-nous l’intégrer à nos applications ?
La réponse facile serait “un chatbot bien sûr !”. Sauf que les chatbots, on en a soupé, et puis la plupart des applications n’en ont pas forcément l’utilité. Heureusement, la GenAI, ce n’est pas que des chatbots. Là où elle est le plus efficace, c’est pour jouer le rôle d’une assistante. L’assistante de nos utilisateurs en l'occurrence. La grande différence entre cette nouvelle assistante et un chatbot, c’est qu’elle pourra faire des actions, et pas seulement parler avec nous !

Alors, quelles sont les principales compétences de notre nouvelle assistante ?

  • Créer une interface plus naturelle entre l’homme et la machine : notre assistante à deux facettes dans sa personnalité. Une facette humaine, qui parle et écoute comme nous. Et une facette machine, qui manipule des octets, et dialogue sous forme de touts petits courants électriques. Elle est donc dans une position idéale pour faire le lien entre nos utilisateurs et notre SI.
  • Rechercher des informations : contrairement à nos utilisateurs, elle aura une connaissance parfaite des capacités de nos applications ainsi que des données contenues à l’intérieur. Elle sera donc capable de rechercher à leur place des informations ou des fonctionnalités.
  • Classifier : étant capable de comprendre le langage humain, elle sera capable de trier, filtrer, ranger ou identifier les différents éléments présents dans une phrase ou un texte produit par un humain.
  • Modifier et reformuler : au-delà de comprendre le langage humain, elle est aussi capable de le parler. Ce qui lui permet de résumer des informations que nos utilisateurs n’auront pas l’envie (ou l’énergie ?) de lire en entier, mais aussi de proposer des adaptations pour des messages que nos utilisateurs écriront d’une plume hésitante. Elle sera aussi capable de reformuler un message d’information de notre SI pour le rendre personnalisé et unique à chaque affichage.

La liste de ces compétences n’est pas exhaustive. J’imagine que vous avez déjà entendu parler de génération d’image, de son ou de vidéo. Et je n’en parle pas ici. Je ne parle pas vraiment de génération de textes non plus d’ailleurs. Je les ai volontairement laissés de côté, pour différentes raisons. La première c’est que comme pour le cas du chatbot, je ne pense pas que ces fonctionnalités soient pertinentes dans beaucoup d’applications. La seconde, notamment pour le son ou les vidéos, est que ces fonctionnalités peuvent vite devenir coûteuses, et qu’à moins de savoir les monétiser (ce que je ne sais pas faire) elles ne seront probablement pas indiquées pour vous.

Qu’est-ce qui va changer dans mon produit ?

Chaque produit, chaque application va probablement être modifié d’une manière unique suite à la montée en puissance de la GenAI dans le monde numérique. Et à la vitesse à laquelle cette dernière évolue, il est seulement possible d’imaginer certains use-cases, ou plutôt certains types de use-cases, et la manière dont nos applications vont devoir s’adapter pour y répondre. Pour le moment, contentons nous de nous baser sur un fonctionnement de l’IA en tant qu'assistante de nos utilisateurs.


Notre use-case sera : en tant qu’utilisateur d’une application bancaire, je peux, depuis un champ de texte libre, utiliser toutes les fonctionnalités de mon application.

  • Ex 1 : en entrant “Je voudrais faire un virement à maman, de 150 euros, pour lui rembourser mes chaussures”, on serait dirigévers l’écran correspondant aux virements avec le montant pré-rempli à 150 euros, le bénéficiaire avec le compte de notre mère, et le motif avec “remboursement de mes chaussures”.
  • Ex 2 : en entrant “Je voudrais consulter les dernières opérations de mon compte courant”, on serait simplement dirigé vers la liste des opérations, ou l’écran de détail, du compte, suivant comment notre application est structurée.

Certains écrans vont se complexifier et concentrer beaucoup de fonctionnalités

Sur l’écran associé à cette fonctionnalité nous allons donc pouvoir atteindre toutes les autres fonctionnalités de l’application. En fonction du rendu souhaité, il est donc possible que de très nombreux use-cases puissent être appelés depuis cet écran.


Par rapport à un scénario plus commun, une fonctionnalité / un écran, que l’on trouve souvent dans nos applications, il faudra accorder une attention particulière à la structuration de notre “partie métier” pour qu’elle soit réutilisable. Cela dit, si vous avez déjà l’habitude d’utiliser des architectures hexagonales ou tout autre architecture ayant l’ambition de séparer les différentes couches réseau, domaine et présentation, ce ne sera rien de très nouveau ou très challengeant pour vous.

Si par contre, vous avez profité du développement d’un Back For Front pour utiliser une architecture minimaliste, et que vous souhaitez intégrer ce type de use-case, vous aurez surement besoin de prendre un peu de hauteur et de réfléchir à la manière dont vous voulez orchestrer votre parcours et votre logique métier.

Il vous faudra informer vos utilisateurs que certaines données affichées à l’écran sont potentiellement inexactes

Un gros point de différence entre utiliser des données venant d’une IA générative, et celles venant directement de votre SI, c’est qu’elles peuvent être inexactes ou inadaptées à la demande de votre utilisateur. Nous verrons plus bas les différents risques liés aux IA génératives mais c’est ce que l’on appelle des hallucinations.


Si nous reprenons le cas du virement vu au dessus, lorsque notre utilisateur demande “Je voudrais faire un virement à maman, de 150 euros, pour lui rembourser mes chaussures”, il est tout à fait possible que le virement soit pré-rempli avec le compte bancaire Crédit Agricole de votre mère alors que vous vouliez lui envoyer sur son compte BNP Paribas. Voire que le bénéficiaire ne soit pas du tout votre mère.

Il nous faudra donc informer et éduquer notre utilisateur par rapport aux risques d’erreurs que peut commettre l’assistante que nous lui mettons à disposition. La forme que prendra cette information dépendra de chaque fonctionnalité et de sa criticité, mais tous les champs remplis automatiquement devront pouvoir être identifiés et validés par notre utilisateur. Dans notre exemple, le montant ainsi que le compte bénéficiaire auront par exemple un niveau d’attention et/ou de validation plus important que celui du motif.

Une stratégie de monitoring et de tests à repenser

Comment savoir lorsque notre appel réseau à une API REST est en échec ? Rien de plus facile, son statut n’est pas compris entre 200 et 299 ! Vous avez sûrement déjà rencontré également des erreurs au niveau de la désérialisation des payloads, qui résultent également dans un écran d’erreur. Dans tous les cas, nous avions une frontière très limpide entre cas de succès et cas d’erreur. Ça marche et on affiche de la donnée, ou ça ne marche pas et on affiche une erreur. Pour créer des tableaux de suivis, faire des statistiques sur le bon fonctionnement de nos applications, rien de plus simple.

Avec les erreurs ou les hallucinations de la GenAI en revanche, c’est n’est plus la même paire de manches. Plus d'erreurs 400, plus de body impossible à désérialiser, simplement de mauvaises données. Au bon format, mais mauvaises. Et encore, dans certains cas, il peut même être compliqué de déterminer si le résultat est réellement “mauvais” ou bien si tout fonctionne comme prévu. Dès lors, comment savoir ce qui se passe dans notre application ?

Du côté de votre produit, de la même manière que sur l’éducation de nos utilisateurs, c’est d’ouvrir un moyen de remonter ces problèmes pour les gens qui les rencontrent. Après tout, si vous leur ouvrez de nouvelles fonctionnalités qui leur facilitent la vie, vos utilisateurs seront peut être dans un état d’esprit généreux et seront plus enclins que d’habitude à vous laisser des feedbacks.

Du côté du code, vous aurez besoin d’encadrer les réponses de la GenAI par du code “classique”, pour traiter et vérifier ses réponses. Il vous faudra également inventer et mettre à jour des jeux de tests et des frameworks d'évaluation de la performance de votre fonctionnalité. Puis les jouer régulièrement, de manière à pouvoir ajuster la précision de la réponse de votre modèle de GenAI. Sur l’exemple du dessus, vous pourriez par exemple avoir un jeu de tests contenant une dizaine de prompts pour chaque fonctionnalité, chacun associé à un résultat souhaité, et à une évaluation en fonction de la réponse réelle. En jouant tous les prompts à la suite avec une certaine configuration du modèle, vous pourriez obtenir une évaluation moyenne (qui sera forcément inférieure à 100% si le jeu de données est conséquent). Et ainsi observer au fur et à mesure de son évolution, la performance de votre fonctionnalité.

Une navigation plus directe, et la fin des tunnels d’écrans

Notre nouvelle assistante connaît toutes les fonctionnalités de notre application, nous l'avons vu. Et elle peut, à notre place, pré-remplir un grand nombre de données. Ainsi, certains parcours qui auparavant pouvaient nécessiter plusieurs écrans (comme par exemple un parcours de virement), ne comporteront dorénavant plus qu’un écran de confirmation ou de validation.

Le premier impact sera donc que toutes nos fonctionnalités devront maintenant être atteignables depuis n’importe où. Ou au moins depuis les écrans offrant l’aide de notre assistante. Il faudra veiller à ce que les impacts sur notre stack d’écran ne créent pas des navigations cassées, ou pire, sans porte de sortie.

Ensuite, en raison du pré-remplissage par notre assistante, il faudra penser des mécanismes de paramétrage de ces écrans pour pouvoir les initialiser avec des données déjà présentes, et non plus choisies par notre utilisateur.

Ni l’un ni l’autre de ces impacts n’est particulièrement nouveau dans l’univers du mobile. Après tout ce n’est pas très différent d’une logique de “deeplink” que l’on maîtrise déjà depuis de longues années.

Quelles compétences me seront utiles pour développer des applications “Powered by GenAI” ?

Alors d’accord, la GenAI ça concerne aussi le mobile, et ça va faire évoluer nos applications. Mais comment est-ce que le développeur•euse mobile doit évoluer pour ne pas rater le train de l’IA générative ?

Une compréhension de base de la technologie et du prompt engineering

Je l’ai dit plus haut, mais je le répète ici : je ne cherche pas à devenir data-scientist où à faire de la GenAI ma compétence principale. Mais l’environnement mobile est riche et complexe, et ce ne sera pas la première fois qu’une composante de cet environnement gagnera en importance au fur et à mesure qu’elle gagne en maturité. Nombre d’entre vous auront probablement commencé à travailler votre connaissance de l’accessibilité numérique (si ce n’est pas le cas je ne peux que vous encourager à le faire, la loi arrive !), ou votre connaissance du RGPD, des design system… Être développeur•euse mobile, ce n’est pas écrire du Kotlin, du Swift ou du Dart. C’est maîtriser tout ce qui touche à votre application.

Sans aller jusqu’à la connaissance du fonctionnement de notre modèle, nous aurons à minima besoin de comprendre comment et quand l’utiliser. Pour cela, je ne saurais trop vous conseiller de vous intéresser au prompt engineering ! C’est l’art de s'adresser à une IA générative de manière à obtenir la réponse la plus précise possible.

Pour cela, il vous faudra utiliser dans votre prompt (la chaîne de caractères que vous envoyez à l’IA) une combinaison aussi riche que possible d’attributs :

  • Un persona et une audience : un type de personne que l’IA essaiera d’incarner (persona) ou auquel elle essaiera de répondre (audience). Ex: “Répond moi comme si tu étais un professeur de français, et que j’étais un conducteur de bus non-voyant de 38 ans”
  • Un contexte : une suite d’informations précisant les conditions dans lesquelles la recherche est faite. Ex : “Ou devrais-je acheter mes chaussures ? Sache que j’ai un budget très élevé, qu’il pleut dehors et que demain est un jour férié”
  • Une perspective : un aspect de la réponse possible sur lequel vous voulez que l’IA se concentre. Ex : “Parle moi de la performance de la France à l’Euro, en insistant sur son latéral gauche”
  • … et plein d’autres attributs que vous trouverez dans des formations sur le sujet, données par des gens beaucoup plus compétents que moi !

Sans aller plus loin sur le prompt engineering, je vous conseille tout de même de le pratiquer au maximum. C’est une technique qui se perfectionne au fur et à mesure qu’on l’utilise, et à terme il vous sera utile dans beaucoup d’aspects de votre métier. Et mieux nous connaissons l’IA générative, plus nous serons capables d’identifier les fonctionnalités qui pourraient en tirer parti, et mieux nous serons armés pour la mettre en place.

Une connaissance des risques et des limites de la GenAI

Après les bénéfices, viennent aussi les risques et les limites. Dans son état actuel, elle est loin d’être parfaite. Si impressionnante qu’elle soit, l’IA générative, quelque soit le modèle que l’on utilise, nous impose des limites :

  • Les hallucinations : nous l’avons évoqué plus haut, mais la GenAI peut se tromper. Elle peut donner des informations incorrectes ou nous répondre hors-sujet.
  • Les biais : les modèles étant entraînés avec des données venant de notre société, il est possible qu’ils transmettent à notre IA des comportements biaisés, et il faudra être vigilant à ne pas propager à travers elle des discriminations voire des propos violents.
  • Les coûts : sans même évoquer les besoins en ressources massifs de l'entraînement des modèles, leur utilisation est coûteuse en termes de puissance de calcul (et donc financier). Nous devons être vigilants à ne pas sursolliciter notre infrastructure, ou faire exploser notre empreinte carbone numérique.
  • La protection des données : il est plus difficile de maîtriser l’utilisation des données personnelles de nos utilisateurs une fois que nous les avons transmises à une IA générative. Les employés de Samsung l’ont découvert à leurs dépends en utilisant ChatGPT. Il nous faudra en informer nos utilisateurs, et limiter au minimum les données transmises.

C’est en nous informant sur ces risques que nous pourrons garantir la meilleure intégration possible de l’IA générative pour nos utilisateurs, tout en limitant les risques qu’ils prendront à l'utiliser. N’oublions pas non plus que si pour le moment la législation en est encore à ses débuts, les régulateurs ont déjà fourni une première base de travail avec le European AI Act et ne comptent pas s’arrêter là.

Interactions naturelles et Edge AI, le smartphone est-il le device ultime pour la GenAI ?

Et au milieu de tout ça, qu’est-ce que nos applications mobiles peuvent bien avoir de plus que les autres ? Si vous êtes développeur•euse mobile comme moi, j’imagine que vous êtes habités par un léger (ou lourd) sentiment de chauvinisme sur le côté “premium” d’une application par rapport à un site web. Les premiers à intégrer les authentifications biométriques plutôt que les mots de passe ? C’était nous. Un accès rapide et sécurisé aux fonctions du téléphone, pour intégrer directement des pièces jointes via l’appareil photo par exemple ? Toujours nous. Alors pourquoi est-ce que cette expérience premium ne s’étendrait pas à la GenAI ? En creusant un peu, on trouve vite deux principales raisons d’y croire.

Notre smartphone possède tout ce qu’il faut pour discuter naturellement avec lui

Dit comme ça, ça parait assez évident. Notre téléphone contient tout ce qu’il faut pour échanger avec lui. D’ailleurs, sa fonction première, c’est de pouvoir communiquer à travers lui. Partant de là, communiquer avec notre assistante à travers notre smartphone paraît largement à portée. On peut lui “montrer” ce dont on veut lui parler grâce à la caméra, on peut lui indiquer où on se trouve grâce au GPS, et on pourra lui parler grâce à notre micro (c’est peut-être enfin le moment où nous pourrons réellement tirer parti de ce micro !). Et la cerise sur le gâteau, c’est qu’à priori, tout ça semblera naturel à nos utilisateurs puisqu’ils ont déjà l’habitude d’utiliser leur smartphone de cette manière !

L’Edge AI, une solution à la protection des données et à la consommation des ressources ?

L’Edge AI, pour ceux qui ne sont pas familiers avec le terme, c’est le fait de faire tourner un modèle d’IA directement là où elle est utilisée. Dans notre cas mobile, ce serait donc de faire tourner le modèle sur le téléphone de nos utilisateurs.

Nous l’avons vu plus haut : parmi les limitations et les risques de l’IA générative, nous avons d’une part une consommation forte des ressources lors de l’utilisation des modèles qui peut amener à surcharger nos serveurs. Et d’autre part des risques liés à la protection des données personnelles qui, une fois entrées dans notre IA, est plus difficile à garantir.

Avec l’Edge AI, nos données ne quittent plus le téléphone, et le risque de les égarer est très fortement réduit. Et le modèle étant exécuté sur le device de notre utilisateur, nos serveurs sont épargnés ! Attention tout de même à ne pas abuser des ressources offertes par le téléphone pour ne pas vider la batterie. À noter tout de même que les modèles prévus pour tourner sur nos smartphones sont plus petits et moins gourmands que les plus classiques côté serveurs comme ChatGPT ou Gemini.

Si jamais vous en doutiez, ne vous inquiétez pas, Android et iOS sont sur le coup : Google a déjà mis à disposition en preview fermée son SDK Android Gemini Nano, et de son côté Apple a annoncé pour l’automne la bêta d’Apple Intelligence, sa solution d’IA générative embarquée. Et comme pour tout ce qui touche à la GenAI, nous pouvons nous attendre à une évolution rapide des solutions proposées.

En résumé

Pour ceux d’entre vous qui ont eu le courage d’arriver jusque là, ou pour ceux d’entre vous qui ont abandonné et sauté directement à la conclusion, je vous partage en 4 points ce que je vous conseille de retenir :

  • La GenAI arrive dans les applications mobiles. C'est le moment d'être aux avant postes pour aider à réaliser des produits innovants pour nos utilisateurs.
  • Elle aura un impact sur nos façons de développer des applications mobiles, sans pour autant révolutionner ce qu’on fait aujourd’hui (ou du moins pas tout de suite).
  • En tant que développeur•euse, c’est notre responsabilité d’en connaître les forces et les faiblesses pour identifier les meilleures fonctionnalités et garantir une expérience sécurisée et fiable à nos utilisateurs.
  • Les smartphones, notamment via les applications, ont tout ce qu’il faut pour devenir LE moyen privilégié de contact entre la GenAI et ses utilisateurs.