Réagir natif vs créer réagir application native
je veux commencer par le développement d'applications natives react et j'ai besoin d'aide pour décider du chemin que je dois prendre.
la question principale est: Dois-je utiliser react native ou créer react native app?
D'après ce que j'ai compris, CRNA est vraiment natif react en utilisant le client expo et les outils, avec une utilisation plus confortable (pas de Compte dev requis, etc)
je vois les avantages de l'utilisation de CRNA par rapport à react natif (pas besoin de configurer les dépendances, plus vite le temps pour commencer avec le développement, pas besoin de compte iPhone dev ou Xcode + android combi,etc.)
cependant, comme toutes les bibliothèques natives ne sont pas incluses, je me vois dans le besoin d'exporter mon application à un point ultérieur de toute façon et de continuer à travailler avec xcode et android studio comme avant.
donc, si CRNA est juste une bonne façon de commencer avec tout, alors j'irais pour vanilla react native tout de suite car je ne vois pas l'intérêt d'une solution temporaire du tout.
également, et peut-être Pouvez-vous me corriger sur ce, je n'aime pas l'idée d'avoir juste un autre emballage sur le dessus de mon application, à moins qu'il n'y ait quelques avantages plus cruciaux que j'ai manqué.
alors pourriez-vous s'il vous plaît partager votre opinion à ce sujet? Si vous avez déjà développé des applications avec réagissent natif dans le passé, quel chemin avez-vous et quel chemin allez-vous aller dans le futur? React native, CRNA ou react native and expo environment?
Merci d'avance.
3 réponses
étant donné que j'ai un arrière-plan frontal et que je ne connaissais pas XCode ou Android Studio, j'ai décidé de lancer mon développement d'application natif à partir de CRNA.
en effet avec juste un éditeur de texte, purement avec javascript et en utilisant des composants intégrés expo SDK j'ai été rapidement capable de mettre en œuvre et de publier à Play Store une application assez simple. Que je trouve vraiment incroyable :)
Cependant après avoir publié l'application, j'ai réalisé qu'il y avait des pièges qui l'empêchaient de rivaliser avec des applications Java rivales similaires:
exp service. Pour l'application avec seulement 3 écrans et pas beaucoup de logique métier, 25 mo et environ 60 mo après l'installation est vraiment beaucoup. selon expo devs les applications plus complexes seront à peu près de la même taille ou seulement légèrement plus grandes en raison de la majeure partie de la taille étant les dépendances natives, et pas le côté javascript. Mais c'est quand même un gros problème et je le devrai probablement de toute façoneject
l'application pour optimiser la taille de construction
donc, en général CRNA est un excellent et rapide moyen de commencer et avoir quelque chose qui fonctionne, mais encore avant de publier l'application aux utilisateurs, vous ne serez pas éviter de mettre en place votre construction personnalisée et toutes les dépendances comme Android Studio
je pense que create-react-native-app est une bonne façon de commencer pour que vous puissiez vous concentrer sur le React
partie de réagir indigènes, surtout si vous n'êtes pas familier avec Réagir. Et quand vous êtes prêt à faire des choses avec native vous pouvez simplement vous éjecter avec npm run eject
lorsque j'ai commencé un nouveau projet avec react native à la fin de l'année dernière, il n'y avait pas de create-react-native-app et j'ai évalué expo en premier. Je ne l'ai pas aimé car il n'y avait pas d'intégration autochtone facile à moins que vous éjectez alors que je sais à coup sûr nous aurez besoin d'une intégration native. Par conséquent, je suis allé avec vanille réagir natif. En outre, j'ai déjà eu l'expérience avec React sur le web et iOS et Android développement natif.
TLDR
si vous créez projet parcreate_react_native_app myproject
alors il contient expo
paramètre (pas recommandé )
si vous créez projet parreact-native myproject
puis sa plaine réagir indigènes (recommandé pour les petits ,moyens,grands projets )
Remarque: : pour utiliser react-native
commande dans le terminal ce lien