Quindi ora che sappiamo cos'è
React Native, diamo una breve occhiata dietro le quinte.
Ora, come ho già detto, con React e React Native, costruiamo un'app e il nostro codice in genere è simile
a questo.
Costruiamo normali componenti di React come lo conosci dal web con Javascript perché Javascript è il
linguaggio che usiamo per costruire app
React Native ma qui, usiamo componenti speciali come visualizzazione e testo qui.
Questi non sono i tuoi normali elementi HTML perché i normali elementi HTML
non sono supportati, le piattaforme native non sanno come usarli, quindi usi componenti speciali forniti
da React Native per i quali React Native è in grado di tradurli in istruzioni
le piattaforme native capiscono, quindi è così che funziona.
Ora è importante capire che le tue viste, quindi i componenti con cui stai lavorando, quindi sono alla fine
compilati in veri widget nativi, in veri elementi nativi, in vero codice nativo. Il tuo codice Javascript in cui gestisci la tua logica
aziendale non verrà compilato ma le tue opinioni lo saranno e questo ovviamente significa anche
che in genere ottieni grandi prestazioni quando crei app React Native perché il risultato è una vera
app nativa in cui una grande porzione del il codice è un vero codice nativo.
Ora, se diamo un'occhiata più da vicino a questa componente, è importante capire che puoi ovviamente
usare React per la creazione di app Web ma che puoi anche creare app native per Android e iOS con
codice nativo, quindi senza React Native o che tu può utilizzare React Native, quindi questi sono quattro modi diversi
di creare app in cui ovviamente React per il Web non ci fornirà un'app nativa ma solo per
confrontare il modo in cui ciò sarebbe correlato.
Quindi, se stai usando React per il web, di solito lavori con diciamo un div per strutturare i tuoi contenuti.
Se dovessi lavorare direttamente con
Android, quindi costruiresti la tua app in Android Studio senza React Native, ad esempio lavoreresti con una
vista Android, che sarebbe un widget che puoi usare lì nell'interfaccia utente che stai costruendo direttamente
con le funzionalità della piattaforma nativa per strutturare i tuoi contenuti. Su iOS, quello sarebbe il widget di visualizzazione dell'interfaccia utente e non
è necessario memorizzare questi
termini, voglio solo spiegare come React Native traduce le cose per te perché nelle app
React Native usi effettivamente l'elemento view.
Ora, se dai un'occhiata a quell'elemento vista, ovviamente vedi che è molto simile all'elemento
div, sembra un tag
HTML, la differenza ovviamente è che inizia con un carattere maiuscolo e che la vista non è
un tag HTML , il browser non saprebbe cosa fare con una vista ma React Native lo
fa e React Native tradurrà quella vista nella vista Android o nella vista dell'interfaccia utente per te e lo fa ovviamente
non solo per questa vista componente generale del wrapper ma ad esempio, se stai recuperando l'input dell'utente, sul Web
lo faresti con l'elemento di input, se costruissi un'app Android nativa, utilizzi il testo di
modifica, per un'app iOS nativa, utilizzeresti il campo di testo dell'interfaccia utente e in React Native, c'è
il componente di input di testo, di nuovo React Native lo compila nei widget nativi per te ed è
così che React Native lavora dietro le quinte. Ovviamente non ci interessa il web in questo
corso qui, solo per capire che ci sono alcune somiglianze, usiamo questi tag che assomigliano a tag HTML ma ovviamente, la
differenza importante è che si tratta di componenti speciali compilati al codice nativo. Ora, come ho già detto, è importante capire che
per l'interfaccia utente, React Native ti offre componenti speciali che vengono quindi compilati per l'uso
nativo, per l'altra tua logica,
quindi se stai utilizzando Redux o se hai una logica aziendale, quando invii richieste
HTTP, stai trasformando dati, tutto il tuo altro codice Javascript non è compilato in codice nativo ma, invece, è in esecuzione
su un thread speciale ospitato da React Native. Quindi puoi immaginare la tua app React Native che ottieni
alla fine come una vera e propria app nativa perché è una, in cui tutte le visualizzazioni sono
state compilate in widget nativi ma dove c'è una mini app in più all'interno della tua app, un mini Javascript app in esecuzione lì, ospitata
e avviata da React Native per così dire, che esegue tutto il tuo codice Javascript e il tuo codice Javascript può quindi parlare con
la piattaforma nativa.
Puoi immaginarlo in questo modo qui, hai il tuo codice, la tua app e costruisci un'app nativa e che
è in esecuzione su una piattaforma nativa e, naturalmente, ci sono alcune funzionalità della piattaforma disponibili come ad
esempio l'utilizzo della fotocamera del dispositivo.
Ora, come già accennato, il tuo codice può essere suddiviso in due cose qui: le tue opinioni
e la tua logica aziendale, quindi l'altro codice Javascript. Ora, come già accennato più volte, le
tue visualizzazioni sono compilate in visualizzazioni native, in widget nativi per queste piattaforme e il tuo codice è comunque conservato come codice Javascript e puoi
sfruttare le funzionalità della piattaforma nativa come la fotocamera perché il tuo codice Javascript viene eseguito in uno speciale virtuale
macchina alla fine, messa a punto e ospitata da React Native all'interno della tua app, quindi
la parte giusta qui è tutta all'interno della nostra app nativa che spediamo negli app store e quel codice
Javascript, questa macchina virtuale Javascript, sa parlare alle funzionalità della piattaforma nativa, quindi alla fine il
sistema operativo su cui è in esecuzione la tua app attraverso un
bridge speciale che potresti dire e quel bridge e quella macchina virtuale, il tutto automaticamente fornito da React Native.
Non devi preoccuparti
di questo, tutto ciò che fai è scrivere la tua app React Native con Javascript e con questi componenti speciali e questo è
tutto ciò che devi sapere
per ora, ecco come funziona un'app React Native dietro le quinte e io trova importante esserne consapevoli perché toglie un
po 'di magia in senso positivo perché capisci cosa stai effettivamente scrivendo e cosa accadrà con il tuo codice
e come questo codice finirà in un'app nativa e, naturalmente, capisci anche che
hai una vera app nativa quindi alla fine. Non tutto il tuo codice è compilato, sarebbe
piuttosto impossibile
ma le tue viste sono compilate e, naturalmente, le viste, quindi la parte che l'utente vede, è la
parte più importante quando si tratta di prestazioni per un'app perché esegue il rendering dell'interfaccia utente e tutto
ciò, questa è in genere la parte
ad alta intensità di prestazioni ed è quindi molto positivo che questo sia compilato ed è
uno degli enormi punti di forza di React Native.