Se sei uno sviluppatore mobile, ti starai chiedendo come gestire i dati utente nella tua prossima app. Dovresti usare un database, un server dedicato, o forse puoi gestirlo solo con un front-end? Questo articolo ti aiuterà a prendere una decisione migliore.
Prima di immergerci nei dettagli del servizio disponibile, prendiamo un po 'di terminologia.
Per le app mobili e web, spesso parliamo di front e back-end. Mentre il fine frontale definisce l'interfaccia utente, l'interazione dell'utente e la presentazione di informazioni, il back-end gestisce la logica aziendale, l'archiviazione dei dati e la sicurezza. Il front-end è il browser Web o il dispositivo mobile dell'utente e il back-end è il server oi server in cui i dati sono archiviati e condivisi.
Un numero crescente di moderne app mobili si basa su almeno alcune funzionalità che richiedono un back-end. Analisi degli utenti e dell'utilizzo, notifiche push, sicurezza estesa, comunicazione da utente a utente (in giochi multiplayer o app di messaggistica, ad esempio) e monetizzazione dell'app tramite annunci pubblicitari sono gli esempi più comuni.
Dal punto di vista degli sviluppatori di dispositivi mobili, il back-end sembra essere un mondo completamente diverso, popolato da database e server. Quindi non solo gli sviluppatori si aspettano di creare interfacce mobili belle e performanti, ma devono anche essere a conoscenza dell'infrastruttura di rete come server Web, software di gestione di database, linguaggi di scripting lato server e molto altro.
Inoltre, dovrebbero essere esperti di crittografia moderna e sicurezza informatica, big data e data mining, reti di telecomunicazione mobile (app mobili per lo più eseguite su smartphone connessi a una rete di telefonia mobile) e un elenco sempre crescente di tecnologie aggiuntive.
Naturalmente, ne consegue che, anche per sviluppare una semplice app mobile con un back-end, lo sviluppatore deve padroneggiare molti strumenti e linguaggi che non rientrano nello sviluppo ordinario delle app. Sicuramente, questa situazione scoraggia molti sviluppatori dall'integrare un back-end nelle loro app.
Con il cloud computing assorbito nel mainstream, XaaS (che significa BaaS, SaaS, PaaS, ecc. - Back-End as a Service, Software as a Service o Platform as a Service) ha già iniziato a ridefinire il modo in cui il software viene sviluppato, pubblicato, e consumato.
L'idea di base è simile al fatto che lo sviluppo, la manutenzione e la gestione del back-end vengano esternalizzati a un'altra parte. In altre parole, il back-end è reso disponibile agli sviluppatori come servizio web.
Mentre diversi fornitori di BaaS offrono funzionalità diverse attraverso una grande varietà di modelli di pricing, molti di loro usano una sorta di modello "freemium". Ciò significa che funzionalità di base come l'archiviazione dei dati, l'analisi degli utenti / dell'utilizzo, le notifiche push e l'autenticazione sono fornite gratuitamente fino a un determinato limite di utilizzo. Una volta che l'utilizzo supera questo limite o vengono richieste funzionalità aggiuntive, viene addebitata una commissione. Ciò semplifica la creazione e l'avvio di un'app al livello di utilizzo gratuito, per poi passare a un livello a pagamento man mano che aggiungi i clienti.
Normalmente lo sviluppatore deve utilizzare gli SDK e le API del provider BaaS per connettere la propria app al back-end.
Il più grande vantaggio di BaaS è che libera gli sviluppatori dall'onere di costruire e gestire autonomamente i back-end. Ciò consente allo sviluppatore di concentrarsi su aspetti più importanti, come la progettazione di un'esperienza utente coinvolgente, che sarà il vero fattore di successo dell'app. Inoltre, aiuta lo sviluppatore a evitare curve di apprendimento ripide generalmente associate alla maggior parte delle tecnologie di back-end. Quindi riduce il costo e il tempo di sviluppo. Fornisce inoltre un modo economico per sperimentare idee app e vedere come si comportano nel mondo reale.
Come per qualsiasi altra cosa, BaaS ha alcuni compromessi. Il più grande svantaggio è il pericolo che il tuo fornitore BaaS possa improvvisamente cessare l'attività e chiudere il servizio. In tale scenario, anche se passi a un altro fornitore, potresti dover riprogettare e ricodificare sostanzialmente la tua app, perché il nuovo servizio potrebbe avere un'API completamente diversa. In realtà, uno dei più popolari provider BaaS, Parse, ha chiuso di recente, il che ha colpito molti sviluppatori (sebbene l'infrastruttura Parse sia stata rilasciata con una licenza open source e nuovi fornitori siano nati per fornire un BaaS compatibile con Parse).
Un altro svantaggio è che la personalizzazione dell'infrastruttura di back-end in un BaaS è spesso limitata. Ciò potrebbe significare che alcune funzionalità che desideri per la tua app non sono disponibili.
Ci sono diverse domande che devi porci su ciascun fornitore di BaaS, prima di selezionarne una per la tua app mobile.
La prima domanda è se il provider può soddisfare le esigenze della tua app. Vale la pena ricordare che a volte, ridefinire la portata della tua app in modo che corrisponda alle funzionalità offerte da un provider BaaS può darti risultati davvero sorprendenti. Ma non rinunciare alle funzionalità che danno alla tua app la sua unicità e appeal!
La maggior parte dei fornitori di BaaS offre i loro servizi, gratuitamente, solo fino a un certo punto. Questo limite è solitamente definito da qualcosa come il numero di chiamate API, il numero di utenti attivi o un parametro simile. A volte, può essere molto difficile per lo sviluppatore prevedere la quantità di utilizzo o il numero di utenti dell'app. Quindi è abbastanza possibile finire con una piattaforma che non è redditizia per lo sviluppatore.
Controllalo preventivamente, proiettando il costo e le entrate per un intervallo di valori possibili che corrispondono all'utilizzo o al numero di utenti. Quindi, puoi vedere quanto delle entrate dell'app andrebbero alle commissioni BaaS e, se necessario, adeguare il tuo modello di entrate. In alternativa, lo sviluppatore può cercare un fornitore BaaS il cui modello di prezzo corrisponda al modello di entrate dell'app.
Poiché esistono limiti alla personalizzazione, alcune applicazioni potrebbero essere difficili o impossibili da sviluppare con alcune delle offerte BaaS disponibili in commercio. È interessante notare che alcuni provider BaaS offrono funzionalità più specializzate rivolte a una specifica categoria di app, come i giochi. Se la tua app rientra in una categoria di questo tipo, c'è una maggiore possibilità che la funzione richiesta sia supportata da tale fornitore. Devi fare un po 'di ricerche sui fornitori di BaaS che hanno come target la tua specifica categoria di app.
Lo sviluppatore deve anche considerare il ciclo di vita dell'app. Più lunga è la durata dell'app, più alto è il costo di rimanere con il fornitore BaaS. Per un'app che durerà a lungo, potrebbe valere la pena investire nella creazione del proprio back-end.
Ora che abbiamo alcune informazioni su BaaS sia dal punto di vista del fondatore di uno sviluppatore sia di quello di un'app di avvio, diamo un'occhiata ad alcuni dei pacchetti BaaS più popolari e alle loro funzionalità. Mentre il settore è dominato dai fornitori commerciali, sembra che anche una serie di aspiranti fornitori open source stiano aumentando.
La piattaforma BaaS di Google, Firebase, offre un ampio elenco di funzionalità suddivise in tre fasi: Sviluppo, Guadagna e Crescita. La fase di sviluppo comprende database in tempo reale, autenticazione, cloud computing, archiviazione, hosting, laboratorio di test (per testare le app su un dispositivo) e rapporti sugli arresti anomali. Essendo un fornitore commerciale, ha anche integrato la sua piattaforma AdMob per monetizzare la tua app. Più avanti nel percorso verso la crescita, troverai le funzionalità come Indicizzazione delle app, AdWords, Notifiche e molto altro.
Poiché proviene da Google, il creatore di Android, Firebase è solitamente visto come una piattaforma Android. Tuttavia, l'SDK di Firebase è disponibile anche per iOS.
Qui su Envato Tuts +, abbiamo una serie di tutorial e corsi per aiutarti a iniziare con Firebase. Dategli un'occhiata!
Un altro fornitore commerciale, Amazon Web Services (AWS), è stato uno dei primi fornitori di PaaS. Vanta una vasta gamma di servizi cloud e strumenti di accompagnamento, con controllo, se lo desideri, su ogni aspetto dei tuoi server virtuali. In effetti, molti altri fornitori di servizi cloud utilizzano AWS dietro le quinte.
Tutto questo potere viene fornito con un costo: AWS ha una curva di apprendimento molto più ripida rispetto ad altri fornitori di BaaS. Le funzionalità includono SDK mobili, notifiche via email e SMS, analisi delle app e la Device Farm per testare la tua app su vari dispositivi mobili.
Parse era una piattaforma BaaS popolare, ma sfortunatamente Facebook ha deciso di spegnerlo. Ma non preoccuparti che l'SDK Parse morirà! Facebook ha ritirato il servizio di hosting parse.com a gennaio 2017, ma l'SDK Parse è stato reso open source. Parse SDK ha un sacco di grandi sviluppatori che lavorano su di esso, e ci sono un certo numero di nuovi siti web che offrono hosting back-end come servizio.
Uno dei migliori è Back4App. Ha un piano gratuito con un ampio spazio di archiviazione e richieste di budget, oltre a API per Android e iOS.
Introducendo la sua BaaS altamente elastica, Mesosfer è un fornitore commerciale con caratteristiche interessanti che supporta app integrate, mobili e anche IoT.
A differenza dei precedenti membri di questo elenco, BaasBox è un provider BaaS open source. Le statistiche sull'utilizzo degli sviluppatori e dell'API visualizzate sul loro sito web suggeriscono un fornitore competitivo e capace, paragonabile ai fornitori commerciali.
Un altro BaaS open source è Apache Usergrid (dal creatore del famoso web server). Usergrid supporta l'esecuzione su un'infrastruttura server tradizionale, consentendo di implementare la propria piattaforma BaaS. Le funzionalità includono la gestione degli utenti, l'archiviazione di file e dati e il recupero.
Microsoft ha aggiunto una piattaforma BaaS ad Azure, la sua popolare suite di servizi cloud. I servizi mobili di Azure supportano le notifiche push, la sincronizzazione dei dati e l'autenticazione. Per gli sviluppatori che lavorano nel dominio aziendale, Azure Mobile Services offre anche un solido supporto per la connettività alle reti aziendali utilizzando tecnologie come Active Directory e VPN. Riflettendo il recente approccio di Microsoft allo sviluppo multipiattaforma, Azure Mobile Services funziona su Android, iOS e, naturalmente, Windows Phone.
Apple ha presentato il suo framework CloudKit insieme a iOS 8 nel 2014. Sebbene lo scopo principale fosse quello di fungere da database online per le applicazioni iOS, CloudKit offre anche molte altre funzionalità, tra cui le notifiche push. Una delle cose migliori di CloudKit per alcuni sviluppatori è quanto ottieni gratis. Ad esempio, con CloudKit, non c'è limite al numero di notifiche push che puoi inviare ai tuoi utenti.
Tuttavia, uno svantaggio di cui dovresti essere a conoscenza quando utilizzi CloudKit è che non è attualmente disponibile su piattaforme non Apple. Ciò significa che se vuoi creare una versione Android della tua app, CloudKit non funzionerà!
BaaS è una soluzione pratica e tempestiva al problema di aggiungere un back-end alle tue app mobili. Inoltre, aiuta lo sviluppatore a dirigere il proprio tempo limitato nel miglior modo possibile. C'è un numero crescente di fornitori di BaaS là fuori, e ora sai come farne uso!