Pourquoi Flutter
Flutter est un kit de développement de Google qui permet d’écrire une application une fois et de la faire tourner sur iPhone, Android, le web et les ordinateurs. L’interface est dessinée par Flutter lui-même, pas par le système : l’application a le même rendu partout, au pixel près, ce qui simplifie beaucoup le respect des maquettes.
- Un seul code, donc un seul développement et une seule correction quand un bug apparaît.
- Des performances proches d’une application native, y compris pour les animations et les listes longues.
- Des tests rapides à écrire, jusqu’aux captures de référence qui repèrent le moindre décalage d’un écran.
- Un accès complet aux fonctions du téléphone, en écrivant du code natif quand une fonction manque.
Quand je recommande une autre solution
Flutter n’est pas toujours le bon choix, et je vous le signale avant le devis.
- Votre activité dépend du référencement : un site qui doit être trouvé sur Google gagne à être réalisé en Next.js. Flutter sur le web dessine la page comme une image, que les moteurs de recherche lisent mal.
- Votre application dépend de fonctions très récentes ou très liées à Apple, comme les widgets de l’écran d’accueil ou une application pour montre : une partie devra être écrite en natif, et il faut le prévoir.
- Votre équipe travaille déjà en React : React Native lui permettra de reprendre l’application sans changer de langage. J’ai moi-même travaillé en React Native sur Num4.
- Vous souhaitez tester une idée auprès de quelques clients : un site ou un outil sans code peut suffire, pour un coût bien moindre.
Ce que j’ai livré en Flutter
- Homeo : deux applications immobilières, iOS et Android, et la version web de l’application des agences. Associé et CTPO, j’ai écrit le front depuis le premier commit, avec 250 fichiers de test.
- Magic : la carte des sorties et les amis, dans une équipe déjà en place, avec un outil qui compare chaque écran à sa maquette Figma.
- Resalib : une application qui embarque un site existant et lui ajoute notifications, liens profonds et onglets natifs, en français et en néerlandais.
- Kalastr : un réseau social d’orientation sur iOS, Android et le web, et des applications pour des groupes d’écoles.
- Dobox Music : un logiciel Flutter qui démarre seul sur des bornes sous Windows et Linux.
- Milky Date : une application reprise, stabilisée et remise en conformité avec les stores.
Ma façon de travailler
Je compare chaque écran à sa maquette avant de dire qu’il est fini. Sur Magic, j’ai écrit un outil qui superpose la capture de l’application et le dessin Figma, bande par bande, avec un écart maximal fixé pour chaque écran.
Je teste ce que j’écris : tests unitaires, captures de référence, et parcours automatisés avec Maestro, qui pilotent l’application comme un utilisateur. Les versions partent sur TestFlight et Google Play depuis un service d’intégration continue, Codemagic sur Homeo, sans manipulation à la main.
Je mesure avant d’optimiser. Sur la carte de Magic, une mesure a montré que l’encodage des épingles représentait 95 % de leur coût : c’est sur ce point que j’ai concentré l’optimisation.
L’audit d’une application Flutter existante
Si vous avez déjà une application Flutter et des doutes sur son état, je peux réaliser un audit avant toute décision. J’examine, dans cet ordre :
- Si l’application se compile encore pour iOS et Android avec les versions actuelles de Flutter et des outils d’Apple et de Google.
- Les paquets dont elle dépend : ceux qui ne sont plus maintenus, ceux qui bloquent une mise à jour.
- Ce que les stores exigent aujourd’hui : déclarations de confidentialité, version minimale d’Android visée, connexion avec Apple quand il y a une connexion avec Google.
- La façon dont l’application gère ses données et son état, là où naissent la plupart des bugs difficiles.
- Les tests, le suivi des plantages et la façon dont les versions sont publiées.
Vous recevez un rapport écrit, avec ce qui bloque, ce qui peut attendre et ce que coûte chaque correction. Vous restez libre de confier les corrections au prestataire de votre choix. Pour une application qui ne fonctionne plus, voir la page reprise d’application.