Comprensione delle distribuzioni native di React

Se arriverai a React Native da uno sfondo web o se non conosci la programmazione in generale, potresti essere confuso su ciò che puoi e non puoi fare con la tua app React Native distribuita.

Quando posso aggiornare le cose via etere (OTA)? Quando devo passare attraverso l'app store? Quali sono le mie restrizioni? Quali strumenti posso usare?

Voglio aiutare a rispondere a questa domanda oggi.

Le diverse parti di un'app nativa React

Innanzitutto, dobbiamo capire cosa succede in un'app React Native. Ci sono due cose:

  1. Il codice nativo
  2. Il codice JavaScript

Il codice nativo gestisce, bene, le cose native. È scritto in Objective-C (iOS) o Java (Android) e raramente dovrai lavorarci sopra e anche quando lo fai sarà probabilmente un lavoro minore.

Sebbene tu come sviluppatore di app lo tocchi raramente, ciò non significa che sia un pezzo minore di un'app React Native: è un grosso pezzo del puzzle. Quello che React Native fa è prendere il tuo JavaScript e usare quella logica per interagire con il codice nativo. In breve: React Native ci espone molte API native.

Il codice JavaScript, d'altra parte, è il luogo in cui trascorri la maggior parte del tuo tempo. Si utilizzano API diverse (siano esse React Native di base o da un pacchetto di terze parti) per interagire con le implementazioni native sottostanti.

Come aggiornare

La tua app è disponibile negli app store. Come lo aggiorni? Ci sono due modi.

Over-the-Air (OTA)

Un aggiornamento OTA fa praticamente quello che dice. Si invia un aggiornamento, l'utente lo scarica e gli aggiornamenti dell'app, proprio come il Web. In genere questo accade dietro le quinte. Gli aggiornamenti OTA sono un punto di forza di React Native (e altre tecnologie come Cordova). Poiché noi, gli sviluppatori, di solito scriviamo la nostra logica in JavaScript (che non deve essere compilato e installato) possiamo semplicemente inviare un nuovo pacchetto JavaScript e una volta scaricato dall'utente hanno la logica aggiornata! Nessuna attesa richiesta.

App Store

Se non desideri inviare un OTA di aggiornamento o hai apportato una modifica che lo richiede (ne parleremo più avanti), puoi effettuare l'aggiornamento tramite l'app store. Ciò significa che usi gli strumenti regolari (iTunes Connect o la Console per gli sviluppatori di Google Play) per caricare un nuovo .ipa o .apk.

Quando lo fai, stai ricompilando il codice nativo e raggruppando nuovamente JavaScript. Spedisci il nuovo codice al 100% e puoi fare qualsiasi cosa a questo punto. Significa anche che devi passare attraverso il normale processo di revisione e il periodo di attesa.

Quando aggiornare

Come fai a sapere quale metodo di aggiornamento puoi utilizzare?

Over-the-Air (OTA)

Supponiamo che tu abbia tutta la logica dell'app in una directory src e che l'ultimo round di aggiornamenti abbia apportato modifiche solo all'interno di quella directory. Ciò significa che molto probabilmente puoi spedire quell'aggiornamento via etere!

Se stai solo modificando le tue risorse JavaScript o di immagine, significa che le informazioni possono essere raggruppate e spedite via etere perché tutte le API sottostanti sono le stesse di prima, l'interazione con esse è l'unica cosa che ha cambiato.

Un avvertimento. Usa questa estrema flessibilità con cautela: non dovresti davvero apportare modifiche significative alla tua app in questo modo. Non vuoi cambiare la funzionalità della tua app cambiando il modo in cui funzionano le cose o aggiungendo funzionalità. Ciò potrebbe metterti nei guai con Apple / Google.

Mi piace pensarci in termini di SEMVER. Se è una versione di patch (correzione di bug, miglioramento minore) può uscire OTA. Se si tratta di un cambiamento di versione principale o minore, lo invierò tramite il normale processo di approvazione dell'app store.

App Store

Ho già toccato un'istanza in cui vorresti passare attraverso l'app store ed è ogni volta che apporti una modifica abbastanza significativa nella tua app; anche se è una seccatura aspettare, è meglio giocarlo in sicurezza e seguire il normale processo.

L'altra volta che vorrai visitare l'app store è quando apporti modifiche all'app nativa (ovvero le directory iOS e Android nel tuo progetto). Potresti pensare di non toccarli mai, quindi non devi mai passare attraverso l'app store ...

Ma questo non è vero. Quasi ogni volta che aggiorni React Native stai modificando il progetto nativo; o ogni volta che aggiungi un pacchetto di terze parti e devi eseguire il link di reazione nativo. Questa è una modifica al tuo progetto nativo e ti richiederà di passare attraverso l'app store per assicurarti che tutto funzioni correttamente.

In caso di dubbi, visita l'app store.

Utensili

Ora che sappiamo quando aggiornare e con quali mezzi, quali strumenti sono disponibili per semplificarci la vita? Ci sono altre opzioni là fuori, ma queste sono quelle che sento darti il ​​massimo per il tuo dollaro e quelle con cui ho una vasta esperienza.

Aggiornamenti OTA = CodePush

CodePush è uno strumento sviluppato da Microsoft per gestire e aggiornare rapidamente e facilmente i bundle JavaScript nativi React di produzione. È facile da configurare, facile da usare ed è gratuito.

È davvero incredibile e ti renderà la vita facile. Suggerirei che, anche se non intendi mai inviare un aggiornamento OTA, configura CodePush in modo che abbia l'ultima possibilità di correggere un bug che lo ha reso in produzione.

Aggiornamenti nativi = Fastlane

Fastlane consente di automatizzare molte delle attività ripetitive associate alla creazione dell'app nativa. Puoi pensarlo come una cintura degli attrezzi e in quella cintura degli attrezzi ci sono una varietà di strumenti che gestiscono diversi pezzi del puzzle di sviluppo nativo.

Integrazione continua = Bitrise / CircleCI

Sebbene una categoria che non ho usato molto, una volta che sei pronto a investire nell'automazione totale (oltre Fastlane), Bitrise e CircleCI sono entrambe ottime opzioni. Ti consentono di automatizzare il processo di compilazione e distribuzione della tua app nativa. Non devi più aspettare che l'app si sviluppi sul tuo computer e elimini l'elemento errore umano!

Sebbene sia solo una breve introduzione alla comprensione degli schieramenti di React Native, spero che abbia contribuito ad aggiungere chiarezza al puzzle. Se sei interessato a saperne di più sul processo di distribuzione e utilizzare strumenti come CodePush e Fastlane, consulta il mio corso video React Native to Production. È un corso video dedicato a insegnarti i dettagli della distribuzione e della gestione delle app React Native di produzione.

Comprendere React Le distribuzioni native possono essere fonte di confusione quando si inizia, quindi assicurarsi di per questo post e inviarlo a un amico / collega per aiutarli!