In questo articolo ti voglio parlare del perché usare React Native Firebase. A differenza di tutta la guida su React Native nella quale abbiamo introdotto Firebase ed abbiamo utilizzato le WEB SDK adesso è il momento di introdurre qualcosa di nettamente più veloce e con più funzionalità a discapito di un impatto iniziale che può risultare ostico ai più. React Native Firebase, detto anche RNF, raggiunge la sua consacrazione con la versione 4.0 nella quale hanno riscritto completamente tutto quanto riguarda le push notifications.
Perché usare React Native Firebase?
Prima di capire perché usare React Native Firebase è necessario capire cos’è React Native Firebase. A differenza dei precedenti articoli non ti voglio spiegare come installarlo e come procedere, sono certo che hai le competenze necessarie per seguire la guida che mettono a disposizione.
Cos’è React Native Firebase?
React Native Firebase, o RNF, è una libreria costruita sopra alla Firebase SDK e studiata appositamente per rimanere più simile possibile alle Firebase Web SDK API. Durante il suo utilizzo potrai vedere infatti che molti metodi sono simili se non identici a quanto già utilizzato con le SDK Firebase per il web.
Grazie a questo layer è possibile interfacciarsi con Firebase durante lo sviluppo di un’applicazione React Native rivolta ad iOS ed Android.
Il team di RNF mette a disposizione diverse strade da seguire per l’installazione iniziale:
- Integrazione manuale nel proprio progetto
- Progetto di partenza con RNF già installato
- Progetto con RNF già installato versione Premium (mette a disposizione un’app di base con anche il login integrato e qualche schermata)
Per capire meglio cos’è React Native Firebase è importante spiegare che grazie a RNF hai la possibilità di integrare all’interno della tua app:
- AdMob per la pubblicità
- Push Notifications
- Autenticazione
- Database Realtime
- Firestore
- Firebase Storage
- …
Tutto quanto elencato e molto di più senza dover scrivere praticamente una riga di codice sul server perché Firebase mette già tutto a disposizione.
Quali sono le differenze tra React Native Firebase e le WEB SDK?
RNF pubblica per ogni versione cosa è possibile fare rispetto ad una versione più vecchia e rispetto alle WEB SDK. Vediamo insieme cosa si può fare con RNF così da capire anche perché usare React Native Firebase è decisamente più conveniente:
Come puoi vedere RNF implementa praticamente tutto il pacchetto messo a disposizione da Firebase a differenza delle Web SDK.
Sembra molto difficile, non riesco ad installarlo
Oltre a spiegarti cos’è RNF e perché usare React Native Firebase, voglio anche dirti che salvo il pacchetto Premium e l’utilizzo dello starter kit, anche tu come me potresti trovarti a dover fare l’integrazione manuale di RNF. Non è un procedimento proprio semplice inizialmente perché richiede all’inizio un po’ di tempo e si prosegue sempre con la paura di sbagliare strada.
Se ti posso dare un consiglio, nel caso in cui devi fare l’installazione manuale, stai molto attento a seguire ogni singola lettera presente nella guida senza saltare nulla. Leggi tutto anche se ti sembra che una frase sia solo descrittiva, leggi tutto. Fidati.
La guida per l’integrazione manuale parte da questo indirizzo. Da lì in poi abbi cura di seguire passo per passo anche le guide relative ad ogni singolo modulo che vuoi installare nella tua app partendo dall’Auth e ricordandoti di seguire sia la guida per iOS che per Android. Alcuni consigli:
- Scegli su quale piattaforma testare e procedi per gradi: prima iOS e poi Android o viceversa
- Alcuni pacchetti già presenti nel PODFile su iOS potrebbero installare React nuovamente mandando in conflitto la compilazione: usa ‘pod update’ o ‘pod <package_name>’
- Non provare a togliere delle righe nel “build.gradle” di Android affermando “dai, prima così funzionava”. Probabilmente è vero ma ti mancheranno dei pezzi. A me è successo con:
- Quando leggi la guida parti da “Introduction” e poi procedi con “Installation”. Da questo momento in poi iOS e Android seguiranno percorsi differenti
- Stai attento con le push notification: se non funzionano l’errore potrebbe essere nel setup, nell’utilizzo sull’app o relativo alle cloud functions (inoltre il simulatore iOS non mostra notifiche se l’app è in background o chiusa)
Sembra strano, ma la guida ogni tanto è un po’ riassuntiva ed il testo con il minuscolo font completa l’inganno. La maggior parte degli errori di installazione e di utilizzo che troverete nel web sono dovuti ad un errata lettura della guida.
Perché usare React Native Firebase?
Una volta installato RNF ed utilizzata l’autenticazione diventerà sempre più automatico installare nuovi moduli e ti accorgerai di quanto lavoro viene semplificato grazie a React Native Firebase. L’utilizzo di Auth e Storage sono praticamente identici a quanto visto nella guida affrontata con le Firebase Web API.
Detto che ognuno di noi può utilizzare il servizio (anche creato in casa!) che preferisce per gestire l’autenticazione, il database realtime, lo spazio di memoria per foto, video e documenti… c’è una cosa che sicuramente è complicata da gestire da soli e che nessun servizio offre in maniera migliore: le push notifications.
Se la tua app invia/riceve notifiche, cosa solitamente molto importante per avere un maggior numero di accessi, le push notifications di Firebase (vedi Cloud Messaging) sono praticamente gratuite salvo uso delle Cloud Functions e non devi scendere a strani compromessi come altri servizi che a volte si riservano il diritto di studiare gli utenti o di mandargli anche pubblicità non desiderata (vedi Firebase Pricing Plans).
Le push notifications, per le quali scriverò un articolo a parte, sono sicuramente la cosa più difficile da installare ed implementare specialmente perché il simulatore iOS non riceve notifiche quando l’app è in background o chiusa. Inoltre quando qualcosa non funziona bisogna stare attenti a capire se il problema risiede nell’implementazione dell’app, nell’installazione di RNF o in quanto scritto sul server, ovvero l’implementazione delle cloud functions (se utilizzate).
Tramite RNF è infatti possibile gestire le notifiche in diversi modi:
- Notifica inviata da un dispositivo ad un altro
- Notifica inviata da un dispositivo ad un gruppo di dispositivi
- Notifica inviata da Firebase verso un dispositivo o un gruppo (esempio: chiamata endpoint Firebase Cloud Functions da app, elaborazione dati nelle Cloud Function che alla fine inviano la notifica ad una serie di dispositivi)
Il setup è inoltre oneroso in quanto sia per iOS che per Android è necessario impostare alcuni permessi ed andare a toccare un po’ di codice nativo. Giunti a questo punto è necessario creare un account sviluppatore iOS ed abilitare le push notification per il proprio account e configurare ulteriormente Firebase (vedi la guida per iOS).
Oltre alle push notification tra i perché usare React Native Firebase rientra comunque la grande idea di utilizzare quello che è quasi uno standard nel mondo e una libreria che offre ottima assistenza anche in chat, con un team importante dietro e specialmente l’utilizzo in toto di un servizio creato da Google, non proprio un’azienda a caso.
Conclusioni
Questo articolo è stato abbastanza descrittivo, ma quello che volevo comunicarti è di non essere spaventato da RNF, perché usare React Native Firebase è la scelta giusta per un’app completa e rapida ed anche perché puoi installare solo ciò che ti serve strettamente. Le push notifications, infine, sono il massimo che si può inserire in un’app ed una volta superato il setup sarai pronto ad inviare e ricevere notifiche in un batter d’occhio.
Se sei interessato a creare una prima app con React Native ti consiglio di seguire la guida per imparare React Native.
Imparare React Native è molto conveniente e divertente. Ti consiglio quindi anche di dare un’occhiata ad uno di questi libri che a mio parere non sono per niente male:
Su Udemy puoi trovare tanti corsi interessanti nei riguardi di React Native:
- The Complete React Native and Redux Course
- React Native: Advanced Concepts
- Create your first React Native App
Quindi se sei interessato continua a seguirmi, magari iscriviti alla newsletter così da non dimenticarti di questa guida. Nel caso in cui ancora non ti senti pronto con React puoi sempre seguire questa guida e poi potrai imparare React Native.
Se vuoi rimanere aggiornato sul continuo di questa guida ti consiglio di iscriverti alla newsletter. Mando da 1 a 4 mail al mese e normalmente invio risorse gratuite e riservate solo agli iscritti. Invio anche la lista degli articoli di maggiore impatto, come questo. Se non troverai gli articoli potrai recuperarli dalla mail in questo modo ?
Per dubbi o domande non esitare a scrivermi 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!).