Hvis du er en mobilutvikler, lurer du kanskje på hvordan du administrerer brukerdata i din neste app. Skal du bruke en database, en dedikert server, eller kanskje kan du bare klare med en frontend? Denne artikkelen vil hjelpe deg med å ta en bedre beslutning.
Før vi dykker inn i detaljene for tilgjengelig tjeneste, la oss få noen terminologi ut av veien.
For mobil- og webapplikasjoner snakker vi ofte om front- og back-endene. Mens front-end definerer brukergrensesnitt, brukerinteraksjon og presentasjon av informasjon, baksiden håndterer forretningslogikken, datalagring og sikkerhet. Front-end er brukerens nettleser eller mobilenhet, og back-end er serveren eller serverne der data lagres og deles.
Et voksende antall moderne mobile apps stole på minst noen få funksjoner som krever en back-end. Bruker- og bruksanalyser, push-varsler, utvidet sikkerhet, bruker-til-brukerkommunikasjon (i multiplayer-spill eller meldingsprogrammer, for eksempel) og tjene penger på appen gjennom annonser er de vanligste eksemplene.
Fra en mobilutviklers synspunkt ser bakenden ut til å være en helt annen verden, befolket med databaser og servere. Så ikke bare er utviklere forventet å skape vakre og ypperlige mobile grensesnitt, de må også være kunnskapsrike om nettverksinfrastruktur som webservere, databasehåndteringsprogramvare, server-side-skriptspråk og mye mer.
Videre forventes de å være eksperter på moderne kryptering og datasikkerhet, store data- og datautvinning, mobiltelekommunikasjonsnettverk (mobilapper kjører hovedsakelig på smarte telefoner koblet til et mobilnett) og en stadig voksende liste over tilleggsteknologier.
Det følger selvsagt at, selv for å utvikle en enkel mobilapp med en back-end, må utvikleren mestre mange verktøy og språk som ikke er innenfor rammen av vanlig apputvikling. Sikkert, denne situasjonen motvirker mange utviklere fra å integrere en back-end i sine apps.
Med cloud computing absorbert i mainstream, har XaaS (som betyr BaaS, SaaS, PaaS, etc.-Back-End som en tjeneste, programvare som en tjeneste eller plattform som en tjeneste) allerede begynt å omdefinere måten programvare utvikles, publiseres, og forbrukes.
Den grunnleggende ideen ligner på at din back-end-utvikling, vedlikehold og administrasjon er outsourcet til en annen part. Med andre ord er back-end tilgjengelig for utviklere som en webtjeneste.
Mens forskjellige BaaS-leverandører tilbyr ulike funksjoner gjennom et stort utvalg av prismodeller, bruker de fleste av dem en slags "freemium" -modell. Dette betyr kjernefunksjoner som datalagring, bruker- / bruksanalyse, push-varsler og autentisering leveres kostnadsfritt opp til en bestemt bruksgrense. Når bruken overstiger den grensen, eller flere funksjoner blir bedt om, blir et gebyr belastet. Dette gjør det enkelt å lage og lansere en app på gratis bruksklasse, og deretter å skalere opp til et betalt nivå når du legger til kunder.
Vanligvis trenger utvikleren å bruke SDK og APIer fra BaaS-leverandøren for å koble appen til back-end.
Den største fordelen med BaaS er at den frigjør utviklere fra byrden av å bygge og administrere back-endene selv. Det gjør at utvikleren kan konsentrere seg om viktige ting, for eksempel å designe en overbevisende brukeropplevelse, som vil være de faktiske suksessfaktorene til appen. Det hjelper også utvikleren å unngå bratte lærekurver som vanligvis er knyttet til de fleste back-end-teknologier. Så det kutter kostnadene og utviklingen tiden. Det gir også en billig måte å eksperimentere med app ideer og se hvordan de utfører i den virkelige verden.
Som med noe annet, har BaaS noen avganger. Den største ulempen er faren for at BaaS-leverandøren din plutselig kan gå ut av virksomheten og stenge tjenesten. I et slikt scenario, selv om du bytter til en annen leverandør, kan det hende du må endre og omarbeide appen din vesentlig, fordi den nye tjenesten kan ha en helt annen API. Faktisk er en av de mest populære BaaS-leverandørene, Parse, nylig lukket, noe som har påvirket mange utviklere (selv om Parse-infrastrukturen ble utgitt under en åpen kildekode lisens, og nye leverandører har spratt opp for å gi en Parse-kompatibel BaaS).
En annen ulempe er at tilpasning av back-end infrastruktur i en BaaS er ofte begrenset. Det kan bety at noen funksjonalitet du vil ha for appen din, ikke er tilgjengelig.
Det er flere spørsmål du må spørre deg selv om hver BaaS-leverandør, før du velger en for mobilappen din.
Det første spørsmålet er om leverandøren kan oppfylle appens behov. Det er verdt å nevne at noen ganger, omdefinere omfanget av appen din for å matche funksjonene som tilbys av en BaaS-leverandør, kan du gi deg virkelig fantastiske resultater. Men ikke gi opp funksjonene som gir appen sin unikhet og appell!
De fleste BaaS-leverandører tilbyr sine tjenester gratis, bare opptil et bestemt tidspunkt. Dette begrensningspunktet defineres vanligvis av noe som antall API-anrop, antall aktive brukere eller en tilsvarende parameter. Noen ganger kan det være svært vanskelig for utvikleren å anslå bruksmengden eller antall brukere av appen. Så det er ganske mulig å ende opp med en plattform som ikke er lønnsom for utvikleren.
Sjekk dette på forhånd ved å anslå kostnadene og inntektene for en rekke mulige verdier som tilsvarer bruken eller antall brukere. Deretter kan du se hvor mye av appens inntekter som skal gå til BaaS-avgifter og justere inntektsmodellen din om nødvendig. Alternativt kan utvikleren se etter en BaaS-leverandør hvis prismodell passer best til appens inntektsmodell.
Fordi det er begrensninger for tilpasning, kan enkelte apper være vanskelig eller umulig å utvikle med noen av BaaS off-the-shelf-tilbud. Interessant nok tilbyr noen BaaS-leverandører mer spesialiserte funksjoner som retter seg mot en bestemt appkategori, for eksempel spill. Hvis appen din faller inn i en slik kategori, er det større sjanse for at den nødvendige funksjonen støttes av en slik leverandør. Du må gjøre litt forskning om BaaS-leverandører som målretter mot din spesifikke appkategori.
Utvikleren må også vurdere livscyklusen til appen. Jo lengre levetiden til appen, jo høyere koster det med å holde fast med BaaS-leverandøren. For en app som vil være rundt i lang tid, kan det være verdt å investere i å skape din egen back-end.
Nå som vi har noen innblikk i BaaS fra både utviklerens og en oppstarts grunnleggers synspunkt, la oss se på noen av de populære BaaS-pakkene og deres funksjoner. Mens næringen domineres av de kommersielle leverandørene, ser det ut til at et sett med aspirerende leverandører av åpen kildekode også er på vei oppover.
Googles BaaS-plattform, Firebase, tilbyr en omfattende liste over funksjoner kategorisert under tre faser, nemlig Develop, Earn and Grow. Utviklingsfasen består av sanntidsdatabaser, autentisering, skymeldinger, lagring, hosting, testlab (for testing av apper på en enhet) og krasjrapportering. Å være en kommersiell leverandør, har også integrert sin AdMob-plattform for å tjene penger på appen din. Videre på veien til vekst finner du funksjonene som Appindeksering, AdWords, Meldinger og mye mer.
Fordi det er fra Google, er skaperen av Android, Firebase vanligvis sett som en Android-plattform. Firebase SDK er imidlertid også tilgjengelig for iOS.
Her på Envato Tuts +, har vi en rekke opplæringsprogrammer og kurs for å hjelpe deg med å komme i gang med Firebase. Sjekk de ut!
En annen kommersiell leverandør, Amazon Web Services (AWS), var en av de første PaaS-leverandørene. Den har et rikt sett med skygtjenester og tilhørende verktøy, med kontroll, hvis du vil ha det, over alle aspekter av dine virtuelle servere. Faktisk bruker mange andre skytselskapsleverandører AWS bak kulissene.
All denne kraften kommer med en kostnad, selv om-AWS har en mye brattere læringskurve enn andre BaaS-leverandører. Funksjoner inkluderer mobile SDKer, e-post og sms-varsler, appanalyser og enheten Farm for å teste appen din på ulike mobile enheter.
Parse var en populær BaaS-plattform, men dessverre har Facebook bestemt seg for å slå den ned. Men ikke bekymre deg for at Parse SDK vil dø! Facebook pensjonerte parse.com-vertjenesten i januar 2017, men Parse SDK har blitt gjort åpen kildekode. Parse SDK har mange flotte utviklere som jobber med det, og det finnes en rekke helt nye nettsteder som tilbyr back-end hosting som en tjeneste.
En av de beste er Back4App. Den har et gratis nivå med en generøs lagring og forespørsler budsjett, samt APIer for Android og iOS.
Mesosfer presenterer sin svært elastiske BaaS, en kommersiell leverandør med interessante funksjoner som støtter mobil, web og til og med IoT-innebygde apper.
I motsetning til de tidligere medlemmene på denne listen, er BaasBox en åpen kildekode BaaS-leverandør. Utvikler- og API-bruksstatistikken som vises på deres nettside, foreslår en konkurransedyktig og kompetent leverandør, sammenlignbar med de kommersielle leverandørene.
En annen åpen kildekode BaaS er Apache Usergrid (fra skaperen av den populære webserveren). Usergrid støtter kjøring på tradisjonell serverinfrastruktur, slik at du kan distribuere din egen BaaS-plattform. Funksjoner inkluderer brukerhåndtering, fil og datalagring pluss gjenfinning.
Microsoft har lagt en BaaS-plattform til Azure, deres populære serie med skygtjenester. Azure Mobile Services har støtte for pushvarsler, datasynkronisering og autentisering. For utviklere som arbeider i bedriftsdomenet, har Azure Mobile Services også solid støtte for tilkobling til bedriftsnettverk ved hjelp av teknologier som Active Directory og VPN. Som gjenspeiler Microsofts nylige omfavnelse av tversplattformsutvikling, fungerer Azure Mobile Services på Android, iOS og selvfølgelig Windows Phone.
Apple introduserte sitt CloudKit-rammeverk sammen med iOS 8 i 2014. Mens hovedformålet var å fungere som en online database for iOS-applikasjoner, tilbyr CloudKit også mange andre funksjoner, inkludert push notifications. En av de beste tingene med CloudKit for noen utviklere er hvor mye du får gratis. For eksempel, med CloudKit, er det ingen grense for antall push varsler du kan sende til brukerne.
En ulempe du bør være oppmerksom på når du bruker CloudKit, er at den ikke er tilgjengelig for øyeblikket på noen plattformer uten Apple. Det betyr at CloudKit ikke fungerer hvis du vil lage en Android-versjon av appen din!
BaaS er en praktisk og rettidig løsning på problemet med å legge til en back-end til mobilappene dine. Det hjelper også utvikleren direkte sin egen begrensede tid på best mulig måte. Det er et økende antall BaaS-leverandører der ute, og nå vet du hvordan du skal bruke dem!