Si potrebbe dire che ci sono circa tre modi per
costruire un'app React Native: uno è in mostra con il cosiddetto flusso
di lavoro gestito, questo è l'approccio che abbiamo usato nel corso e questo ha una sorta di
linea tratteggiata attorno ad esso perché non è proprio un'alternativa per la creazione di un'app non expo,
questo ovviamente
abbraccia pesantemente l'expo, è l'approccio che usiamo nel corso. È facile da usare, ha praticamente zero impostazioni, funziona immediatamente,
puoi facilmente testare l'app su un dispositivo reale, hai un sacco di moduli nativi integrati che sono super facili da installare e da usare.
È controllato con la CLI di expo, basta digitare npm start o expo start, hai gli strumenti di sviluppo
expo nel browser, è facile da eseguire su simulatori e dispositivi reali e puoi ancora ottenere un'app standalone che puoi distribuire, che come ho
spiegato contiene il client expo come wrapper per così dire. Dal momento che puoi anche testarlo
facilmente su dispositivi reali, tecnicamente non hai nemmeno bisogno di installare Android
Studio o Xcode per creare un'app con Expo. L'ho installato e ti ho chiesto di installarlo anche per questo
corso in modo da poter far girare i simulatori e testarlo lì perché non volevo costantemente testarlo su un
dispositivo reale e registrare quello schermo ma non lo fai ' Non è necessario, puoi provarlo su un
dispositivo reale con l'app client expo installata solo lì, quindi è
qualcosa che puoi fare. Ora questo è
l'approccio che abbiamo usato, ma ovviamente questa è un'app pesante per l'Expo, è un'app completamente
nell'ecosistema dell'Expo con tutte le restrizioni o gli svantaggi che ho delineato.
Ora un'alternativa a quella è che usi ancora expo ma il cosiddetto flusso di lavoro nudo o
che costruisci un'app React Native senza expo con la CLI React Native.
Ora la cosa nuda del flusso di lavoro di expo può essere creata da zero o espellendo dal flusso di lavoro gestito e
questo è qualcosa che ti mostrerò anche in questo modulo.
Ora quando crei un'app con il flusso di lavoro nudo, ottieni un'app non expo, crei un'app nativa come
la creeresti con la CLI
React Native, quindi ottieni le stesse basi
lì, la differenza è che puoi ancora utilizzare pacchetti speciali expo. L'installazione è un po 'più complessa rispetto a quando si
è nel flusso di lavoro gestito, è necessario eseguire più lavori di cablaggio manuale, almeno per alcuni
pacchetti ma molti, non tutti, ma molti dei pacchetti expo inclusi nel flusso di lavoro gestito sono disponibili come pacchetti standalone
che puoi portare anche a qualsiasi app React Native e il team di expo
sta lavorando per rendere sempre più pacchetti disponibili al di fuori del flusso di lavoro gestito.
Quindi puoi portarlo e con il flusso di lavoro nudo, è relativamente facile aggiungere questi pacchetti, non facile e veloce come nel
flusso di lavoro di gestione ma comunque molto semplice. Quando si crea un'app senza Expo, con la CLI
React Native, è
ancora possibile portare questi pacchetti, ma è necessaria una configurazione manuale maggiore. Ora, come ho detto, è relativamente facile da configurare e
gestire nel flusso di lavoro nudo, è necessario gestire di
più nel flusso di lavoro della CLI nativa
di React, quindi lì si crea davvero tutto senza il supporto di expo. Per quanto riguarda i moduli nativi che usi, puoi usare
qualsiasi modulo nativo che desideri, anche quelli non expo, puoi portare questi speciali pacchetti expo che
devi collegare manualmente ma puoi portare qualsiasi altro modulo nativo.
Ora, quando arriviamo a costruire l'app e distribuirla, con il flusso di lavoro gestito
che vedrai nel modulo di distribuzione è super facile da fare, con il flusso di lavoro nudo è un po 'più "difficile"
tra virgolette, richiede più lavoro con Android Studio e Xcode e non è facile come con il flusso di lavoro gestito
dall'Expo, anche tu ad esempio e questa è un'importante limitazione, non sarai in grado di creare app iOS
su Windows.
Ciò è possibile nel flusso di lavoro gestito perché la compilazione non avverrà sul tuo computer lì ma
nel cloud, con il flusso di lavoro nudo e con la CLI nativa React, sei responsabile della creazione
delle app e, quindi, devi farlo localmente sul tuo computer e quindi a causa delle restrizioni di
Apple, non sarai in grado di creare un'app iOS su Windows o Linux, quindi questa è una
cosa da tenere a mente anche lì.
Quindi fai tutto da solo lì, quindi
hai bisogno di questi strumenti installati e mentre non li userai per scrivere il codice, dovrai giocarci un po 'intorno
e li userai per poi costruire la tua app e distribuire alla fine. Queste sono le
alternative. Ora per la distribuzione,
avrò un modulo separato in cui darò un'occhiata a come funziona con il flusso di lavoro gestito e anche senza
il flusso di lavoro gestito, quindi
non è qualcosa su cui mi concentrerò in questo modulo, invece
in questo modulo voglio per mostrare come creare un'app con l'interfaccia della riga di comando nativa di React, come crearla
anche con expo nel flusso di lavoro nudo e come è possibile espellere dal flusso di lavoro gestito al flusso
di lavoro nudo.
Vedremo anche come è possibile aggiungere alcune funzionalità del dispositivo nativo in queste due alternative perché questa
è la parte in cui differisce maggiormente dal flusso di lavoro gestito.
Il modo in cui scrivi i tuoi componenti e così via e quali componenti usi da React Native, ciò non
differisce affatto perché non c'era nulla di specifico sull'Expo in questo. In altre parole, se diamo un'occhiata
al progetto a cui abbiamo lavorato in precedenza nel corso,
questo progetto di modulo nativo, essenzialmente ciò che perderai quando non utilizzi il flusso di lavoro
gestito sono tutte le importazioni relative all'Expo, tutto ciò che Stai importando
da Expo, questo è fondamentalmente qualcosa che ora è più difficile o che ora devi fare diversamente.
Se non si utilizza expo come in questo file, tale file non dovrebbe essere modificato affatto, solo i
file in cui si utilizza qualcosa di expo devono essere modificati o devono essere implementati in modo diverso quando non
si utilizza il flusso di lavoro gestito o preciso, potresti non essere più in grado di utilizzare determinati pacchetti o puoi
comunque usarli e probabilmente non avrai nemmeno bisogno di toccare il tuo codice, ma per usarli
devi fare più lavoro di installazione manuale di quello che devi fare con expo e il flusso di
lavoro gestito.