Voici bientôt une décennie que nous créons des applications mobiles sur mesure pour nos clients, et bientôt une décennie que nous sommes confrontés à une guerre secrète (ou pas).
Une guerre entre deux camps:
Soyons honnête, pendant de nombreuses années chez Orkester, nous avons été de fervents défenseurs exclusifs de la cause « natif », combattant les hordes hybrides successivement arrivées sur le marché : je nomme les développements PhoneGap, Xamarin, Cordova, Ionic, et j’en passe.
Pourquoi ? Parce que l’ensemble de ces solutions cross-platforms étaient unies autour d’un principe unique de médiocrité et de performances catastrophiques.
Les applications développées sur ces plateformes n’étaient que désolations de designs moches, mal supportés sur la galaxie de terminaux iOS et Android, interactions utilisateurs indécentes, lags, etc… Le camp adverse certes avait en phase d’avant vente plein de belles promesses: « Vous allez économiser de l’argent ! », « Vous verrez, PhoneGap, c’est maintenant comme du natif », etc… Les utilisateurs finaux de ces applications avaient eux une analyse plus simple:
Aujourd’hui, la situation est différente car deux nouveaux acteurs cross-platform majeurs sont arrivés sur le marché:
Situation différente parce qu’avec React Native en premier lieu, les applications cross-platform avaient enfin un rendu acceptable. Acceptable était suffisant pour beaucoup d’agences, mais pas encore suffisant pour nous, pour justifier de proposer autre chose que du natif à nos clients. React Native était un éclaireur, mais pas un Game Changer.
C’est fin 2018 avec Flutter que nous avons vraiment commencé à douter. Pour la première fois, une solution cross-platform nous permettait de réaliser des prototypes qui généraient des émotions: interfaces fluides, interactions utilisateur poussées, adaptations optimisées sur iOS et Android.
Prendre du plaisir à utiliser une application cross-platforms était jusqu’ici impensable, voire tabou. Nous, Orkester, fervents défenseurs de la fluidité, pourfendeurs de PhoneGap ! Comment en étions-nous arrivés là ?
Aujourd’hui, près de 16 mois après ces événements, nous avons trouvé un équilibre. Pas complètement dans le camp du natif, ni dans celui du cross-platform. Nous valorisons cette double compétence et essayons de proposer à nos clients des solutions adaptées et éclairées pour leurs besoins.
Et justement: comment y voir clair entre ces deux solutions, natif et flutter, quand on est un porteur de projet d’application mobile.
L’analogie la plus simple pour moi est de comparer ces solutions à des véhicules. Si vous deviez comparer une application Flutter et une application native (Swift/Kotlin), imaginez un peu de comparer une Peugeot e-208 électrique (flutter) avec une Tesla Modèle 3 (natif).
Les deux sont des voitures électriques, les deux vous permettront d’aller d’un point A à un point B. Les deux sont plutôt confortables, ont une conduite agréable, un design élégant, et ont des options assez complètes.
La Tesla sera par contre un peu plus confortable, aura un peu plus d’autonomie, des finitions un peu plus soignées, chargera un peu plus vite, et aura des options vraiment très spécifiques, comme le mode de conduite autonome. Et cela pour un prix supérieur à la Peugeot e-208.
Entre le natif et le flutter, c’est la même chose: les deux solutions permettront de créer une application de qualité, de couvrir un grand périmètre fonctionnel, de s’adapter à iOS et Android, de proposer une expérience utilisateur fluide, etc…
Le natif sera toujours plus fluide, plus optimisé (poids, temps de chargement), aura un confort d’utilisation un peu plus poussé, et proposera des fonctionnalités spécifiques (force touch, traitement d’image poussé, réalité augmentée, apple watch…). Et cela à un prix supérieur.
Comme pour le choix entre une Peugeot e-208 et une Tesla M3 sont donc :
Et pour ces questions comme pour tout le reste, souvenez vous que nous appartenons maintenant aux deux camps: nous avons donc forcément la réponse et la solution qui vous conviendra !