De WordPress à Google Play : comment j’ai créé l’application Festi Breizh

Peut-on créer une application mobile avec l’IA sans repartir de zéro ? C’est l’expérience que j’ai menée avec Festi Breizh, en partant d’un site WordPress existant jusqu’à une véritable application Android distribuée sur Google Play.

Comment j’ai créé Festi Breizh avec ChatGPT, Codex, WordPress et Expo, jusqu’à la publication de l’application Android sur Google Play.

Il y a encore quelques semaines, Festi Breizh était avant tout un site WordPress : festival-bretagne.fr, un annuaire consacré aux festivals et aux fêtes.

Aujourd’hui, Festi Breizh est aussi devenue une véritable application Android.

L’objectif n’était pourtant pas de reconstruire le site sous forme d’application. Je voulais quelque chose de beaucoup plus simple : permettre à quelqu’un de sortir son téléphone et de répondre rapidement à une question :

Quels sont les festivals qui arrivent près de chez moi ?

Cette simplicité apparente a nécessité plusieurs étapes : transformer WordPress en source de données, construire une API, développer l’application avec Expo, gérer la géolocalisation, produire un APK, puis préparer une véritable version Android distribuée par Google Play.

Et, comme souvent dans mes expérimentations actuelles, une grande partie du travail a été réalisée avec ChatGPT et Codex.

WordPress reste au centre

L’une des premières décisions a finalement été l’une des plus importantes : ne pas dupliquer la base de données des festivals.

Les festivals sont déjà enregistrés et administrés dans WordPress. On y trouve notamment leurs dates, leur commune, leur département, leurs coordonnées géographiques, leur image et différentes informations pratiques.

Pourquoi recréer tout cela dans une deuxième base destinée à l’application ?

WordPress reste donc le back-office de Festi Breizh.

L’application mobile ne gère pas elle-même les festivals. Elle demande simplement à WordPress les informations dont elle a besoin.

Cela présente un avantage considérable : lorsqu’un festival est mis à jour sur le site, il n’est pas nécessaire de publier une nouvelle version de l’application sur Google Play.

Une API spécialement conçue pour l’application

Il fallait cependant éviter que l’application dépende directement de toute la complexité interne du site WordPress.

Nous avons donc créé un petit plugin dédié : Festi Breizh API.

Il expose une route REST publique en lecture seule permettant à l’application de récupérer les prochains festivals sous une forme volontairement simple.

Pour chaque festival, l’application peut notamment recevoir son titre, ses dates, sa ville, son département, son adresse, ses coordonnées géographiques, son image, son résumé et l’adresse de sa page sur le site.

Le principe est important : l’application ne possède aucun droit d’écriture sur WordPress.

Elle consomme des données préparées pour elle.

Cette architecture permet également de faire évoluer indépendamment le site, l’API et l’application.

Une application volontairement simple

Je ne voulais surtout pas transformer Festi Breizh en usine à gaz.

L’écran principal privilégie donc quelques usages immédiats.

L’utilisateur peut consulter les prochains festivals, saisir un numéro de département pour concentrer la recherche sur une zone précise ou utiliser « Autour de moi » afin d’exploiter la position du téléphone.

C’est probablement cette combinaison qui définit le mieux le projet.

Un annuaire Web est naturellement organisé autour de pages et d’un moteur de recherche. Sur un téléphone, la logique peut devenir beaucoup plus directe :

Je suis ici. Qu’est-ce qui se passe autour de moi ?

Lorsqu’un festival l’intéresse, l’utilisateur peut ensuite ouvrir sa fiche et consulter ses informations sans perdre le fil de sa recherche.

Expo et React Native plutôt qu’une application Android entièrement native

Pour réaliser l’application, j’ai choisi Expo, basé sur React Native.

Ce choix permet de développer l’application avec des technologies JavaScript tout en produisant une véritable application Android.

Le même projet peut ainsi être utilisé pendant le développement, produire un APK destiné aux essais, puis générer un Android App Bundle (.aab) destiné à Google Play.

Cela évite également d’avoir à maintenir immédiatement un énorme environnement Android local.

La compilation finale peut être confiée à EAS Build, l’infrastructure de compilation d’Expo.

Et c’est précisément ce que nous avons fait.

Du téléphone de test au véritable Google Play

Les premières versions ont naturellement été testées avant toute publication officielle.

Une première étape a consisté à utiliser Expo pendant le développement. Puis nous avons produit un véritable APK autonome, installé directement sur un smartphone.

C’était déjà une étape importante : l’application pouvait fonctionner indépendamment de l’environnement de développement.

Mais distribuer une application via Google Play demande d’aller plus loin.

J’ai créé mon compte développeur Google Play, déclaré Festi Breizh avec son identifiant Android définitif :

fr.festivalbretagne.festibreizh

puis configuré un véritable profil de production dans EAS.

La différence est assez parlante :

développement → APK de test → AAB de production → Google Play

Le premier bundle de production a ensuite été généré sur les serveurs Expo et accepté par Google Play.

Avant le grand public : les testeurs

Je n’ai pas voulu passer directement à une publication publique.

Google Play permet de créer un canal de test interne et de désigner les personnes autorisées à installer l’application.

J’ai donc commencé à recruter un petit groupe de volontaires.

Le principe est simple : le testeur me communique en privé l’adresse de son compte Google, je l’ajoute à la liste autorisée et il reçoit ensuite un lien lui permettant d’installer Festi Breizh depuis Google Play.

Nous ne testons donc plus seulement un APK téléchargé depuis un site.

Nous testons maintenant la véritable chaîne de distribution Google Play.

Et le premier test grandeur nature est concluant : Festi Breizh 1.0.0 est désormais installable depuis Google Play par les testeurs autorisés.

Et bien sûr, nous avons déjà trouvé quelque chose à améliorer…

C’est justement l’intérêt des tests.

L’application fonctionnait, mais un détail est immédiatement devenu évident : elle utilisait encore l’icône générique issue du projet Expo.

Techniquement, rien de grave. Android connaît correctement son nom « Festi Breizh », son package et son activité de lancement.

Mais lorsqu’on cherche une nouvelle application au milieu de toutes les icônes de son téléphone, son identité graphique devient soudain beaucoup moins anecdotique !

Ce sera donc l’une des améliorations avant la publication publique : donner à Festi Breizh une véritable icône immédiatement reconnaissable.

ChatGPT et Codex comme compagnons de développement

Ce projet est aussi une nouvelle étape dans mes expérimentations autour de l’IA et de WordPress.

Je ne suis pas parti d’un générateur d’applications qui aurait fabriqué automatiquement un produit terminé.

Le fonctionnement a plutôt été celui d’une petite équipe.

Je définis le besoin et je valide les choix. ChatGPT m’aide à concevoir l’architecture et à avancer étape par étape. Codex intervient directement sur le projet pour analyser ou modifier le code. Puis je teste le résultat réel.

Ce dernier point me paraît essentiel.

Lorsque Codex a préparé le profil EAS destiné à Google Play, par exemple, je lui ai d’abord demandé d’examiner le projet sans rien modifier.

Il a identifié la configuration existante, vérifié le package Android et constaté que nous avions seulement un profil permettant de fabriquer l’APK de test.

Ce n’est qu’après ce diagnostic que le profil de production a été ajouté.

Puis seulement après validation, le build a été lancé.

C’est finalement assez proche de ma manière de travailler sur WordPress : diagnostiquer, proposer, modifier, tester, valider.

Le smartphone n’est qu’une nouvelle porte d’entrée

Ce projet m’a aussi fait changer ma manière de considérer une application mobile.

Festi Breizh n’est pas un deuxième projet qui viendrait concurrencer festival-bretagne.fr.

Le site WordPress reste le cœur du système.

L’application constitue simplement une nouvelle interface pour accéder aux mêmes données, mieux adaptée à certaines situations.

WordPress permet d’administrer et d’enrichir les festivals.

L’API sélectionne et structure les données utiles.

L’application les transforme en une expérience adaptée au téléphone.

Et Google Play se charge de la distribution et des mises à jour de l’application.

On obtient finalement une architecture assez simple :

WordPress → API REST → application Expo/React Native → Google Play

Et maintenant ?

La prochaine étape n’est pas d’ajouter une multitude de fonctionnalités.

C’est au contraire de polir ce qui existe.

Une véritable icône Festi Breizh, quelques ajustements d’interface, les retours des premiers testeurs et la validation du fonctionnement sur différents smartphones passeront avant la publication publique.

À plus long terme, l’application pourra également accueillir quelques festivals mis en avant, sans transformer l’expérience utilisateur en panneau publicitaire.

Mais le principe initial restera le même :

ouvrir Festi Breizh, indiquer où l’on se trouve ou le département qui nous intéresse, et découvrir les festivals à venir.

Après WordPress, l’API, Expo et les premiers APK, Festi Breizh vient donc de franchir une nouvelle étape :

elle est entrée sur Google Play.

Pas encore devant tout le monde.

Pour l’instant, les premiers testeurs ont les clés.

Et c’est probablement le meilleur endroit pour commencer.