On pourrait dire qu'il y a environ trois façons de construire
une application React Native - l'une est avec expo avec le soi-disant workflow
géré, c'est l'approche que nous avons utilisée dans le cours et cela a une sorte de ligne pointillée autour
d'elle parce que ce n'est pas vraiment une alternative pour créer une application non-expo, cela embrasse bien sûr fortement
expo à la
place, c'est l'approche que nous utilisons dans le cours. Il est facile à utiliser, a une configuration à peu près nulle, il
fonctionne prêt à l'emploi, vous pouvez facilement tester l'application sur un vrai appareil, vous avez beaucoup de modules natifs intégrés qui sont super faciles à installer et à utiliser.
Il est contrôlé avec l'expo CLI, vous tapez simplement npm start ou expo start, vous avez les outils de développement expo dans le
navigateur, il est facile à exécuter sur des simulateurs et de vrais appareils et vous pouvez toujours obtenir une application autonome que vous pouvez déployer, qui, comme je
l'ai expliqué, contient le client expo comme un wrapper pour ainsi dire. Comme vous pouvez également le tester
facilement sur de vrais appareils, vous n'avez même pas besoin d'installer Android Studio
ou Xcode pour créer une application avec expo. Je l'ai installé et je vous ai demandé de l'installer également pour ce cours
afin que nous puissions faire tourner des simulateurs et le tester là-bas parce que je ne voulais pas constamment le tester sur un
vrai appareil et enregistrer cet écran, mais vous ne le faites pas '' t besoin de le faire, vous pouvez le tester sur
un appareil réel avec l'application client expo installée uniquement là, c'est donc quelque
chose que vous pouvez faire. Maintenant, c'est l'approche
que nous avons utilisée, mais bien sûr, il s'agit alors d'une application expo lourde, c'est une application
entièrement dans l'écosystème expo avec toutes les restrictions ou les inconvénients que j'ai décrits.
Maintenant, une alternative à cela est que vous utilisez toujours expo mais le soi-disant flux de travail nu ou
que vous créez une application React Native sans expo avec la CLI React Native.
Maintenant, le flux de travail expo peut être créé à partir de zéro ou en éjectant du flux de travail géré et c'est quelque
chose que je vais également vous montrer dans ce module.
Maintenant, lorsque vous créez une application avec le flux de travail nu, vous obtenez une application non expo, vous créez une application native
comme vous le feriez avec la
CLI React Native, donc vous obtenez la même
base là-bas, la différence est que vous pouvez toujours utilisez des packages d'expositions spéciaux. Leur installation est un peu plus complexe que lorsque vous êtes
dans le flux de travail géré, vous devez effectuer plus de travaux de câblage manuel, au moins pour certains
packages, mais beaucoup, pas tous, mais de nombreux packages d'expo qui sont inclus dans le flux de travail géré. sont disponibles en tant
que packages autonomes que vous pouvez également apporter à n'importe quelle application React Native et l'équipe
expo travaille à rendre de plus en plus de packages disponibles en dehors du flux de travail géré.
Vous pouvez donc apporter cela et avec le flux de travail nu, il est relativement facile d'ajouter ces packages, pas aussi faciles et rapides que dans le
flux de travail de gestion, mais tout de même, très facile. Lors de la création d'une application sans expo, avec la
CLI React Native,
vous pouvez toujours apporter ces packages, mais une configuration plus manuelle est nécessaire. Maintenant, comme je l'ai dit, il est relativement facile à configurer
et à gérer dans le flux de travail nu, vous
devez gérer davantage dans le flux de travail React
Native CLI, donc là, vous construisez vraiment tout sans aucun support par expo. En ce qui concerne les modules natifs que vous utilisez, vous pouvez utiliser
n'importe quel module natif que vous souhaitez, également des modules non expo, vous pouvez apporter ces packages d'expositions spéciaux que
vous devez câbler manuellement mais vous pouvez apporter n'importe quel autre module natif.
Maintenant, lorsque nous arrivons à créer l'application et à la distribuer, avec le flux de travail
géré que vous verrez dans le module de déploiement qui est super facile à faire, avec le flux de travail nu, c'est un peu
"plus difficile" entre guillemets, cela nécessite plus de travail avec Android Studio et Xcode et ce n'est pas aussi facile qu'avec le workflow
géré par expo, vous aussi par exemple et c'est une restriction importante, vous ne pourrez pas créer d'applications iOS
sur Windows.
Cela est possible dans le flux de travail géré, car la génération ne se fera pas sur votre machine,
mais dans le cloud, avec le flux de travail nu et avec la CLI React Native, vous êtes responsable
de la création des applications et, par conséquent, vous devez le faire localement. sur votre machine et donc en
raison des restrictions d'Apple, vous ne pourrez pas créer une application iOS sur Windows ou Linux, c'est donc
une chose à garder à l'esprit également.
Donc, vous faites tout cela par vous-même, vous avez
donc besoin que ces outils soient installés et bien que vous ne les utilisiez pas pour écrire du code, vous devrez les tripoter un
peu et vous les utiliserez pour ensuite créer votre application et déployer à la fin. Ce sont les
alternatives. Maintenant, pour le déploiement, je
vais avoir un module distinct où j'examine comment cela fonctionne avec le flux de travail géré et également sans le flux de
travail géré, donc ce n'est pas quelque
chose sur lequel je vais me concentrer dans ce module, mais plutôt
dans ce module que je veux pour vous montrer comment vous créez une application avec React Native CLI, comment vous la créez
également avec expo dans le flux de travail nu et comment vous pouvez éjecter du flux de travail géré vers le flux
de travail nu.
Nous verrons également comment vous pouvez ajouter des fonctionnalités de périphérique natif dans ces deux alternatives, car
c'est la partie où il diffère principalement du flux de travail géré.
La façon dont vous écrivez vos composants et ainsi de suite et les composants que vous utilisez à partir de React Native, cela ne diffère
pas du tout car il n'y avait rien de spécifique à propos de l'expo. En d'autres termes, si nous jetons un coup
d'œil au projet sur lequel nous avons travaillé plus tôt dans
le cours, ce projet de module natif, essentiellement ce que vous perdrez lorsque vous n'utiliserez pas le flux
de travail géré, ce sont toutes les importations liées à l'expo, tout ce que
vous 'importe de l'expo, c'est quelque chose qui est maintenant plus difficile ou que vous devez maintenant faire différemment.
Si vous n'utilisez pas expo comme dans ce fichier, un tel fichier n'aurait pas besoin de changer du tout,
seuls les fichiers où vous utilisez quelque chose d'expo doivent être ajustés ou doivent être implémentés différemment lorsque vous n'utilisez
pas le flux de travail géré ou pour être précis, vous pourriez ne plus être en mesure d'utiliser certains packages ou vous
pouvez toujours les utiliser et vous n'avez probablement même pas besoin de toucher votre code, mais
pour les utiliser, vous devez effectuer plus de travail de configuration manuelle que nécessaire. faire avec expo et
le workflow géré.