Als u een mobiele ontwikkelaar bent, vraagt u zich wellicht af hoe u gebruikersgegevens in uw volgende app kunt beheren. Moet u een database gebruiken, een dedicated server, of misschien alleen met een front-end beheren? Dit artikel helpt u een betere beslissing te nemen.
Voordat we ingaan op de details van de beschikbare service, laten we wat terminologie uit de weg ruimen.
Voor mobiele en web-apps praten we vaak over de voor- en achterkant. Terwijl de voorkant definieert de gebruikersinterface, gebruikersinteractie en presentatie van informatie, de backend handelt de bedrijfslogica, gegevensopslag en beveiliging af. De front-end is de webbrowser of het mobiele apparaat van de gebruiker en de back-end is de server of servers waarop gegevens worden opgeslagen en gedeeld.
Een groeiend aantal moderne mobiele apps is afhankelijk van ten minste een paar functies waarvoor een back-end is vereist. Gebruikers- en gebruiksanalyses, pushmeldingen, uitgebreide beveiliging, gebruikers-naar-gebruikercommunicatie (bijvoorbeeld in multiplayer-spellen of berichten-apps) en inkomsten genereren via advertenties zijn de meest voorkomende voorbeelden.
Vanuit het oogpunt van een mobiele ontwikkelaar lijkt de back-end een hele andere wereld te zijn, bevolkt met databases en servers. Ontwikkelaars moeten dus niet alleen mooie en performante mobiele interfaces maken, maar ook goed geïnformeerd zijn over netwerkinfrastructuur zoals webservers, databasebeheersoftware, server-side-scriptingtalen en nog veel meer.
Bovendien wordt van hen verwacht dat ze experts zijn op het gebied van moderne cryptografie en computerbeveiliging, big data en datamining, mobiele telecommunicatienetwerken (mobiele apps draaien meestal op smartphones die zijn verbonden met een mobiel telefoonnetwerk) en een steeds groeiende lijst van aanvullende technologieën.
Uiteraard volgt hieruit dat, zelfs om een eenvoudige mobiele app met een back-end te ontwikkelen, de ontwikkelaar vele gereedschappen en talen moet beheersen die buiten het bereik van normale app-ontwikkeling vallen. Zeker, deze situatie ontmoedigt veel ontwikkelaars van het integreren van een back-end in hun apps.
Met cloud computing opgenomen in de mainstream, XaaS (wat BaaS, SaaS, PaaS, enz. Betekent - Back-End as a Service, Software as a Service of Platform as a Service) is al begonnen met het herdefiniëren van de manier waarop software wordt ontwikkeld, gepubliceerd, en geconsumeerd.
Het basisidee is vergelijkbaar met het laten uitbesteden van uw back-end ontwikkeling, onderhoud en beheer aan een andere partij. Met andere woorden, de back-end wordt beschikbaar gesteld aan ontwikkelaars als een webservice.
Hoewel verschillende BaaS-providers verschillende functies bieden via een grote verscheidenheid aan prijsmodellen, gebruiken de meesten van hen een soort "freemium" -model. Dit betekent dat kernfuncties zoals gegevensopslag, gebruikers- / gebruiksanalyses, pushmeldingen en verificatie gratis worden aangeboden tot een bepaalde gebruikslimiet. Zodra het gebruik die limiet overschrijdt of aanvullende functies worden aangevraagd, worden er kosten in rekening gebracht. Dit maakt het eenvoudig om een app te maken en te lanceren op de vrije gebruikslaag, en vervolgens om naar een betaald niveau op te schalen terwijl u klanten toevoegt.
Normaal gesproken moet de ontwikkelaar de SDK's en API's van de BaaS-provider gebruiken om hun app aan te sluiten op de back-end.
Het grootste voordeel van BaaS is dat het ontwikkelaars de last ontneemt van het bouwen en beheren van back-ends zelf. Dat stelt de ontwikkelaar in staat zich te concentreren op belangrijker dingen, zoals het ontwerpen van een aantrekkelijke gebruikerservaring, wat de daadwerkelijke succesfactoren van de app zijn. Het helpt de ontwikkelaar ook om steile leercurven te vermijden die meestal worden geassocieerd met de meeste back-endtechnologieën. Dus het snijdt de kosten en de ontwikkeltijd. Het biedt ook een goedkope manier om te experimenteren met app-ideeën en te zien hoe ze presteren in de echte wereld.
Zoals met al het andere heeft BaaS enige afwegingen. Het grootste nadeel is het gevaar dat uw BaaS-provider plotseling failliet gaat en de service sluit. In een dergelijk scenario moet u mogelijk uw app aanzienlijk herontwerp en opnieuw coderen, zelfs als u naar een andere provider overschakelt, omdat de nieuwe service mogelijk een geheel andere API heeft. Eigenlijk is een van de meest populaire BaaS-providers, Parse, onlangs gesloten, wat heel wat ontwikkelaars heeft beïnvloed (hoewel de Parse-infrastructuur is vrijgegeven onder een open-source licentie en nieuwe leveranciers zijn opgestaan om een Parse-compatibele BaaS te leveren).
Een ander nadeel is dat de aanpassing van back-endinfrastructuur in een BaaS vaak beperkt is. Dat kan betekenen dat een bepaalde functionaliteit die u voor uw app wilt, niet beschikbaar is.
Er zijn verschillende vragen die je jezelf moet stellen over elke BaaS-provider, voordat je er een voor je mobiele app kiest.
De eerste vraag is of de provider aan de behoeften van uw app kan voldoen. Het is de moeite waard te vermelden dat het soms verbazen van de reikwijdte van uw app om aan te sluiten bij de functies van een BaaS-provider u verbazingwekkende resultaten kan opleveren. Maar geef niet op aan de functies die uw app uniek maken en aantrekkelijk maken!
De meeste BaaS-providers bieden hun diensten gratis tot een bepaald punt aan. Dit beperkingspunt wordt meestal gedefinieerd door iets als het aantal API-aanroepen, het aantal actieve gebruikers of een vergelijkbare parameter. Soms kan het erg moeilijk zijn voor de ontwikkelaar om de hoeveelheid gebruik of het aantal gebruikers van de app te voorspellen. Het is dus best mogelijk om een platform te hebben dat niet rendabel is voor de ontwikkelaar.
Controleer dit van tevoren door de kosten en opbrengsten te projecteren voor een reeks mogelijke waarden die overeenkomen met het gebruik of het aantal gebruikers. Vervolgens kunt u zien hoeveel van de opbrengst van de app naar de BaaS-kosten gaat en past u zo nodig uw inkomstenmodel aan. Als alternatief kan de ontwikkelaar op zoek naar een BaaS-provider wiens prijsmodel het beste aansluit bij het verdienmodel van de app.
Omdat er grenzen zijn aan maatwerk, kunnen sommige apps moeilijk of onmogelijk zijn om te ontwikkelen met een aantal van de off-the-shelf BaaS-aanbiedingen. Interessant is dat sommige BaaS-providers meer gespecialiseerde functies bieden die zijn gericht op een specifieke app-categorie, zoals games. Als uw app in zo'n categorie valt, is de kans groter dat de vereiste functie door een dergelijke provider wordt ondersteund. U moet een beetje onderzoek doen naar BaaS-providers die uw specifieke app-categorie targeten.
De ontwikkelaar moet ook rekening houden met de levenscyclus van de app. Hoe langer de levensduur van de app, hoe hoger de kosten om bij de BaaS-provider te blijven. Voor een app die nog lang zal bestaan, is het misschien de moeite waard om te investeren in het maken van je eigen back-end.
Nu we wat inzichten hebben in BaaS vanuit het oogpunt van zowel een ontwikkelaar als een app-opstartende oprichter, laten we eens kijken naar enkele van de populaire BaaS-pakketten en hun functies. Terwijl de industrie wordt gedomineerd door commerciële aanbieders, lijkt ook een reeks ambitieuze open-sourceproviders in de lift te zitten.
Het BaaS-platform van Google, Firebase, biedt een uitgebreide lijst met functies die zijn onderverdeeld in drie fasen, namelijk Develop, Earn en Grow. De ontwikkelingsfase bestaat uit realtime databases, verificatie, cloudberichten, opslag, hosting, testlab (voor het testen van apps op een apparaat) en crashrapportage. Omdat het een commerciële provider is, heeft het ook zijn AdMob-platform geïntegreerd om inkomsten te genereren met uw app. Verderop op het pad naar groei vindt u de functies zoals app-indexering, AdWords, meldingen en nog veel meer.
Omdat het afkomstig is van Google, de maker van Android, wordt Firebase meestal gezien als een Android-platform. De Firebase SDK is echter ook beschikbaar voor iOS.
Hier op Envato Tuts + hebben we een aantal zelfstudies en cursussen om u te helpen aan de slag te gaan met Firebase. Bekijk ze eens!
Een andere commerciële provider, Amazon Web Services (AWS), was een van de eerste PaaS-providers. Het beschikt over een uitgebreide reeks cloudservices en bijbehorende tools, met controle, als u dat wilt, over elk aspect van uw virtuele servers. Veel andere cloudserviceproviders gebruiken AWS achter de schermen.
Al deze kracht komt echter met een prijs, hoewel-AWS een veel steiler leerproces heeft dan andere BaaS-providers. Functies zijn onder meer mobiele SDK's, e-mail- en sms-meldingen, app-analyse en Device Farm voor het testen van uw app op verschillende mobiele apparaten.
Parse was een populair BaaS-platform, maar helaas heeft Facebook besloten het uit te zetten. Maar maak je geen zorgen dat de pars-SDK zal sterven! Facebook heeft de parse.com-hostingservice in januari 2017 beëindigd, maar de Parse SDK is open source gemaakt. Parse SDK heeft veel geweldige ontwikkelaars eraan gewerkt en er zijn een aantal gloednieuwe websites die back-end hosting als een service aanbieden.
Een van de beste is Back4App. Het heeft een gratis laag met een royale opslag en verzoekt een budget, evenals API's voor Android en iOS.
Mesosfer introduceert zijn zeer elastische BaaS en is een commerciële provider met interessante functies die mobiele, web- en zelfs IoT embedded apps ondersteunt.
In tegenstelling tot de vorige leden in deze lijst, is BaasBox een open-source BaaS-provider. De statistieken voor ontwikkelaars en API-gebruik die op hun website worden weergegeven, suggereren een concurrerende en capabele provider, vergelijkbaar met de commerciële providers.
Een andere open-source BaaS is Apache Usergrid (van de maker van de populaire webserver). Usergrid ondersteunt het uitvoeren van traditionele serverinfrastructuur, waardoor u uw eigen BaaS-platform kunt implementeren. Functies omvatten gebruikersbeheer, bestands- en gegevensopslag plus ophalen.
Microsoft heeft een BaaS-platform toegevoegd aan Azure, hun populaire reeks cloudservices. Azure Mobile Services biedt ondersteuning voor pushmeldingen, gegevenssynchronisatie en verificatie. Voor ontwikkelaars die in het bedrijfsdomein werken, heeft Azure Mobile Services ook krachtige ondersteuning voor connectiviteit met bedrijfsnetwerken met behulp van technologieën zoals Active Directory en VPN. Als gevolg van Microsoft's recente omarming van platformonafhankelijke ontwikkeling, werkt Azure Mobile Services op Android, iOS en natuurlijk Windows Phone.
Apple heeft in 2014 naast iOS 8 ook hun CloudKit-framework geïntroduceerd. Hoewel het hoofddoel was om te fungeren als een online database voor iOS-applicaties, biedt CloudKit ook veel andere functies, waaronder pushmeldingen. Een van de beste dingen over CloudKit voor sommige ontwikkelaars is hoeveel u gratis krijgt. Met CloudKit is er bijvoorbeeld geen limiet aan het aantal pushmeldingen dat u naar uw gebruikers kunt verzenden.
Een nadeel dat u echter moet weten wanneer u CloudKit gebruikt, is dat het momenteel niet beschikbaar is op niet-Apple-platforms. Dat betekent dat CloudKit niet werkt als u een Android-versie van uw app wilt maken!
BaaS is een praktische en tijdige oplossing voor het probleem van het toevoegen van een back-end aan uw mobiele apps. Het helpt de ontwikkelaar ook zijn eigen beperkte tijd op de best mogelijke manier te sturen. Er is een groeiend aantal BaaS-aanbieders, en nu weet u hoe u hiervan gebruik kunt maken!