Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Débat] Ionic 3 VS React Native

22 juin 2017 à 17:36:17

Hello tout le monde !

Je souhaiterais créer un débat constructif afin de prendre les avantages et inconvénients des deux frameworks mobile qui sont Ionic 3 (actuellement en v3.4.2) et React Native (actuellement en v0.45.1).

J'ai pour mission de rédiger un comparatif sur ces derniers pour l'entreprise dans laquelle je travaille, afin de choisir lequel des deux nous utiliserons.

Je me suis déjà pas mal documenté et les ai déjà tous deux utilisés, mais le choix reste très difficile car ils sont très bien. A travers ce post certains auront sûrement goûté à l'un ou l'autre ou même les deux, donc tout retour m'intéresserait beaucoup.

Ces frameworks étant assez récents, il m'est difficile de trouver des comparatifs au niveau du benchmark par exemple (temps de développement sur deux applications identiques, performances, communauté, etc.) ou même des bons articles.

D'après ce que je peux tirer actuellement comme conclusion est qu'en terme de performances, React Native est largement au dessus de Ionic car c'est du natif, que sa documentation est moins claire que celle de Ionic, pas de rendu dans une page web en temps réel sur Android / IOS / Windows comme le fait Ionic (obligé de passer par l'émulateur qui est assez lourd) et beaucoup moins de choix en terme de composants UI.

Mais j'aimerais avoir un peu plus d'arguments des deux côtés car peut-être que le React est plus performant mais si derrière la communauté ne suit pas et autres ce n'est pas tip top, donc voilà :)

  • Partager sur Facebook
  • Partager sur Twitter
7 juillet 2017 à 10:32:28

Bonjour,

Avec un peu de retard, je vais essayer de faire une réponse constructive.

Contexte : Je suis développeur Android NATIF (!) depuis environs 4 ans. Je suis très attaché à l'expérience utilisateur. Je travaille pour une ESN, je suis actuellement en mission pour la réalisation d'un projet sur Ionic 1.

Mon ESN propose également 2 jours tous les deux mois de R&D. La dernière en date, il y a moins d'un mois, s'est déroulée comme suit :

Réaliser la même application mobile mais : 3 équipes, 3 technos hybrides. Il y a avait donc une équipe phonegap (angular, cordova, idem à ionic 1), une équipe Xamarin et une équipe, la mienne, sur ReactNative.

Désolé, je ne connais pas Ionic 3 mais Ionic 1. Je ne sais pas si c'est mieux codé ou pas. Dans tous les cas :

Ionic 1 est une pourriture sans commune mesure ! Je m'explique :

1) Tester sur un navigateur n'est jamais mieux que de tester sur un vrai device. Et pour info, grâce à Instant Run sur AndroidStudio, un build est quasi instantané maintenant.

2) Faire du cross-platform est une utopie :

        a. Tu crois travailler une seule fois pour deux plateforme (iOS et Android). Dans les faits, ça marche... tant que tu n'as pas de grains de sables. Le moindre problème différents entre Android et iOS et tu y passe vite 2 jours

        b. Le natif est (notamment Android Studio à mon avis) nettement plus adapté à la multiplicité des tailles d'écran.

        c. Avec Ionic 1 , sur android, le clic sur le bouton Next du clavier ne fait pas passer au champs suivant dans un formulaire. Le compteur de caractères et le validateur de formulaire ne s'active que lors de la frappe d'un espace ou du bouton Next/Submit. Bonjour l'UX....

3) Je ne sais pas sur Ionic 3 mais pour le 1, il n'y a pas de système de RecyclerView : Si tu as une liste de plus d'éléments que de place sur l'écran, ils sont tous calculés même s'ils ne sont pas sur l'écran. Qu'est-ce que ça implique ? toute liste avec plus de 50 éléments se met à lagguer sévère (bonjour fluidité). Une liste de 500 éléments fait littéralement freeze l'application. Les plateforme native, elle, ne le font pas. Elles ne calculent que les éléments affichés et recyclent la vue pour afficher les éléments suivants. Fluidité assurée.

4) C'est du web. Les GoogleMaps sont des GoogleMaps WEB ! et non mobile (en tout cas pour Ionic 1)

5) Les glitchs graphiques sont notre quotidien.

ReactNative :

ReactNative est mieux puisque le code est "recodé" en natif.

Par contre, d'après moi, tu n'arrivera pas à faire des applis aussi lécher et clean que du natif, tout simplement car tu fais du cross plateforme donc certaines fonctionnalités ne sont pas identiques.

Attention ! ReactNative est fait par Facebook ! Si demain Facebook décide de rendre payant ou pire d'arrêter le partage public de ReactNative, tu seras un peu embêter.

Derniers arguments pour les deux : Faire du Ionic ou du ReactNative implique de mettre un intermédiaire entre toi et GooglePlayStore/AppStore. Si demain, Apple et Google décident que toutes les apps faites en web ne sont plus admises, ....

Enfin, d'après mon expérience, faire du cross plateforme n'est pas un gain de temps ni d'argent, bien au contraire :

- tu aura besoins d'au moins 2 personnes double compétence [Ionic || ReactNative] ET [Android || Swift] ce qui fatalement devrait augmenter le coût du salaire du développeur. Car oui, même si tu codes en JavaScript, s'il y a un problème, il faudra bien être capable de mettre les mains dans le cambouis.

- Au final, le temps de développement est souvent plus long qu'en natif car il y a énormément de petits grains sables UI/UX voire fonctionnels : n'essaye même pas de faire du BlueTooth, du traitement d'image/Audio, du deepLinking, de la reconnaissance visuelle, etc, en hybride.

Je pense que tu as compris que je trouve que le cross plateforme est une belle utopie/arnaque. Pour moi, les avantages sont très faibles par rapport aux inconvénients

Si tu veux plus de précisions sur certains points, je suis ouvert ;)

A+

  • Partager sur Facebook
  • Partager sur Twitter
13 juillet 2017 à 10:11:41

Attention ! ReactNative est fait par Facebook ! Si demain Facebook décide de rendre payant ou pire d'arrêter le partage public de ReactNative, tu seras un peu embêter.

ReactNative est bien fait par Facebook mais est open source, donc aucun risques la dessus.

Derniers arguments pour les deux : Faire du Ionic ou du ReactNative implique de mettre un intermédiaire entre toi et GooglePlayStore/AppStore. Si demain, Apple et Google décident que toutes les apps faites en web ne sont plus admises

Comme tu l'as dit... ReactNative rebuild ton app en natif donc n'est pas impacté si Google ou Apple décide de ne plus accepter d'app Web (en somme en WebView only).

Par contre, d'après moi, tu n'arrivera pas à faire des applis aussi lécher et clean que du natif, tout simplement car tu fais du cross plateforme donc certaines fonctionnalités ne sont pas identiques.

Ouai alors que d'après toi car une bonne dizaines de "grosses" apps ont été codées avec comme Facebook, Instagram, Discord, SoundCloud Pulse et d'autres.

Mais des fois j'ai l'impression que toi même tu ne comprends pas ce que tu dit "tu n'arrivera pas à faire des applis aussi lécher et clean que du natif"

ReactNative = Rebuild ton app en N-A-T-I-F


---

Bref, pour en revenir au comparatif, malheureusement je n'ai pas utilisé Ionic V3 mais la V1 et la V2 pour créé une app. J'ai aussi développé une autre application grâce à ReactNative.

Du coup, gros points faible pour Ionic l'upgrade de version (v1 à v2 soit angularjs 1 à 2) n'est pas possible simplement, il faut recoder entièrement toute l'application. Par contre, je ne sais pas comment c'est de v2 à v3.

Par contre pour développer un projet d'application mobile rapidement c'est l'idéal ! Mais à mon sens ça s'arrête là et je vais expliquer pourquoi grâce à l'app que j'ai mis et des retours que j'ai eu.

C'est du web... donc le code est du HTML pour afficher ton app, du coup et pour le coup ça m'est arrivé, certain smartphone n'affichait pas correctement les éléments sur l'application, ce qui fait que par exemple un bouton en dessous d'un texte n'était pas afficher sur certain smartphone et impossible de scroller pour l'afficher du coup impossible de continuer à utiliser mon app :/.

Concernant ReactNative, celui-ci est mieux pensé à mon sens vu qu'il recode en natif. Du coup les problèmes d'affichage lié au WebView ne se pose plus ce qui est une très bonne chose !

Il est certain que ReactNative est au jour d'aujourd'hui une très bonne alternative au natif puisqu'il permet de coder en JS pour afficher du Natif héhé. Mais comme tout, rien ne vaut un vrai code natif sur chaque plateforme !

  • Partager sur Facebook
  • Partager sur Twitter
16 juillet 2017 à 13:40:51

@CorentinPacaud3 Tous les points que tu évoques pour Ionic 1 ne sont plus valable pour Ionic 3. Notamment parce que Ionic suivent les release d'Angular et que Angular a été complètement refondu entre sa version 1 et 2 (actuellement c'est Angular 4 pour Ionic 3). C'est un peu dommage que quand quelqu'un demande un débat constructif pour comparer Ionic 3 et React Native on vienne lui dire "je connais pas le 3 mais le 1 était nul"...

@ElGecko76 Pour te répondre, je ne connais pas ReactNative mais côté Angular2/4 et Ionic 2/3, je suis de plus en plus convaincu. Certes on constate encore des limites (perfs parfois limite et affichages indésirables de temps en temps) mais on peut toujours réussir à corriger ces problèmes. Preuve en est, ma banque utilise du Ionic pour son appli et c'est une petite merveille! On peut noter certains aspects vraiment intéressants:

  • Implémentations des fonctionnalités natives du téléphone de mieux en mieux (capture de la pression du doigt pour Apple, lecteur d'empreintes et autres trucs cool du genre). 
  • La doc est bien faite. Vraiment.
  • La communauté est grandissante. 
  • Un développement unique pour X plateformes. Ionic permet d'ailleurs de faire des conditions dans le code sur la plateforme actuelle et donc d'utiliser des portions de code uniquement pour un iPhone ou un Android par exemple. Même chose pour les composants graphiques, le framework respecte les standard ergonomiques des plateformes. Cela veut donc dire qu'on peut styliser avec un développement unique différemment sur Apple et sur Android pour respecter les standards.
  • Il ne faut pas oublier l'aspect "Angular" qui est un framework qui prend de plus en plus de terrain et donc, il sera aisé de faire évoluer une appli Ionic et facile de trouver des ressources capable de travailler dessus.

Tout cela m'a permis de développer une appli en 15 jours pour un client à 2 ressources alors que je ne suis même pas dev' front à la base et que je ne connaissais pas grand chose à Ionic 2... Pour moi, c'est caractéristique d'un framework efficace.

Pour ceux qui constatent des problèmes d'interface, c'est parce qu'ils ne gèrent pas comme il faut le responsive design tout simplement. Comme ils le disent, c'est du web. Et en web, on peut s'afficher sur n'importe quel écran proprement à condition de maîtriser les subtilités du responsive ;)

Des limites, il y en aura encore pendant un moment je pense, mais ça avance dans un très bon sens. Bien sûr, on ira toujours plus loin en natif et si on peut se payer le luxe d'une équipe Android, une équipe Apple et une équipe Windows, why not ;). Tout dépend aussi du besoin. Je ne me vois pas faire un jeu vidéo avec WebGL en Ionic :D

  • Partager sur Facebook
  • Partager sur Twitter

Développeur PHP/Symfony/JS le jour, d'applications mobiles la nuit, Photoshopman à mes heures et guitar addict!

11 août 2017 à 12:44:36

@JasonBenett je rebondis sur ta phrase "Pour ceux qui constatent des problèmes d'interface, c'est parce qu'ils ne gèrent pas comme il faut le responsive design tout simplement. Comme ils le disent, c'est du web. Et en web, on peut s'afficher sur n'importe quel écran proprement à condition de maîtriser les subtilités du responsive "

et sur ton autre phrase également "je ne suis même pas dev' front à la base"


Voilà, merci :D


Non plus sérieusement, j'en ai fait du front et je sais afficher des éléments et les tester suivant les écrans merci. Par contre je ne peux pas tester TOUS les moteurs WebView (oui c'est un composant android qui est mis à jour et n'interprète pas le code de la même manière).


Pour le "C'est un peu dommage que quand quelqu'un demande un débat constructif pour comparer Ionic 3 et React Native on vienne lui dire "je connais pas le 3 mais le 1 était nul""

Je n'ai vu personne dire que Ionic 1 était nul m'enfin bon...


PS: pour tes points positifs (bon ok y'a que ça pas de négatif, serait-ce le framework parfait?) je t'informe que tous ceux qui ont été cité par toi sont également intégrés dans ReactNative. sauf pour le dernier point et l'aspect "Angular" ou la chez RN c'est React ;)

-
Edité par Sh1n1x 11 août 2017 à 12:45:29

  • Partager sur Facebook
  • Partager sur Twitter
19 août 2017 à 12:48:11

@Sh1n1x au vu de tes réponses, tu n'as pas du bien lire mon commentaire. Je vais donc le refaire différemment pour répondre à tes interrogations.


Sh1n1x a écrit:

Voilà, merci :D


Comme je l'ai dit, je ne suis pas front A LA BASE. J'ai cependant un profil assez orienté "full stack" sans me revendiquer comme tel car c'est un bien grand mot. Je sais intégrer, je sais designer, je sais manipuler à plus petite dose des frameworks front. Je peux donc me permettre de l'ouvrir un peu sur ce post au vu de mes connaissances sur le sujet. Loin de moi l'idée d'aiguiller des gens lorsque je ne connais pas le sujet.

Concernant ton argument à propos des moteurs WebView, depuis sa version 4.4, Android n'utilise plus qu'un seul moteur de rendu pour ses applis et c'est celui de Chromium. Apple un seul aussi. Résultat : 2 tests fonctionnels et d'interface et c'est fini. Considérer que la moindre mis à jour du moteur va mettre en danger ton appli signifie que tu gères mal les dépendances de ton app. Car tu as le même problème avec toutes les mises à jour de l'OS pour du natif.

Pour ce qui du fait que tu n'as vu personne dire de Ionic 1 qu'il était nul, je t'invite à lire les propos de notre cher collègue Corentin qui en parle d'une "pourriture sans pareille mesure". Tu as raison, nul n'est pas le bon mot ;)

Par contre, moi je peux assurer ne pas avoir dit de Ionic que c'était le framework parfait. Sinon il faut me dire où. Par exemple, je pointe son problème de performances encore d'actualité bien qu'en nette amélioration grâce à Angular 4. D'ailleurs quand tu dis "ReactNative intègre ça également etc". Qui a dit le contraire? J'ai dis très clairement que je ne connaissais pas ReactNative et que donc je n'en parlerais pas. Je parle donc uniquement des aspects positifs du framework que je connais. Tu as des actions chez Facebook pour vouloir à tout pris monter au créneau dès qu'on dit du bien d'un autre Framework?

-
Edité par JasonBenett 19 août 2017 à 12:56:04

  • Partager sur Facebook
  • Partager sur Twitter

Développeur PHP/Symfony/JS le jour, d'applications mobiles la nuit, Photoshopman à mes heures et guitar addict!

20 octobre 2017 à 11:16:42

salut je suis un vrai debutant sur ionic et j'aimerais quelqu'un qui vas me suivre svp

tchoumkevaldo@gmail.com

  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2017 à 0:49:43

Je suit ionic depuis sa version 1.0 jusqu'aujourdui ionic 3

Je parlerai de ma petite experience

-Ionic 3 est facile à prendre à main contrairement à celui qui veut débuter en react native , alors ideal pour le debutant dans l'univers des apps mobiles je te conseille ionic , sa version 3 à une documentation bien claire

-React Native , c'est pour celui qui est partant pour des grand projet et qui bonne base en js avant de parler jsx ou ts et tsx

Ionic3 et React native sont tres different meme s"ils tentent de nous conduire au meme resultat

Pour mieux comprendre ces deux il faut aller à la base Angular 4 et React

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
17 février 2018 à 10:13:13

Avec trop de retard haha

Personellement je suis plus pour le Ionic car déjà la parti graphique est un mélange de tout PHP et HTML car pour créer des couleurs on uttilise $color{

ta couleur : #fffff;

}

Mais après il a un gros problème c'est qu'il fait trop de MàJ il m'a fallut 2 heure pour savoir comment connecté firebase a ionic mais la je suis paumé car je sais que insérer du texte a firebase mais pas en extraire pour l'afficher ...


  • Partager sur Facebook
  • Partager sur Twitter
20 février 2018 à 12:00:17

alloulyacine a écrit:

Avec trop de retard haha

Personellement je suis plus pour le Ionic car déjà la parti graphique est un mélange de tout PHP et HTML car pour créer des couleurs on uttilise $color{

ta couleur : #fffff;

}

Mais après il a un gros problème c'est qu'il fait trop de MàJ il m'a fallut 2 heure pour savoir comment connecté firebase a ionic mais la je suis paumé car je sais que insérer du texte a firebase mais pas en extraire pour l'afficher ...

Je ne peux vraiment pas lire des choses pareilles... Il va falloir lire un peu plus de documentation...

Non Ionic n'a RIEN à voir avec PHP. Mais alors rien du tout. C'est un framework front-end Javascript. Quand tu codes dans ce framework, tu fais du Javascript et rien de plus. Ca s'arrête là. Et c'est pas parce que tu vois un "$" pour déclarer une variable SASS que c'est du PHP. Ca reste du SASS.

  • Partager sur Facebook
  • Partager sur Twitter

Développeur PHP/Symfony/JS le jour, d'applications mobiles la nuit, Photoshopman à mes heures et guitar addict!

Anonyme
20 février 2018 à 13:12:56

Je sais c'est pour sa que je dis c'est un remix de tout Une personne qui ne connais pas les variable SASS et qui connais le PHP peux très bien penser que c'est un peux comme le php pour la parti graphique
  • Partager sur Facebook
  • Partager sur Twitter
20 février 2018 à 13:54:24

alloulyacine a écrit:

Je sais c'est pour sa que je dis c'est un remix de tout Une personne qui ne connais pas les variable SASS et qui connais le PHP peux très bien penser que c'est un peux comme le php pour la parti graphique


Ici c'est un forum dont l'objectif est d'évoluer ensemble et d'acquérir des connaissances et de solutions aux problèmes que l'on rencontre. Tu mélanges beaucoup de choses et tu sembles vouloir mieux savoir que les autres. Alors reste sur tes acquis ça n'est pas très grave. Mais non, ce n'est pas "un mélange de tout". Pas du tout.
  • Partager sur Facebook
  • Partager sur Twitter

Développeur PHP/Symfony/JS le jour, d'applications mobiles la nuit, Photoshopman à mes heures et guitar addict!

22 mars 2018 à 14:36:21

look also at the article Vue.js Vs React.js. Really great research, hope you will like it
  • Partager sur Facebook
  • Partager sur Twitter
3 février 2020 à 12:48:05 - Message modéré pour le motif suivant : Toute forme de publicité est interdite


21 février 2020 à 13:46:45

Bonjour,

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL