Quali sono i pro e contro di React Native? Dopo averlo utilizzato per qualche mese voglio aiutarti a capire se è giusto utilizzare React Native sul tuo progetto o se è meglio che cerchi altro. React Native è un framework che ti permette di creare app iOS e Android native. Per approfondire cos’è React Native puoi seguire questa guida che ti insegna a creare la tua prima app.
Pro e Contro di React Native
Scrivo questo articolo perché, dopo un buon utilizzo prolungato di questo framework sono pronto a trarre qualche conclusione.
Quello che mi spinge a scrivere un articolo di questo tipo è dovuto al fatto che l’app alla quale sto lavorando tutt’ora è stata pre-impostata dal cliente utilizzando React Native e per sua richiesta esplicita l’app deve essere sviluppata utilizzato questo framework.
Il cliente ha cercato infatti un libero professionista che conoscesse ReactJS proprio per esser certo di trovare qualcuno che sapesse imparare facilmente l’ecosistema del framework React Native.
Durante questi mesi ho sicuramente trovato diversi pro e uno di questi l’ho accennato un attimo fa tra le righe, ma ho trovato anche diversi contro che mi porterebbero a valutare bene le mie scelte in futuro in vista di nuovi progetti.
Quali sono i pro e contro di React Native?
Vediamo insieme quali sono pro e contro di React Native elencandoli in ordine:
Pro
- Permette a chiunque conosca JavaScript, Node ed ancor meglio ReactJS di sviluppare app
- Ti permette di creare un’applicazione nativa senza conoscere Java o Objective-C
- Viene utilizzata da grandi aziende (trovi una lista anche nella guida citata sopra)
- Il framework viene sviluppato e mantenuto dal team di Facebook che ha dato vita a React Native per esigenze interne
- La comunità si allarga continuamente e si trovano molte risposte per ogni dubbio
- Ci sono sempre più package e framework per la UI disponibili
- Crei una volta sola un’app che può essere installata su dispositivi iOS e Android
- Puoi utilizzare l’hot reloading e quindi vedere le modifiche in tempo reale
Contro
- React Native non ha ancora superato la versione 1 e purtroppo ci sono ancora un po’ di bug che andrebbero risolti
- Alcune dipendenze necessitano del link di librerie native o dell’utilizzo dei CocoaPods: almeno 1 volta su 3 questo causa problemi al progetto e non sempre le librerie native vengono attaccate al progetto correttamente richiedendo un intervento manuale tramite xCode per quanto riguarda iOS o andando, per entrambi i sistemi, ha metter mano al codice nativo
- L’utilizzo di xCode potrebbe essere definito indispensabile anche per quanto riguarda la pubblicazione dell’app: anche se si utilizza un framework è comunque necessario essere attrezzati con i corretti dispositivi
L’integrazione delle push notifications è un vero e proprio bagno di sangue. Tra le migliori guide in circolazione c’è quella di questo ragazzo che dichiara di aver impiegato una settimana intera per il setup- La gestione di eventi con l’app chiusa (non in background, chiusa!) richiede spesso l’intervento su codice nativo
- La gestione della cache delle immagini su dispositivi Android non è ancora stata implementata dal team di React Native, anche se si possono utilizzare soluzioni come questa che però non funzionano sempre alla perfezione
- L’aggiornamento di versione di React Native è un altro bagno di sangue tanto da portare il team a scrivere una guida che ti avverte del bagno di sangue: la trovi quì
- A seconda della modalità di sviluppo, l’utilizzo di Expo o di un progetto “creato da zero”, potresti trovare soluzioni che non funzionano in tutti i casi
- Realizzare un’app che ti permetta di creare messaggistica in stile WhatsApp può essere veramente dispendioso per via della gestione delle liste virtualizzate e del recupero dei dati
- L’app ha un peso maggiore e sicuramente non stai scrivendo codice nativo ottimizzato (perché è React Native che scrive codice nativo al posto tuo!)
- Anche se puoi utilizzare la camera, se vuoi estendere alcune funzionalità, così come per le push notifications, avrai comunque bisogno di programmatori che sappiano mettere mano al codice nativo
- In caso di update (normative, configurazioni) da parte di Apple o Google devi anche sperare che il team di Facebook lavori velocemente ad eventuali update necessari su React Native
- Stai costruendo un’app che ha una grafica unica anche se gli utenti iOS e gli utenti Android sono abituati a 2 diversi tipi di interfacce
Quando dovrei utilizzare React Native
Abbiamo visto alcuni pro e contro di React Native. Potrei aggiornare questa lista in futuro man mano che mi vengono in mente.
In ogni caso è chiaro che React Native abbia dei pro importanti, tanto da “dare lavoro” a programmatori che non sviluppano app solitamente.
Allo stesso tempo React Native ha tanti contro che in alcuni casi possono risultare di poco conto, ma che in altri casi possono voler dire il “non poter creare l’app al 100%”.
Quando utilizzerei React Native?
Per ogni progetto dove in poco tempo voglio raggiungere il risultato e non sto creando né un videogame né tanto meno Facebook, né qualsiasi altra app che richieda una “customizzazione” di foto, posizione, accelerometro, ecc.
Quando non utilizzerei React Native?
Prima di creare un’app che utilizzi camera, posizione, accelerometro, ecc. è meglio se capiate a che punto è arrivato React Native e quanto sia maturo.
Un videogame che riproduca il Tris può essere sicuramente creato facilmente, ma una gara di auto o Angry Birds sono un’altra storia.
Un’app in stile Facebook con le stories, i filtri sulle foto, ecc. potrebbe rendere necessario un programmatore Java e Objective-C.
Conclusioni
Abbiamo visto alcuni pro e contro di React Native. Ovviamente bisogna valutare l’utilizzo di questo framework in base al progetto ed anche in base ad una sua evoluzione futura.
Personalmente, ora come ora, starei molto attento alle specifiche del cliente per capire se React Native è la strada giusta, cosa che potrebbe effettivamente compromettere la riuscita o meno del progetto.
Nel caso in cui hai dubbi o domande su i pro e contro di React Native non esitare a farmelo sapere nei commenti. Ricordati che il framework si evolve di giorno in giorno e quindi con il passare del tempo qualcosa potrebbe cambiare così da non rendere più tutti i pro e tutti i contro veri.
Imparare comunque non fa mai male!
Per imparare ReactJS e React Native puoi affidarti alle mie guide in questo blog (link alla guida ReactJS e guida React Native).
Iscriviti alla newsletter e non ti perderai i nuovi articoli. Mando da 1 a 4 mail al mese ricapitolando dove siamo arrivati con ogni guida. Con la newsletter hai anche accesso a libri ed ebook gratuiti, così come a coupon Udemy ? .
Per dubbi o domande scrivimi nei commenti ? .
Se ti è piaciuto l’articolo seguimi su Facebook e Twitter oppure rimani sempre aggiornato con la newsletter (da 1 a 4 mail al mese!).