
Google Flutter et React Native, c'est quoi ?
Les solutions de développement multiplateforme possèdent chacune leurs avantages et leurs inconvénients et les développeurs veulent toujours savoir laquelle d’entre elles est la solution la plus fiable ou simplement la meilleure. Google Flutter et React Native sont deux des solutions les plus utilisées aujourd’hui pour concevoir des applications multiplateformes. Il est certain que ces deux frameworks sont déjà devenus les principaux acteurs du marché dans cette catégorie. Comme avec toutes les autres technologies du monde informatiques, les développeurs cherchent toujours à savoir lequel d’entre eux est le meilleur.
Pour Rainway Inc., un service de streaming de jeux qui vous permet de jouer aux jeux sur tous vos périphériques, Flutter est de loin la meilleure solution. « Nous avions besoin du meilleur des deux mondes et Flutter nous l'a donné », a déclaré l’entreprise. En effet, l’entreprise utilise Rainway, une application de streaming pour permettre à ses clients de jouer. Selon l’entreprise, une application de streaming comme Rainway a besoin d'une interface utilisateur à faible frottement et faible temps de latence qui permet une communication ultrarapide avec un décodeur de vidéo en continu.
Ainsi, Flutter était la seule solution, selon Rainway Inc, a présenté toutes ces caractéristiques. Mais de quoi parle-t-on ? Flutter est un nouveau framework d'interface utilisateur multiplateforme de Google. Il vous permet d'écrire du code d'interface utilisateur dans Dart, qui est ensuite compilé pour créer des applications natives pour Android, iOS, le Web et bientôt les ordinateurs de bureau. En plus de cela, il affiche un cycle de développement de rechargement à chaud et est livré avec une tonne de widgets. Selon Rainway Inc, tout cela a semblé séduisant pour son équipe qui a décidé de l'essayer.
De son côté, React Native est un framework d'applications mobiles qui utilise JavaScript. React Native combine les meilleurs éléments du développement natif avec React, une bibliothèque JavaScript de premier ordre pour la création d'interfaces utilisateur. Les applications créées à l'aide de React Native ne sont pas des applications Web mobiles. React Native utilise les mêmes blocs de construction de l'interface utilisateur que les applications iOS et Android classiques. Cela signifie qu'au lieu de créer en Java, Kotlin ou Swift, vous assemblez les mêmes blocs de construction en utilisant JavaScript et React.
Quelles différences y a-t-il entre ces deux frameworks ?
D’après l’expérience de Rainway Inc avec Flutter, ce dernier apporte une interopérabilité native tout en se montrant très performant. « La latence lors du transfert de paquets vidéo en continu, mesurée entre la réception du paquet de WebRTC du côté Flutter et son acheminement vers le décodeur du côté natif est d'environ 0,3 milliseconde. Cela ne représente que 2 % de la durée d'une seule image de séquences de jeu de 60 ips », a déclaré l’entreprise. Cependant, ailleurs, l’on estime que les avantages du framework Flutter vont plus loin que ceux exprimés par Rainway Inc.
L’on estime que les applications développées sous Flutter paraissent aussi bonnes sur les nouvelles versions de systèmes d'exploitation que sur les versions antérieures. En effet, au niveau de l’UI, comme elles ne possèdent qu'une seule base de code, les applications se ressemblent et se comportent de manière similaire sous iOS et Android, mais grâce aux widgets Material Design et Cupertino, elles peuvent également imiter le design de la plateforme. Flutter contient deux ensembles de widgets conformes à des langages de conception spécifiques : les widgets Material Design implémentent le langage de conception Google du même nom et les widgets Cupertino imitent le design iOS d’Apple. Cela signifie que votre application Flutter se comportera naturellement sur chaque plateforme, en imitant leurs composants natifs.
Quand est-il de React Native de Facebook au niveau de l’interface graphique ? Avec React Native, les composants d'application ressemblent aux composants natifs (par exemple, un bouton sur un périphérique iOS ressemble à un bouton iOS natif et il en est de même sur Android). Le fait que React Native utilise des composants natifs sous le capot devrait vous donner l'assurance qu'après toute mise à jour de l'interface utilisateur du système d'exploitation, les composants de votre application seront également mis à niveau instantanément.
À ce stade, certains développeurs ont indiqué sur les sites communautaires que cela peut avoir un impact sur l'interface utilisateur de l'application, mais cela arrive très rarement. « La mise à jour de la bibliothèque pour votre application est cauchemardesque », a déclaré l’un d’entre eux. « Je préfère utiliser Flutter que React Native tous les jours. Mon expérience avec React Native était que presque toutes les applications seraient un gâchis incontrôlable de dépendances et de bidouilles pour contourner les différences de cibles », a-t-il ajouté.
De plus, à l’heure actuelle, il semblerait que les composants React ne fonctionnent pas exactement de la même manière que dans React Native. Toujours dans l’UI, l’on estime que si vous souhaitez que votre application soit quasiment identique sur toutes les plateformes, ainsi que sur les anciennes versions d'un système d'exploitation (comme le fait Flutter), vous devez envisager d'utiliser des bibliothèques tierces. Ils vous permettront d'utiliser des composants de Material Design, à la place de ceux d'origine.
Avec React Native, le développement peut sembler parfois plus rapide qu’avec Flutter. Toutefois, React Native utilise un pont et des éléments natifs. Une optimisation distincte peut donc être requise pour chaque plateforme, un problème que Flutter qui est basé sur les widgets ne rencontre pas. Il se peut donc que le développement d'application avec React Native dure plus longtemps. Néanmoins, selon d’autres comparaisons, React Native serait beaucoup plus stable. Il est utilisé par de nombreux acteurs du marché et de grandes entreprises de technologies. Par exemple, il est utilisé dans le développement des applications de Facebook (Instagram et les publicités Facebook), l’application Skype et par l’entreprise Tesla.
Plus encore, il dispose d’une vaste communauté, car il serait une technologie facile à apprendre et possède également beaucoup de tutoriels et de bibliothèques qui permettent un développement rapide et facile. « Pour moi, Flutter était plus difficile à apprendre que React Native. Principalement parce que React Native utilise JavaScript (langage familier pour moi) alors que j'étais nouveau sur Dart, le langage utilisé par Flutter. Donc, si vous êtes nouveau sur Dart et que vous essayez d'apprendre Flutter, cela prendra plus de temps que d'apprendre React Native », a déclaré un utilisateur de React Native.
Les composants de React Native sont plutôt basiques. Par conséquent, si vous avez besoin de quelque chose de plus, vous devez déployer des efforts considérables pour le style. Le code obtenu au cours du développement d’une application développée avec React Native peut être facilement réutilisé pour le développement d'applications Web et d'applications de bureau. À côté, la jeunesse de Flutter ne semble pas empêcher le framework de conquérir les développeurs. Sa communauté aussi serait en croissance. Certains pensent même que Flutter va devenir le choix le plus adapté au développement multiplateforme dans les prochaines années.
« Je suis passé de React Native à Flutter et je suis un grand fan. Je suis un développeur plus âgé et j'ai réalisé une tonne de développement d'interface graphique au cours des 25 dernières années. Mais l'expérience de développeur Flutter est juste la meilleure et la plus rentable que j'ai jamais vue », a déclaré un utilisateur de Flutter. En ce qui concerne les performances, Flutter aurait l'avantage sur sa compilation dans des bibliothèques natives ARM ou...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.