Ce que j’aurais voulu savoir en commençant Flutter


Avatar de Pierre Courtois

Coder son app, ce n’est pas juste des lignes de code en 2 semaines. C’est un long processus, qui te fait passer tantôt par la joie, la frustration voire le désespoir. C’est pourquoi je te partage 13 choses que j’aurais aimé savoir en commençant Flutter, et qui t’aideront à aller au bout de ton projet. 


Garçon qui travaille sur son ordinateur pendant la nuit

1. Faire une application prend du temps

Faire une application est quelque chose qui demande du temps, même lorsque l’on sait déjà coder. Toutes les applications ont leurs spécificités et leurs challenges, et on se retrouve vite à passer plusieurs heures sur des choses que l’on pensait pouvoir faire rapidement. N’espérez donc pas sortir votre application après avoir vu quelques tutos et 2 semaines à coder le soir en rentrant chez vous. Cela risque plutôt de prendre plusieurs mois, voire peut-être année selon le temps que vous pouvez y consacrer et le nombre de fonctionnalités. Vivez donc cette expérience comme un marathon et non pas comme un sprint. 

2. Prendre du recul quand on est bloqué 

Il m’est arrivé parfois de rester bloqué pendant plusieurs jours sur une erreur ou une fonctionnalité qui ne marchait pas. Ce genre de situation est très frustrante, car on se dit que l’on a quand même pas codé tout ça, pour se retrouver bloqué là. Alors, on s’acharne, on teste chaque étape de la fonction individuellement, on tente d’autres commandes au hasard, on change d’approche, puis on se rend compte que cela ne sera pas possible de faire comme ça. 

Bref, coder est souvent source de frustration et la meilleure manière de gérer ça selon mon expérience est… de s’arrêter et de faire autre chose. En effet, plus vous vous énervez, moins vous allez y voir clair dans ce que vous faites. Si vous êtes bloqué depuis plus d’une heure sur ce que vous faites, je vous conseille donc juste d’arrêter et de partir faire autre chose. 

Idéalement faites du sport ou allez marcher. Cela va surement vous faire sourire, mais j’ai trouvé beaucoup de solutions en allant marcher 30 minutes. En revenant, j’étais dans de meilleures dispositions pour reprendre mon travail là où je l’avais laissé et j’avais l’esprit plus clair.

3. La concurrence n’est pas une raison pour ne pas se lancer

Sachez que les chances pour que vous ailliez eu une idée complètement originale sont quasiment nulles. 10, 100, voire 1000 personnes ont déjà pensé la même chose et des applications créées par des entreprises, qui ont plus d’argent et de temps que vous à allouer, existent surement déjà. Mais est-ce une raison pour ne pas se lancer ? 

L’important n’est pas d’être le premier à vous lancer dans ce que vous faites, mais de le faire mieux que les autres. Bien-sûr, être premier vous donne un coup d’avance non négligeable, mais ce n’est pas ça qui va assurer votre succès. Au contraire, profitez de partir derrière pour identifier ce qui manque chez vos concurrents. Améliorez un concept qui existe déjà, transformez-le, rendez-le plus attrayant, mais n’abandonnez pas avant même d’avoir engagé la bataille. 

De plus, peu importe que votre application ait du succès ou pas, le temps que vous aurez dédié à vous former ne sera jamais une perte de temps et vous ouvrira peut-être d’autres portes. Ce qui me fait arriver au point suivant.

4. Notez vos idées et vos pensées

Parfois, on a du mal à prendre du recul sur notre progression et tout ce que l’on a déjà surmonté. C’est pour cela que je vous conseille, au moins au début, de noter tous les jours ce que vous avez fait et comment vous vous sentez. Comme ça, quand vous serez bloqué sur quelque chose et voudrez abandonner, vous n’aurez qu’à relire vos notes pour vous rendre compte de tout ce que vous ne saviez pas faire et que vous savez faire maintenant.

5. Ne restez pas bloqué sur votre première idée

Nous commençons tous un projet avec une idée en tête, mais on termine rarement avec un résultat final qui lui correspond. 

Vous verrez, en commençant votre application, que certaines choses demandent parfois trop de moyens ou de temps pour être mises en place et que vous devrez vous adapter. Ne restez surtout pas bloqué sur une fonctionnalité que vous ne pouvez pas mettre en place tout de suite. Contournez l’obstacle, repensez votre idée si cela est possible, mais ne restez pas bloqué. 

Aussi, il est possible qu’une fois votre application en ligne, vous vous rendiez compte que votre idée n’était pas si viable que cela. Mais qu’en codant, vous ayez eu une autre idée d’application qui selon vous a plus de potentiel. Ne vous arrêtez pas à votre première idée si cela ne marche pas. Peut-être que vous réussirez avec la deuxième, la troisième, ou l’une des suivantes. 

6. Il y a toujours une solution à tout

Une chose que j’ai apprise en codant mon application, est qu’il y a toujours une solution à tout. Cela peut prendre du temps, de l’argent ou demander d’être un peu créatif, mais cette solution existe, je peux vous l’affirmer. Et avec une communauté Flutter grandissante, il y a fort à parier que quelqu’un ait voulu faire la même chose que vous et que vous trouviez la solution à votre problème sur un forum ou dans une vidéo. Ce qui nous amène au point suivant.

7. Ne réinventez pas la roue

Une règle de base en développement est de ne pas chercher à réinventer quelque chose qui existe déjà. Il n’y a aucune honte à utiliser des bouts de code trouvés en ligne, ou des packages. Cela ne vous rendra pas moins méritant à la fin, et vous allez économiser un temps précieux. 

Flutter met à disposition tout un tas de packages que je vous recommande d’utiliser. Ceux-ci vont vous faciliter la vie et vous permettre de mettre très vite en place des fonctions complexes, ou des éléments visuels plus dynamiques, que vous auriez mis des mois à coder si vous aviez dû le faire vous-même. 

Bien-sûr, il peut parfois être plus intéressant de tout développer en propre pour avoir à 100 % la main sur ce que vous faites. Mais cela viendra avec le temps et la pratique.

8. Développez une solution évolutive

Ne vous embarquez pas dans une application qui va vous demander un énorme travail d’ajout de données en back-end. Sauf si vous pensez pouvoir le faire en une fois dans un temps raisonnable et que les données ne seront pas modifiées par la suite. Prévoyez une application qui peut très facilement fonctionner pour 1 comme pour 100 000 utilisateurs. 

Pour illustrer ce point, je vais vous donner un exemple personnel. J’ai commencé Flutter en voulant coder une application de recommandation de restaurants. Mais comment récupérer les noms, les adresses, les menus, etc ? Au début, j’ai pensé le faire à la main, pour une seule grande ville et lancer mon application seulement dans celle-ci. Vous voyez le problème… Vous imaginez devoir entrer à la main, toutes les informations des restaurants de France, puis du monde ? Et en plus devoir les modifier encore à la main, quand elles changent ?

J’ai donc dû penser les choses différemment pour faire quelque chose d’évolutif. J’ai utilisé des bases de données en lignes qui existaient déjà et je les ai branchées à mon application. Ainsi, je peux maintenant extraire les informations de n’importe quel restaurant cherché par un utilisateur et les ajouter dans ma base de données Firebase. Certes, cela m’a pris 1 semaine entière pour comprendre comment fonctionne une API et une requête http, mais j’ai économisé des milliers d’heures de travail d’ajouts d’informations à la main. 

Gardez donc toujours en tête que si votre solution vous demande beaucoup de travail manuel, alors ce n’est peut-être pas la meilleure. 

9. Changez votre package.name avant d’installer Firebase

Pour enregistrer sur votre application sur Android, IOS, et brancher Firebase, vous allez devoir fournir ce que l’on appelle votre package name. Cela-ci se trouve dans votre dossier build.gradle et ressemble à com.example.nom_du_fichier tant que vous ne l’avez pas modifié. C’est en quelque sorte l’identifiant unique de votre application que vous devrez changer quand vous allez l’enregistrer sur les plateformes de téléchargement.

Je vous conseille de faire cette étape dès que vous avez créé votre fichier d’application et non pas au moment de publier. En effet, je me suis retrouvé dans cette situation avec ma première appli et ça m’a pris 2 jours pour refaire fonctionner Firebase, que j’avais branché avec le package name qui est généré par défaut.

Il vaut mieux donc d’abord changer votre nom, puis ensuite, vous connectez à Firebase ou à d’autres services. 

10. Utilisez des try&catch

C’est quelque chose que je n’ai moi-même toujours pas le réflexe de mettre en place, mais utilisé des try&catch pour vos fonctions. Cela va éviter que votre application plante à chaque fois qu’il y a eu une erreur de devoir la relancer. Ceci va vous arriver très souvent, donc je recommande vraiment d’utiliser ça, pour perdre le moins de temps possible. 

11. Ne créez pas d’éléments avec des hauteurs ou des largeurs absolues

Là aussi, quelque chose que j’aurais aimé savoir dès le début : Ne donnez pas de valeur absolument pour la taille et la largeur des éléments. J’ai fait cette erreur sur ma première application, pour me rendre compte une fois publiée que rien n’était bien positionné ou que des boutons débordaient de l’écran.

Je vous recommande donc plutôt de mettre des valeurs en pourcentage de la taille de l’écran. Par exemple, au lieu de dire que mon container aura une hauteur de 200px, je vais lui donner une hauteur égale à 50% de l’écran. Pour cela, vous pouvez utiliser la commande :

Media.of(context).size.heigth (ou width) * x  (1 = 100% de l’écran). 

12. Restez discret

Vous êtes tout heureux de commencer à coder votre application, vous avez envie d’en parler à vos amis, leur montrer ce que vous avez réussi à coder, le design, et c’est bien normal. Mais au contraire, je vous conseille de ne pas trop en parler autour de vous, du moins au début. 

En effet, vous risquez de créer une attente de la part des autres, qui va s’essouffler au fur et à mesure des mois de développement. Et soit vous n’arriverez pas au bout de votre projet et on se dira “mais il n’avait pas dit qu’il ferait une application ? Elle est où ?”. Soit vous arriverez au bout, mais cela aura pris tellement de temps que l’intérêt initial que les gens portait pour votre projet aura disparu. 

Il vaut mieux donc faire les choses tranquillement de votre côté, et montrer votre projet à vos proches une fois que celui-ci sera bien engagé. 

13. Attendez-vous à des premiers retours négatifs

Même si votre concept d’application est très bon, il y a fort à parier que le premier résultat sera mauvais, voire très mauvais. C’est normal, vous commencez de 0, vous n’êtes pas développeur et vous pouvez déjà être très fier de vous. Mais le fait est là, votre première version, sera très loin du niveau des tops applications du marché, voire de vos concurrents. 

Je vous conseille donc de commencer à partager votre application, uniquement à des personnes en qui vous avez confiance et avec qui vous pouvez parler honnêtement. Leurs retours seront probablement mitigés. D’un côté, ils seront contents pour vous que vous ayez été au bout de votre projet, mais d’un autre côté, il va vous rester beaucoup de travail. Utilisez donc ces précieux retours négatifs pour améliorer les faiblesses les plus voyantes de votre application. 

Ce n’est qu’une fois votre V1 validée par votre entourage, que vous pourrez commencer à la promouvoir au grand public. 

Conclusion

Coder votre application mobile est à la fois une expérience géniale et quelque chose qui va créer une insatisfaction perpétuelle chez vous. D’un côté, on est fier de ce que l’on a accompli, mais de l’autre, on sait qu’il y a toujours des choses à améliorer et on se sent attaqué personnellement quand on reçoit un retour négatif. 

On aimerait aussi tous, que notre application soit téléchargée des millions de fois et qu’elle devienne plus connue qu’Instagram, TikTok, et j’en passe. Mais la réalité est que cela ne sera probablement pas le cas et que sur 10 applications, vous en ferez peut-être une seule qui va avoir un peu de succès. Toutefois, c’est loin d’être une raison d’abandonner. Cette expérience va vous apporter beaucoup sur le plan personnel et les compétences que vous allez développer pourront vous ouvrir des portes. Alors n’abandonnez pas et allez au bout de votre projet, au moins pour vous dire que vous l’avez fait, et que rien que ça, ça vaut déjà beaucoup.

Avatar de Pierre Courtois