Dacă sunteți un dezvoltator de dispozitive mobile, s-ar putea să vă întrebați cum să gestionați datele utilizatorilor în următoarea aplicație. Ar trebui să utilizați o bază de date, un server dedicat sau poate puteți gestiona doar cu un front-end? Acest articol vă va ajuta să luați o decizie mai bună.
Înainte de a ne arunca cu privire la detaliile serviciului disponibil, hai să terminăm unele terminologii.
Pentru aplicațiile mobile și web, vorbim adesea despre front-end-back-end-uri. In timp ce în față definește interfața utilizator, interacțiunea utilizatorului și prezentarea informațiilor, back-end gestionează logica de afaceri, stocarea datelor și securitatea. Front-end-ul este browserul web sau dispozitivul mobil al utilizatorilor, iar back-end-ul este serverul sau serverele unde datele sunt stocate și partajate.
Un număr tot mai mare de aplicații mobile moderne se bazează pe cel puțin câteva caracteristici care necesită un back-end. Analizele de utilizare și utilizare, notificările push, securitatea extinsă, comunicarea dintre utilizatori (în jocuri multiplayer sau aplicații de mesagerie, de exemplu) și monetizarea aplicației prin anunțuri sunt cele mai frecvente exemple.
Din punctul de vedere al dezvoltatorului mobil, back-end-ul pare a fi o întreagă lume, populată cu baze de date și servere. Deci, nu numai că dezvoltatorii trebuie să creeze interfețe mobile frumoase și performante, ci și să aibă cunoștințe despre infrastructura rețelei, cum ar fi serverele web, software-ul de gestionare a bazelor de date, limbile de scripting pe servere și mult mai multe.
În plus, se așteaptă ca aceștia să fie experți în criptarea modernă și securitatea calculatoarelor, date mari și date miniere, rețele de telecomunicații mobile (aplicații mobile care rulează pe telefoane inteligente conectate la o rețea de telefonie mobilă) și o listă tot mai mare de tehnologii suplimentare.
Firește, rezultă că, chiar și pentru a dezvolta o aplicație mobilă simplă cu un back-end, dezvoltatorul trebuie să stăpânească multe instrumente și limbi care nu se află în sfera dezvoltării obișnuite a aplicațiilor. Desigur, această situație descurajează mulți dezvoltatori să integreze un back-end în aplicațiile lor.
Cu ajutorul cloud computerii absorbite în mainstream, XaaS (ceea ce înseamnă BaaS, SaaS, PaaS, etc.-Back-End ca serviciu, Software ca serviciu sau platformă ca serviciu) a început deja să redefinească modul în care software- și consumate.
Ideea de bază este similară dezvoltării, întreținerii și gestionării back-end-ului către o altă parte. Cu alte cuvinte, back-end-ul este pus la dispoziția dezvoltatorilor ca serviciu web.
În timp ce diferiți furnizori BaaS oferă diverse caracteristici printr-o mare varietate de modele de prețuri, majoritatea utilizează un fel de model "freemium". Aceasta înseamnă că caracteristicile principale, cum ar fi stocarea datelor, analiza utilizatorilor / utilizării, notificările push și autentificarea sunt oferite gratuit până la o anumită limită de utilizare. Odată ce utilizarea depășește această limită sau sunt solicitate caracteristici suplimentare, se percepe o taxă. Acest lucru facilitează crearea și lansarea unei aplicații la nivel de utilizare gratuită și apoi extinderea la un nivel plătit în timp ce adăugați clienți.
În mod normal, dezvoltatorul trebuie să utilizeze SDK-urile și API-urile furnizorului BaaS pentru a-și conecta aplicația la back-end.
Cel mai mare avantaj al BaaS este faptul că îi eliberează pe dezvoltatori de sarcina construirii și gestionării back-end-urilor. Acest lucru permite dezvoltatorului să se concentreze pe lucruri mai importante, cum ar fi proiectarea unei experiențe convingătoare a utilizatorilor, care vor fi factorii de succes ai aplicației. De asemenea, ajută dezvoltatorul să evite curbele de învățare abrupte asociate în mod obișnuit cu cele mai multe tehnologii back-end. Astfel, reduce costul și timpul de dezvoltare. Acesta oferă, de asemenea, un mod ieftin de a experimenta ideile de aplicații și de a vedea cum funcționează în lumea reală.
Ca orice altceva, BaaS are unele compromisuri. Cel mai mare dezavantaj este pericolul ca furnizorul tău BaaS să iasă dintr-o dată din afaceri și să închidă serviciul. Într-un astfel de scenariu, chiar dacă treceți la alt furnizor, este posibil să trebuiască să reproiectați în mod substanțial și să recodificați aplicația, deoarece noul serviciu ar putea avea un API complet diferit. De fapt, unul dintre cei mai cunoscuți furnizori BaaS, Parse, a fost recent închis, ceea ce a afectat o mulțime de dezvoltatori (deși infrastructura Parse a fost lansată sub licență open-source și au apărut noi furnizori pentru a furniza un BaaS compatibil cu Parse).
Un alt dezavantaj este că personalizarea infrastructurii back-end într-un BaaS este adesea limitată. Aceasta ar putea însemna că nu este disponibilă o anumită funcționalitate pe care o doriți pentru aplicația dvs..
Există câteva întrebări pe care trebuie să le întrebați despre fiecare furnizor BaaS, înainte de a selecta unul pentru aplicația dvs. mobilă.
Prima întrebare este dacă furnizorul poate satisface nevoile aplicației dvs. Merită menționat faptul că, uneori, redefinirea sferei aplicației dvs. pentru a se potrivi cu funcțiile oferite de un furnizor BaaS vă poate oferi rezultate uimitoare. Dar nu renunță la caracteristicile care oferă aplicației dvs. unicitatea și recursul!
Majoritatea furnizorilor de servicii BaaS oferă serviciile gratuite numai până la un anumit punct. Acest punct de limitare este de obicei definit de un număr de apeluri API, de numărul de utilizatori activi sau de un parametru similar. Uneori, dezvoltatorul poate fi foarte greu să prezică cantitatea de utilizare sau numărul de utilizatori ai aplicației. Deci, este foarte posibil să se încheie cu o platformă care nu este profitabilă pentru dezvoltator.
Verificați acest lucru în avans proiectând costurile și veniturile pentru o serie de valori posibile care corespund utilizării sau numărului de utilizatori. Apoi, puteți vedea cât de mult din veniturile aplicației ar merge la taxele BaaS și veți ajusta modelul dvs. de venit, dacă este cazul. În mod alternativ, dezvoltatorul poate căuta un furnizor BaaS al cărui model de tarifare se potrivește cel mai bine cu modelul de venit al aplicației.
Deoarece există limite de personalizare, este posibil ca unele aplicații să fie greu sau imposibil de dezvoltat cu unele dintre ofertele oferite de BaaS. Interesant este faptul că unii furnizori BaaS oferă funcții mai specializate care vizează o anumită categorie de aplicații, cum ar fi jocuri. Dacă aplicația dvs. se încadrează într-o astfel de categorie, există o șansă mai mare ca caracteristica necesară să fie acceptată de un astfel de furnizor. Trebuie să faceți niște cercetări despre furnizorii BaaS care vizează categoria dvs. specifică de aplicații.
Dezvoltatorul trebuie să ia în considerare și ciclul de viață al aplicației. Cu cât este mai lungă durata de funcționare a aplicației, cu atât mai mare este costul lipirii cu furnizorul de servicii BaaS. Pentru o aplicație care va fi în jur de mult timp, ar merita să investești în crearea propriului back-end.
Acum, când avem câteva idei despre BaaS atât din punctul de vedere al dezvoltatorului, cât și din punctul de vedere al fondatorului unui startup de aplicații, să analizăm unele dintre pachetele BaaS populare și caracteristicile acestora. În timp ce industria este dominată de furnizorii comerciali, un set de furnizori de surse deschise, de asemenea, pare să fie în creștere.
Platforma Google BaaS, Firebase, oferă o listă extinsă de caracteristici clasificate în trei etape, și anume Develop, Earn, and Grow. Etapa de dezvoltare constă în baze de date în timp real, autentificare, mesagerie în cloud, stocare, găzduire, laborator de testare (pentru testarea aplicațiilor pe un dispozitiv) și raportare la accidente. Fiind un furnizor comercial, acesta și-a integrat platforma AdMob pentru a genera bani din aplicația dvs. În continuare, pe calea creșterii, veți găsi caracteristici cum ar fi indexarea aplicațiilor, AdWords, notificări și multe altele.
Pentru că este de la Google, creatorul de Android, Firebase este de obicei văzută ca o platformă Android. Cu toate acestea, SDK-ul Firebase este, de asemenea, disponibil pentru iOS.
Aici, pe Envato Tuts +, avem o serie de tutoriale și cursuri care vă ajută să începeți cu Firebase. Verifică-i!
Un alt furnizor comercial, Amazon Web Services (AWS), a fost unul dintre primii furnizori PaaS. Acesta se mândrește cu un set bogat de servicii de cloud și instrumente de însoțire, cu control, dacă doriți, peste fiecare aspect al serverelor virtuale. De fapt, mulți alți furnizori de servicii de cloud folosesc AWS în spatele scenei.
Toată această putere vine cu un cost, deși-AWS are o curbă mult mai abruptă de învățare decât alți furnizori BaaS. Caracteristicile includ SDK-uri mobile, notificări prin e-mail și SMS, analize de aplicații și Device Farm pentru testarea aplicației pe diverse dispozitive mobile.
Parse a fost o platformă populară BaaS, dar, din păcate, Facebook a decis să o închidă. Dar nu vă faceți griji că SDK Parse va muri! Facebook a părăsit serviciul de găzduire parse.com în ianuarie 2017, dar SDK Parse a fost făcut open source. Parse SDK are o mulțime de dezvoltatori grozav care lucrează la ea, și există o serie de site-uri de brand nou care oferă back-end de găzduire ca un serviciu.
Una dintre cele mai bune este Back4App. Acesta are un nivel gratuit, cu o capacitate de stocare generoasă și solicită buget, precum și API-uri pentru Android și iOS.
Prezentând sistemul BaaS foarte elastic, Mesosfer este un furnizor comercial cu caracteristici interesante care acceptă aplicații mobile încorporate, web și chiar IoT.
Spre deosebire de membrii anteriori de pe această listă, BaasBox este un furnizor BaaS cu sursă deschisă. Statisticile de utilizare a dezvoltatorilor și API afișate pe site-ul lor sugerează un furnizor competitiv și capabil, comparabil cu furnizorii comerciali.
Un alt BaaS cu sursă deschisă este Apache Usergrid (de la creatorul serverului web popular). Usergrid suportă rularea pe infrastructura serverului tradițional, permițându-vă să implementați propria platformă BaaS. Printre caracteristici se numără gestionarea utilizatorilor, stocarea fișierelor și a datelor, precum și regăsirea acestora.
Microsoft a adăugat o platformă BaaS către Azure, suita lor populară de servicii cloud. Azure Mobile Services are suport pentru notificări push, sincronizare de date și autentificare. Pentru dezvoltatorii care activează în domeniul întreprinderii, Azure Mobile Services oferă, de asemenea, un suport robust pentru conectivitatea la rețelele corporative folosind tehnologii precum Active Directory și VPN. Reflectând îmbrățișarea recentă a dezvoltării cross-platform a Microsoft, Azure Mobile Services funcționează pe Android, iOS și, bineînțeles, Windows Phone.
Apple a introdus cadrul lor CloudKit alături de iOS 8 în 2014. În timp ce scopul său principal era de a acționa ca o bază de date online pentru aplicații iOS, CloudKit oferă și multe alte caracteristici, inclusiv notificări push. Unul dintre cele mai bune lucruri despre CloudKit pentru unii dezvoltatori este cât de mult obțineți gratuit. De exemplu, cu CloudKit, nu există nici o limită a numărului de notificări push pe care le puteți trimite utilizatorilor.
Cu toate acestea, un dezavantaj pe care ar trebui să îl cunoașteți atunci când utilizați CloudKit este că acesta nu este disponibil în prezent pe platforme non-Apple. Aceasta înseamnă că, dacă doriți să creați o versiune Android a aplicației dvs., CloudKit nu va funcționa!
BaaS reprezintă o soluție practică și în timp util pentru a adăuga un back-end la aplicațiile dvs. mobile. De asemenea, ajută dezvoltatorul să-și îndrepte propriul timp limitat în cel mai bun mod posibil. Există un număr tot mai mare de furnizori BaaS acolo și acum știi cum să le folosești!