web-dev-qa-db-fra.com

Développement mobile JavaScript hybride - Apache Cordova vs condensateur avec Ionic vs NativeScript vs React Native

Tout d'abord, espérons que cette question ne soit pas trop large. Venant de l'arrière-plan, je pense commencer à apprendre l'un des cadres liés au JavaScript pour le développement mobile. Et voici la première question, dois-je aller avec Apache Cordova ou Condensateur? Le premier que j'ai utilisé pour le développement de jeux Phaser (HTML5) comme projet de loisir, pas la meilleure expérience pour être honnête. Je pouvais sentir pourquoi Apache Cordova est l'une des technologies les plus détestées selon les rapports annuels de Stack Overflow.

Ensuite vient la deuxième question, dois-je aller avec Ionic, NativeScript ou React Native? React est le seul front-end) cadre du "grand 3" que je ne me sens pas à l'aise jusqu'à présent. Mon expérience avec Angular et Vue.js sont plutôt positifs et je voudrais utiliser l'un de ces éléments dans mes projets d'applications mobiles aussi, donc je suis un peu biaisé en Ionic ou NativeScript. De l'autre côté, React Native a le plus d'étoiles GitHub. Je pense qu'il pourrait y avoir être une raison pour cela.

Puis le dernier, puis-je combiner n'importe lequel de: Apache Cordova/Capacitor avec l'un de: Ionic/NativeScript/React Native ou il y a certaines choses qui facilitent le travail, par exemple une combinaison de condensateur et ionique? = La même entreprise fait cela, donc je suppose que la combinaison devrait être relativement homogène.

Modifier:

Dernier point - pour faire PWA à partir de la même base de code de mon application mobile, je suis obligé d'utiliser Ionic uniquement?

3

Dans une certaine mesure, la réponse dépendra de votre expérience/connaissances personnelles, de vos préférences personnelles (comment vous pensez et travaillez) et, enfin, des exigences de performance que vous projetez. Comme vous, j'ai également examiné tous ces cadres et j'en ai utilisé la plupart. Chacun d'entre eux finira par faire le travail. Cependant, la seule chose que j'ai trouvée est que les frameworks tels que Cordova, qui exécute une vue Web enveloppée dans une application native, peuvent avoir des problèmes de performances notables lorsque vous essayez de la pousser. Un framework qui utilise des composants natifs réels et se compile en code natif sera finalement plus réactif. Cependant, même dans ce cas, vous pouvez trouver des cas où il ne correspond pas au code écrit en natif. Par exemple, j'ai travaillé sur un projet il y a un peu plus d'un an où nous avons commencé avec React Native. Tout allait bien jusqu'à ce que nous commencions à essayer de faire une animation de carte en temps réel avec géolocalisation et interaction avec l'utilisateur. À ce moment-là, nous avons commencé à voir du décalage et du bégaiement, même sur des appareils neufs. Pour ce projet, nous avons finalement mordu la balle et recommencé en pur natif. Nous demandions simplement trop de cadre.

Actuellement, je travaille sur un projet utilisant NativeScript avec Vue. Et, jusqu'à présent, je suis assez étourdi avec ça. Comme vous, je suis un fan de VueJS, principalement parce que j'aime la façon dont Vuex et la liaison de données globale sont traitées. Il y avait certainement des courbes et des paradigmes d'apprentissage pour comprendre, mais j'ai commencé à faire un pas après une semaine environ. Cela étant dit, je n'ai pas encore vraiment poussé le cadre avec quelque chose comme des animations complexes. Mais c'est un framework mature, il est bien documenté et a une communauté active (j'ai rejoint l'espace de travail Slack presque immédiatement). Et j'aime absolument le fait qu'il n'a pas d'opinion sur le cadre que vous devriez utiliser. Vanilla JavaScript, React, Angular, Vue ... ça ne fait rien.

Si vous êtes préoccupé par la montée en puissance d'autres développeurs sur le projet, à l'avenir, il y aura certainement plus de gens familiers avec React Native. Là encore, tout développeur digne de ce nom devrait être capable de monter sur un nouveau cadre sans trop de difficulté. Si vous envisagez NativeScript, je vous recommande de jeter un œil à certains des exemples dans le Playground et de parcourir la documentation. Je pense que cela vous séduira ou repoussera Cela étant dit, je n'ai pas vraiment à me plaindre des autres cadres qui existent. Certains sont tout simplement plus appropriés pour certains types d'applications que d'autres.

Bonne chance!

1
Brandon Gohsman

C'est exact, NativeScript a ses propres composants natifs pour iOS/Android. Ce n'est pas un wrapper autour d'un autre cadre. Telerik l'a construit à partir de zéro. Il s'agit d'un écosystème autonome, actuellement à la version 6.x. Il existe donc depuis un certain temps et est activement développé et maintenu (ce qui ne garantit pas qu'il ne disparaîtra pas à un moment donné).

Pour quelque chose comme un PWA, Ionic ou Flutter sont des options. Et je suis tombé sur un nouveau via StackShare, ce matin, appelé Quasar qui semble intéressant ( https: // quasar. dev / ). Mais vous pouvez réellement créer un PWA à partir de la même base de code NativeScript que vous utilisez pour créer des applications mobiles ( https://www.nativescript.org/blog/how-to-build-a -pwa-an-ios-app-and-an-Android-app-from-one-codebase ). Il ne semble donc pas y avoir de pénurie d'outils, ce qui est bien car il vous donne le choix entre plusieurs options basées sur comment vous aimez travailler.

1
Brandon Gohsman