Alors maintenant que nous avons appris
toutes ces alternatives, la question évidente est, quelle approche devriez-vous utiliser pour votre application?
Maintenant, je pense que tout au long du cours, vous avez vu que l'utilisation d'expo en général est une expérience de
développement impressionnante, tout est super rapide, il est facile de tester les changements à la fois sur des simulateurs et sur de vrais appareils.
Vous n'avez pas besoin de construire
localement, donc vous pouvez également construire et tester pour et sur iOS, sur les systèmes Windows et Linux, ce qui n'est pas
possible sans le flux de travail
géré et c'est assez cool.
Mais lorsque nous comparons des configurations expo à non-expo et avec non-expo, je veux dire à la fois le créer avec
React Native CLI ou utiliser un flux de travail expo nu, alors bien
sûr, nous devons comparer toutes les choses.
Donc, comme mentionné avec expo, avec le flux de travail géré, il est facile à utiliser, facile à développer, non-expo
signifie une configuration plus manuelle et ainsi de suite.
Maintenant, vous aurez également un temps facile à déployer votre application comme vous le verrez également dans la section de déploiement
et vous pouvez même créer et déployer pour iOS si vous êtes sur la machine Windows ou
Linux, ce qui n'est pas possible sans le flux de travail géré.
Donc là, vous avez des restrictions et le déploiement comme vous le verrez prend également
plus de travail manuel, comme le workflow non-expo en général. Dans le monde du flux de travail géré par expo, nous avons
également une riche gamme de
modules natifs, donc toutes ces API expo qui sont toujours faciles à utiliser, juste une expo installée loin, n'ont besoin d'aucune configuration, c'est vraiment
incroyable
et vous êtes vraiment jolie tout ce que vous pourriez souhaiter dans une application native
là-bas - caméra, emplacement, système de fichiers, tout est là.
Si vous avez parfois besoin de quelque chose qui n'est pas pris en charge ou si vous devez écrire
votre propre code natif que vous souhaitez vous connecter à React Native, votre propre package ou quoi que ce soit, alors la non-expo est la solution.
Vous pouvez donc utiliser n'importe quel code natif, mais bien sûr, vous devez le configurer manuellement et cela pourrait être
facile avec React Native link comme vous l'avez vu ou même certaines bibliothèques de liaison automatique, mais vous pourriez également avoir des
bibliothèques qui demandent plus d'efforts.
En outre, il convient de noter que, bien sûr, les bibliothèques tierces doivent être maintenues pour rester
à jour avec React Native et les versions plus récentes de React Native, mais elles doivent également rester à
jour avec Android et
iOS, à droite, car ces plateformes évoluer et introduire de nouvelles fonctionnalités ou déprécier d'anciennes fonctionnalités.
Les API expo sont quasiment garanties d'être maintenues car l'équipe expo est active, y travaille et
c'est tout un écosystème qui fonctionne ensemble.
Cela pourrait ne pas être vrai pour tous les
packages tiers, donc cette sécurité supplémentaire que vous obtenez avec les packages expo est certainement très agréable.
Cela étant dit, comme vous l'avez vu avec le flux de travail nu, vous pouvez bien sûr également ajouter certaines API expo,
mais pas toutes, aux applications non
gérées, ce qui est possible mais prend un peu plus de travail. Maintenant, bien sûr, le flux de travail géré a des inconvénients, c'est un wrapper
autour de votre application et cela a bien sûr un impact sur la taille et les performances,
probablement pas d'une manière que vous ressentirez ou verrez, mais il convient de noter, il y a un wrapper supplémentaire mince et vous n'avez pas
cela dans le flux de travail nu ou lorsque vous travaillez simplement avec la React Native CLI et
bien sûr, comme mentionné, vous êtes limité aux modules natifs intégrés.
Il y en a beaucoup et probablement tout ce dont vous pourriez avoir
besoin mais si vous avez besoin d'autre chose qui n'est pas intégré
à expo, donc une API qui n'est pas prise en charge par expo, alors il n'y a
aucun moyen de le faire fonctionner, alors vous avez besoin à éjecter,
car seules les applications non expo et, avec cela, les applications de workflow non gérées prennent en charge tous les packages tiers et tous les modules
natifs que vous souhaitez utiliser.
Par conséquent, ma suggestion serait que pour la plupart des applications, presque toutes les applications probablement,
vous travaillez avec expo en raison de la grande expérience de développement et de la grande flexibilité que vous y avez.
Comme vous pouvez toujours éjecter, il n'y a pas grand-chose à perdre, vous pouvez toujours revenir à une application gérée non-expo si
vous le
souhaitez comme vous l'avez vu, en commençant par une telle application non-expo, donc
avec une application nue ou même avec juste une application CLI React Native est une
bonne idée si vous savez que vous aurez besoin de nombreuses fonctionnalités natives qui ne sont pas prises en charge par
expo ou si vous construisez une application hautes performances où chaque kilo-octet d'emballages supplémentaires compte, alors bien sûr vous pourrait
commencer avec une telle application mais sinon je ne vois vraiment aucune raison valable pour ne pas utiliser expo et surtout
si vous ne travaillez
pas dans une grande équipe, dans une entreprise ou quelque chose comme ça, être capable de
créer des applications iOS sur Windows aussi est vraiment une bonne chose, donc cela
seul est aussi une bonne raison de rester dans le monde géré. Donc, ce sont mes deux cents à ce sujet, puisque vous pouvez
éjecter, ce n'est pas
comme si vous deviez vous en tenir à
une seule solution si vous commencez avec elle, revenir simplement à zéro ou la configuration de React Native CLI uniquement au flux de
travail géré est un peu plus délicat car là, vous devez créer un nouveau projet géré par expo,
copier sur votre code et si vous avez utilisé des bibliothèques tierces qui ne sont pas de expo, vous ne pourrez plus
les utiliser.
Donc, revenir en arrière peut
être difficile, passer de l'expo géré à l'expo non géré, c'est assez facile avec l'éjection.