
De iOS natif a flutter avec Maxime Delporte
Durée: 10m45s
Date de sortie: 02/03/2021
Natif VS Flutter
Pour les adeptes et fervents défenseurs du natif, le nouveau framework Flutter tient-il ses promesses de productivité par son approche hybride ? Peut-il même supplanter le natif et convertir tous les dev ?
Maxime Delporte, développeur IOS, partage son expérience de Flutter dans cet épisode.
Suivre Maxime Delporte sur Linkedin
La veille de compagnon : compagnon.artisandeveloppeur.fr/veille
Hébergé par Ausha. Visitez ausha.co/politique-de-confidentialite pour plus d'informations.
Bienvenue sur le podcast Artisan Developer, l'émission pour les programmeurs qui veulent
vivre une carrière épanouissante. Prêt à passer au niveau supérieur ? C'est parti !
Aujourd'hui je suis avec Maxime Delport, Maxime bonjour !
Bonjour ! Est-ce que tu peux te présenter en quelques mots pour les auditeurs qui ne te connaîtraient pas ?
Alors ça fait plus d'un an que je travaille chez Agil Idé en tant que développeur iOS.
Et si tu reconnais ce nom chez Agil Idé, c'est tout simplement parce qu'Ajil Idé c'est le studio
de développement que j'ai fondé il y a quelques années. Et Maxime nous a rejoint il y a un an.
Et dans le cadre de nos progressions, de nos travaux sur compagnons,
l'app qui t'aide à devenir un meilleur développeur, mais on a fait des choix un petit peu originaux.
Je t'avais promis de t'en parler et justement dans le développement de cette application,
on a fait le choix de partir sur Flutter. Et non pas alors que ça fait des années et des années
à des années que je suis un énorme fervent défenseur du natif. On est pourtant parti sur Flutter
qui est une approche plutôt hybride avec un frère mort qui vient de Google. Et je trouvais
intéressant de partager avec toi l'expérience de Maxime qui lui aussi était un grand fan de
natif. Et Maxime, est-ce que tu peux nous raconter alors ton expérience ? Est-ce que ça a été un
traumatisme ? Est-ce que tu as aimé en fait ? Alors, je tiens à m'excuser auprès de tous mes
confrères qui défendent leur plateforme dont je faisais partie avant. Mais l'expérience en fait,
elle s'en vers plutôt positive. Donc je sais pas si tu veux qu'on rentre dans le détail maintenant,
mais c'était génial. Oui, évidemment. Qu'est-ce qui a été génial ? Déjà d'apprendre une nouvelle
techno et au début, un peu comme toute, alors moi je fais du développement à US depuis 2016 et
à l'époque le standard c'était un peu examara. Déjà j'étais employé pour faire de l'IOS,
donc j'étais toujours un peu contre le cross-platform. Et j'ai un peu l'impression que c'est ce qui se
dégage de la communauté à l'IOS ou Android en natif. C'est genre on fera jamais de cross-platform.
Mais quelque part on était un peu dans cet état d'esprit nous aussi,
quand on a attaqué ce chantier-là, cette expérimentation ?
Oui, c'est un peu ça, mais en fait je pense que c'est plus flotteur, c'est un peu plus une
tendance qui se confirme vers le cross-platform mais qui devient stable sur la durée. Là où on
voit que d'autres plateformes avec le temps ça s'estompe. Enfin je pense à AXA Marin,
je ne sais pas où ça en est au niveau des stats, mais il y avait aussi Cordoba ou Ionic,
où là vraiment faire du web sur du mobile, je n'entends pas beaucoup de gens développer sur
ces plateformes. Aujourd'hui je pense que tout ce qui était ces frémants qui venaient un peu avec
une espèce d'obédience par le web, en général j'ai l'impression de migrer vers du réagnatif.
Oui, c'est un peu ça. Par contre là où à Flutter j'ai regardé les tendances
au Stack Overflow et on voit vraiment un cours où les questions sur Flutter ça ne fait qu'exploser
en 2020 en fait. Je pense que c'est une technique qui est arrivée à maturité et moi ce qui m'a fait
prendre la décision d'aller plutôt là-dedans, d'expérimenter ça, c'est que je vois le marché
qui bouge et dès que je me mets dans la peau de mes clients, il y a un enjeu qui est tout
simple, c'est le coût. En termes de coût de développement, payer le prix de deux plateformes
c'était juste énorme et je me dis tiens Flutter arrive à une espèce de maturité, on dirait
que la promesse de tu économises de l'argent sur le développement semble tenue, mais là où
j'ai été bluffé et je suis curieux de ton expérience, c'est que même si on ne développait
que sur une plateforme, il y a des moments où j'ai l'impression qu'on irait presque plus vite que
sur du natif. Alors j'ai pas été aussi loin mais par contre mon apprentissage me permet de dire
que pour une application basique affichée à une liste ou vraiment une application en VA pour une
startup, je pense qu'en étant à l'aise on voit effectivement plus vite et ce qui a de fou c'est
que je compilais toujours pour lancer sur un simulator iOS et en fait je me disais je peux aussi
compiler sur un simulator Android et c'est la même chose et c'est ça qui m'a bluffé.
Et qu'est ce que tu as aimé alors dans ce frèrement ? Qu'est ce que tu as particulièrement
apprécié dans les paradigms qu'ils ont choisi ? Alors déjà par rapport au langage, le Dart,
c'est un langage qui est cool en fait, je l'ai pas trouvé horrible au niveau de l'apprentissage,
après si on parle vraiment du framework Flutter, ce que j'ai aimé c'est le hot reload, en fait
tu as juste besoin de compiler une fois ton téléphone et ensuite quand tu fais des modifications
dans le code, c'est comme si tu fais un F5 pour du web, ça se recharge immédiatement là où sur
Xcode, à chaque fois que tu compiles si c'est un grand projet, tu es obligé d'attendre une minute
ou deux minutes, là c'est instantané donc niveau gain de développement, c'est assez dingue.
Est-ce qu'il est notamment un des trucs qui me rebutait pas mal, notamment dans une logique de
TDD où tu as besoin de builder très souvent d'avoir des cycles de cours, est-ce que ça
marche bien le hot reload pour ces sujets là ? Oui, c'est la même chose en fait. Quand il s'agit
de l'interface, c'est du hot reload et il y a aussi un reload qui permet de recharger son algorithme
et c'est exactement la même chose. Donc tu écris ton test, au moment où tu l'écris, tu veux avoir
ton test rouge ou alors au moment où tu veux le faire passer ouvert, tu économises toutes ces 60 à 90
secondes, le tang, le truc build, pousse sur ton téléphone tout ça, c'est quasiment instantané.
C'est énorme en fait en termes de gain de productivité. Je me faisais la remarque à chaque
fois même pour construire une interface. Je suis assez perfectionniste dans ma manière de faire
les applications, j'aime bien respecter des XINOR en faisant du pixel perfect. Et là où sur iOS,
quand il s'agit de faire du détail, il faut compiler cinq, dix fois pour avoir l'interface
parfaite. Le hot reload, ça se fait limite de manière instantanée. Et je me disais, en fait,
avec Durkul, je me disais là il m'aurait peut-être fallu 15 minutes pour terminer mon interface sur
iOS alors que là, on peut le faire, c'est terminé. Donc il y a vraiment cette promesse de gain
de productivité pour l'expérience qu'on en a faite pour l'instant, c'est tenu. C'est ça. Après,
il y a d'autres, comment dire, j'aime bien aimer aussi la manière de construire les interfaces. Alors
je travaille actuellement avec le framework UIKit pour faire mes interfaces sur iOS. J'ai pas encore
eu l'opportunité de faire du SwiftUI mais de ce que j'en ai vu, ça ressemble beaucoup à SwiftUI
pour ceux qui font de la iOS actuellement. La manière dont est fait, on s'en fait les widgets.
Donc c'est les composants qu'on construit pour faire les interfaces, c'est la même chose. Et c'est
très efficace, ça marche bien. En fait, quand je t'écoute, j'ai l'impression vraiment d'une transition
qui était assez smooth entre un langage, moi j'ai essayé, enfin je me suis mis un peu au darte et
j'ai fait quelques catages, je me suis amusé avec. C'est le langage que tu connais sans avoir l'impression
de l'avoir appris en fait, parce qu'il ressemble à tellement d'autres langages, on dirait une espèce
de mix. Moi j'ai retrouvé du C et du C++, du Java. Et en plus de dire à chaque fois que ce qui
motivait aussi, c'est de se dire, je vais essayer d'aller plus loin pour voir ce qui se passe sur
Android et iOS pour voir s'il y a des blocages, parce que ça me rend nouveau juste pour le tester.
Et en fait, sur tout le monde d'apprentissage, j'ai eu aucun problème à part peut-être une ou deux fois
où j'ai dû relancer l'IDE, mais enfin n'importe quel IDE a parfois des problèmes. Je viens d'IOS,
donc Xcode c'est pas mieux non plus. Ouais, Xcode, c'est pas le truc le plus fiable de la Terre.
C'est ça. Ouais c'est dingue quand même, c'est assez dingue. Et justement ce chemin faisant,
qu'est-ce que tu as utilisé comme ressources pour te former sur ce langage, sur framework ?
Alors j'ai commencé d'abord sur LinkedIn Learning. Il y a une formation qui est assez cool, qui se
fait en plusieurs étapes. On voit d'abord l'environnement, les idées utilisées, la base. Ensuite on
voit comment se s'occuper des dépendances et ça monte crescendo. Donc j'ai bien aimé et il me semble
que c'est sur 7 ou 8 épisodes. Donc c'est quand même une belle formation. Et ensuite je tombais sur
une personne qui s'appelle RésoCoder sur YouTube et qui fait une formation, c'est une vidéo de 7h. Elle
est découpée en plusieurs parties, on peut la retrouver. Mais c'était vraiment la formation où
on sentait que la personne, elle était là depuis 3-4 ans et qu'elle faisait ce framework depuis
longtemps. Et là c'était... 3-4 ans c'est à peu près l'âge de flotter. Donc le mec a dû choper le
framework au moment où il est sorti.
Oui je pense que même il était là en alpha en fait. Parce que quand on voit sa fluidité, c'est assez
dingue. Et là j'ai appris vraiment pas mal. Là où sur LinkedIn Learning, on était avec Antro
et Studio, lui toute sa formation il a passé sur VS Code. Et c'est vrai qu'en changeant sur VS Code,
moi je comprends pourquoi il est passé dessus et au niveau de l'aisant c'est beaucoup mieux.
C'est à dire que tu vas plus vite, plus facile, plus agréable, c'est quoi l'avantage de passer sous
VS Code ?
Oui je trouve que moi de mon point de vue je suis très sensible à tout ce qu'il y a UI et je préfère
déjà l'interface. Et ensuite pour compilé, builder, l'intégration des plugins, je trouve ça
beaucoup, il me fera comment dire, beaucoup plus sympa et j'ai eu moins de problèmes aussi.
C'est une idée que je vois beaucoup monter VS Code, j'ai l'impression que Microsoft a vraiment
fait un énorme progrès avec cette idée-là.
Oui et puis il y a aussi de le voir sur ma coS là où quand j'étais en école c'était que sur
du Microsoft, ils ont aussi beaucoup fait sur ma coS et l'interface elle est vraiment sympa et en
plus on peut s'en servir. J'ai vu beaucoup d'extensions et je pense que sur VS Code on peut
à peu près tout faire. C'est ça qui est assez dingue.
Oui c'est clair.
Bah écoute Maxime, merci pour ton temps, merci pour ce témoignage et ce partage d'expérience.
Si les auditeurs veulent en savoir plus sur ce que tu fais, ils peuvent venir te suivre où ?
Alors niveau réseau sociaux encore une fois, moi c'est juste LinkedIn pour le moment mais si je viens
plus régulièrement j'essaierai de faire un tweeter, ce serait peut-être plus facile pour les auditeurs
de me contacter mais sinon c'est Maxime Delport sur LinkedIn et vous pouvez m'ajouter et me parler,
il n'y a pas de problème. Merci pour l'invitation.
Merci Maxime.
Quand t'as toi cher auditeur, bah écoute j'espère que t'as apprécié cet épisode. Je t'invite à
nous rejoindre dans la communauté des artisans développeurs et à rejoindre notamment la veille
d'artisans développeurs sur compagnons.artisansdeveloppeurs.fr.
Encore une fois, l'app Compagnon qui te permet de devenir un meilleur développeur.
Tu as toute une rubrique veille dans laquelle on partage les bons plans,
les bonnes ressources et ce qu'elles nous ont apportés.
Et puis bah tu l'as compris avec cet épisode bientôt une version mobile qui sortira j'espère
dans l'année. Je te remercie, je te dis à bientôt. Ciao.
Episode suivant:
Les infos glanées
ArtisanDéveloppeur
Artisan Développeur est un podcast destiné aux développeurs qui veulent bâtir une carrière épanouissante. Hébergé par Ausha. Visitez ausha.co/fr/politique-de-confidentialite pour plus d'informations.
Tags
Card title
[{'term': 'Technology', 'label': None, 'scheme': None}, {'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]
Go somewhere
Apprendre à investir avec Yoann Lopez