Oggi lo sviluppo di mobile application e di piattaforme web segue un modello infrastrutturale in cui la conservazione, gestione ed elaborazione dei dati viene implementata attraverso un sistema separato detto backend. Questo sistema ha come responsabilità principale quella di produrre i contenuti ed effettuare le elaborazioni richieste dai frontend che con questo si interfacciano.

Al di là di quelle che possono essere le diverse tecnologie di sviluppo di un backend, risulta evidente come questa parte del sistema assume un elevato livello di complessità implementativa per diversi aspetti tra i quali possiamo citare quelli legati alla logica di data processing, il cui peso è evidentemente distribuito quasi totalmente sul backend, quelli che riguardano il mantenimento delle prestazioni e la scalabilità,  quelli relativi alla sicurezza in quanto è la sola entità che si occupa della gestione diretta dei dati e nella quale una vulnerabilità darebbe accesso diretto a tutte le informazioni del sistema, ed altri come l’interfacciamento con servizi esterni per fornire al frontend funzionalità già implementate da terzi, e la realizzazione di meccanismi di interazione con uno o più frontend e lo scambio di dati con questi ultimi.

L’impiego di risorse per la realizzazione di questo tipo di sistema è stato sempre un obbligo, ed anche in circostanze in cui la soluzione finale non fosse demandata alla fornitura di servizi altamente specializzati, era sempre necessario progettare ed implementare un backend per lo sviluppo di web e mobile application.

Firebase

Nato dalla startup di James Tamplin e Andrew Lee nel 2011, Firebase viene acquisito da Google nel 2014 e lanciato durante il Google I/O del 2016 insieme ad un ecosistema di servizi ad esso associati che di fatto lo rendono un vero e proprio backend as a service. Oggi Firebase offre agli sviluppatori la possibilità di implementare delle soluzioni serveless sfruttando le sue potenzialità.

Perché usare Firebase

Come anticipato in precedenza questa piattaforma di servizi fornisce tutte le funzionalità previste da un backend vero e proprio, l’unica differenza è che ad una implementazione vera e propria, corrisponde una suite di servizi in cloud. Questo riduce i tempi, ed i costi di sviluppo, per tutte quelle circostanze che giustificano lo sviluppo di un sistema serverless.

Cosa offre Firebase

Firebase offre principalmente un NoSQL realtime database ed una serie di API e librerie client per interagire con lo stesso. In quanto realtime database la grande potenzialità di questo strumento è quella di mantenere aggiornate le informazioni in tempo reale, previa presenza di connettività, in tutti i dispositivi che ospitano l’app connessa al db.

Esistono altri servizi appartenenti all’ecosistema di Firebase di fondamentale importanza:

  • Autenticazione: possibilità di fornire un servizio di account managing and user authentication out of the box, con la possibilità di effettuare varie tipologie di login (email, social, phone authentication, ecc.)
  • Cloud Storage: spazio in cloud per lo storage dei contenuti generati da e per gli utenti, tramite l’app.
  • Push notifications: Firebase Cloud Messaging è un servizio per lo scambio di messaggi e notifiche push di semplice implementazione.
    firebase services
    Servizi della piattaforma firebase

Costi del servizio

Partito inizialmente con vari piani di abbonamento, oggi Firebase è accessibile gratuitamente, con un piano a consumo per il superamento delle soglie previste per i vari servizi offerti.
Questa metodologia risulta altamente incentivante per lo sviluppo di app mobile che prevedono una selezione circoscritta di utenti, così come per quelle app che offrono servizi altamente specializzati e che prevedono una complessità non troppo elevata nella logica di data processing, anche se a onor del vero all’interno dell’ecosistema Firebase, attraverso il servizio Cloud Functions, è possibile sviluppare delle funzionalità customizzate per l’implementazione di algoritmi più complessi, da integrare nel proprio backend Firebase.

Una possibile integrazione: Ionic app + Firebase

Indipendentemente dall’ambiente di sviluppo, per integrare un’app con Firebase è necessario creare un account Firebase ed un progetto collegato a questo. Di seguito basta inserire nella propria app le informazioni di identificazione del progetto creato, come la keyAPI, projectId, databaseURL, ed altre informazioni utili ai servizi di cui si vuole usufruire.

Nel caso di un’applicazione sviluppata utilizzando i framework Ionic +Angular, dopo aver inserito le precedenti informazioni fra le variabili di progetto, aggiungere i moduli necessari per l’importazione delle librerie di integrazione e realizzare services attraverso cui collegandosi al servizio è possibile effettuare l’autenticazione e di seguito aggiungere, visualizzare o modificare i dati. Fatto ciò, concluse le operazioni di sviluppo e building della nostra app, questa utilizzerà le funzionalità delle librerie integrate per comunicare con il backend online di Firebase e popolare il database appartenente al progetto da noi appositamente creato.

Conclusioni

Come abbiamo potuto percepire dal precedente paragrafo, configurato il servizio, di fatto è come se avessimo progettato ed implementato il nostro backend, ma in realtà stiamo servendoci di una suite di servizi che interconnessi tra loro ci offrono un backend as a service, senza dimenticare che in quanto a prestazioni e sicurezza, a meno che non abbiamo erroneamente applicato delle configurazioni di progetto che mettono a rischio i nostri dati, è Google che si occupa di fornire un adeguato livello di robustezza per le infrastrutture che ospitano i servizi offerti, e quindi per il nostro backend Firebase.

Nell’attività di progettazione e sviluppo di mobile application noi di IES solutions valutiamo sempre la possibilità dell’utilizzo di strumenti come Firebase, questo ci aiuta ad ottimizzare le risorse impiegate, e quindi a ridurre i tempi ed i costi di realizzazione per noi e per i nostri clienti.