Wenn Sie ein mobiler Entwickler sind, fragen Sie sich möglicherweise, wie Sie Benutzerdaten in Ihrer nächsten App verwalten. Sollten Sie eine Datenbank, einen dedizierten Server oder nur mit einem Frontend verwenden? Dieser Artikel hilft Ihnen, eine bessere Entscheidung zu treffen.
Bevor wir in die Details der verfügbaren Dienste eintauchen, wollen wir ein paar Begriffe aus dem Weg räumen.
Bei mobilen und Web-Apps sprechen wir oft über Front- und Back-End. Während Vorderes Ende Definiert die Benutzeroberfläche, die Benutzerinteraktion und die Darstellung von Informationen Back-End wickelt die Geschäftslogik, den Datenspeicher und die Sicherheit ab. Das Frontend ist der Webbrowser oder das mobile Gerät der Benutzer, und das Backend ist der Server oder die Server, auf denen Daten gespeichert und gemeinsam genutzt werden.
Eine wachsende Anzahl moderner mobiler Apps basiert auf mindestens einigen Funktionen, die ein Back-End erfordern. Benutzer- und Nutzungsanalysen, Push-Benachrichtigungen, erweiterte Sicherheit, Benutzer-zu-Benutzer-Kommunikation (z. B. bei Multiplayer-Spielen oder Messaging-Apps) und Monetarisierung der App durch Werbung sind die häufigsten Beispiele.
Aus Sicht eines mobilen Entwicklers scheint das Backend eine ganz andere Welt zu sein, die mit Datenbanken und Servern bevölkert ist. Von Entwicklern wird nicht nur erwartet, dass sie schöne und leistungsfähige mobile Schnittstellen entwickeln, sondern sie müssen auch über Netzwerkinfrastruktur wie Webserver, Datenbankverwaltungssoftware, serverseitige Skriptsprachen und vieles mehr verfügen.
Darüber hinaus wird erwartet, dass sie Experten für moderne Kryptographie- und Computersicherheit, Big Data und Data Mining, Mobilfunknetze (mobile Apps, die meistens auf Smartphones laufen, die an ein Mobiltelefonnetz angeschlossen sind) und eine ständig wachsende Liste zusätzlicher Technologien sind.
Selbst wenn eine einfache mobile App mit einem Back-End entwickelt werden muss, muss der Entwickler natürlich viele Werkzeuge und Sprachen beherrschen, die außerhalb des Bereichs der gewöhnlichen App-Entwicklung liegen. Diese Situation hält viele Entwickler davon ab, ein Backend in ihre Apps zu integrieren.
Da Cloud Computing in den Mainstream integriert ist, hat XaaS (dh BaaS, SaaS, PaaS usw. - Backend als Dienst, Software als Dienst oder Plattform als Dienst) bereits begonnen, die Art und Weise, wie Software entwickelt, veröffentlicht wird, neu zu definieren. und verbraucht.
Die Grundidee ist vergleichbar mit der Auslagerung Ihrer Backend-Entwicklung, Wartung und Verwaltung an eine andere Partei. Mit anderen Worten, das Backend wird Entwicklern als Webdienst zur Verfügung gestellt.
Während verschiedene BaaS-Anbieter über eine Vielzahl von Preismodellen verschiedene Funktionen anbieten, verwenden die meisten von ihnen ein "Freemium" -Modell. Dies bedeutet, dass Kernfunktionen wie Datenspeicherung, Benutzer- / Nutzungsanalysen, Push-Benachrichtigungen und Authentifizierung bis zu einer bestimmten Nutzungsgrenze kostenlos zur Verfügung gestellt werden. Sobald die Nutzung dieses Limit überschreitet oder zusätzliche Funktionen angefordert werden, wird eine Gebühr erhoben. Auf diese Weise können Sie auf einfache Weise eine App auf der kostenlosen Nutzungsebene erstellen und starten und dann beim Hinzufügen von Kunden auf eine bezahlte Ebene hochstufen.
Normalerweise muss der Entwickler die SDKs und APIs des BaaS-Providers verwenden, um seine App mit dem Back-End zu verbinden.
Der größte Vorteil von BaaS besteht darin, dass Entwickler Entwickler von der Belastung durch das Erstellen und Verwalten von Backends selbst entlasten. Dadurch kann sich der Entwickler auf wichtigere Dinge konzentrieren, z. B. die Gestaltung einer überzeugenden Benutzererfahrung, die die tatsächlichen Erfolgsfaktoren der App darstellt. Außerdem hilft es dem Entwickler, steile Lernkurven zu vermeiden, die typischerweise mit den meisten Back-End-Technologien verbunden sind. So werden die Kosten und die Entwicklungszeit gesenkt. Es bietet auch eine kostengünstige Möglichkeit, mit App-Ideen zu experimentieren und zu sehen, wie sie in der realen Welt funktionieren.
Wie bei allem anderen hat BaaS auch einige Kompromisse. Der größte Nachteil ist die Gefahr, dass Ihr BaaS-Anbieter plötzlich aus dem Geschäft ausscheidet und den Dienst einstellt. Selbst wenn Sie zu einem anderen Anbieter wechseln, müssen Sie in einem solchen Szenario die App möglicherweise grundlegend umgestalten und neu codieren, da der neue Dienst möglicherweise eine völlig andere API hat. In der Tat wurde einer der bekanntesten BaaS-Anbieter, Parse, kürzlich geschlossen, was viele Entwickler betroffen hat (obwohl die Parse-Infrastruktur unter einer Open-Source-Lizenz veröffentlicht wurde und neue Anbieter aufgetaucht sind, um einen Parse-kompatiblen BaaS bereitzustellen)..
Ein weiterer Nachteil ist, dass die Anpassung der Back-End-Infrastruktur in einem BaaS häufig begrenzt ist. Dies kann bedeuten, dass einige Funktionen, die Sie für Ihre App wünschen, nicht verfügbar sind.
Sie müssen sich einige Fragen zu jedem BaaS-Anbieter stellen, bevor Sie eine für Ihre mobile App auswählen.
Die erste Frage ist, ob der Anbieter die Anforderungen Ihrer App erfüllen kann. Es ist erwähnenswert, dass die Neudefinition des Anwendungsbereichs Ihrer App für die von einem BaaS-Anbieter angebotenen Funktionen zu wirklich erstaunlichen Ergebnissen führen kann. Aber geben Sie nicht die Funktionen auf, durch die Ihre App einzigartig und ansprechend ist!
Die meisten BaaS-Anbieter bieten ihre Dienste nur bis zu einem bestimmten Zeitpunkt kostenlos an. Dieser Begrenzungspunkt wird normalerweise definiert durch die Anzahl der API-Aufrufe, die Anzahl der aktiven Benutzer oder einen ähnlichen Parameter. Manchmal kann es für den Entwickler sehr schwierig sein, die Menge der Nutzung oder die Anzahl der Benutzer der App vorherzusagen. Es ist also durchaus möglich, eine Plattform zu erhalten, die für den Entwickler nicht rentabel ist.
Überprüfen Sie dies im Voraus, indem Sie die Kosten und den Umsatz auf einen Bereich möglicher Werte projizieren, die der Nutzung oder der Anzahl der Benutzer entsprechen. Anschließend können Sie sehen, wie viel von den Einnahmen der App für BaaS-Gebühren verwendet wird, und Sie können gegebenenfalls Ihr Einnahmenmodell anpassen. Alternativ kann der Entwickler nach einem BaaS-Anbieter suchen, dessen Preismodell dem Ertragsmodell der App am besten entspricht.
Da der Anpassungsfähigkeit Grenzen gesetzt sind, ist die Entwicklung einiger Apps mit einigen der üblichen BaaS-Angebote möglicherweise schwer oder gar nicht zu entwickeln. Interessanterweise bieten einige BaaS-Anbieter speziellere Funktionen für eine bestimmte App-Kategorie an, beispielsweise Spiele. Wenn Ihre App in eine solche Kategorie fällt, besteht eine größere Chance, dass die erforderliche Funktion von einem solchen Anbieter unterstützt wird. Sie müssen etwas nach BaaS-Anbietern suchen, die auf Ihre spezifische App-Kategorie abzielen.
Der Entwickler muss auch den Lebenszyklus der App berücksichtigen. Je länger die App läuft, desto höher sind die Kosten für den Verbleib beim BaaS-Anbieter. Für eine App, die für lange Zeit verfügbar sein wird, lohnt es sich möglicherweise, in die Erstellung eines eigenen Backends zu investieren.
Nachdem wir nun einige Einblicke in BaaS sowohl aus der Sicht eines Entwicklers als auch eines App-Starters haben, wollen wir uns einige der populären BaaS-Pakete und deren Funktionen ansehen. Während die Branche von den kommerziellen Anbietern dominiert wird, scheint auch eine Reihe von aufstrebenden Open-Source-Anbietern zuzunehmen.
Die BaaS-Plattform von Google, Firebase, bietet eine umfassende Liste von Funktionen, die in drei Stufen kategorisiert werden, nämlich "Entwickeln", "Verdienen" und "Wachsen". Die Entwicklungsphase umfasst Echtzeitdatenbanken, Authentifizierung, Cloud-Messaging, Speicher, Hosting, Testlabor (zum Testen von Apps auf einem Gerät) und Absturzberichte. Als kommerzieller Anbieter hat es auch seine AdMob-Plattform zur Monetarisierung Ihrer App integriert. Auf dem Weg zum Wachstum finden Sie Funktionen wie App-Indexierung, AdWords, Benachrichtigungen und vieles mehr.
Da Firebase von Google stammt, dem Schöpfer von Android, wird Firebase normalerweise als Android-Plattform angesehen. Das Firebase SDK ist jedoch auch für iOS verfügbar.
Auf Envato Tuts + haben wir eine Reihe von Tutorials und Kursen, die Ihnen den Einstieg in Firebase erleichtern. Schau sie dir an!
Ein anderer kommerzieller Anbieter, Amazon Web Services (AWS), war einer der ersten PaaS-Anbieter. Es bietet eine Vielzahl von Cloud-Diensten und dazugehörigen Tools, die bei Bedarf alle Aspekte Ihrer virtuellen Server steuern können. Tatsächlich verwenden viele andere Cloud-Dienstanbieter AWS im Hintergrund.
All diese Möglichkeiten sind mit Kosten verbunden, obwohl AWS eine viel steilere Lernkurve als andere BaaS-Anbieter hat. Zu den Features gehören mobile SDKs, E-Mail- und SMS-Benachrichtigungen, App-Analysen und die Gerätefarm zum Testen Ihrer App auf verschiedenen mobilen Geräten.
Parse war eine beliebte BaaS-Plattform, aber leider hat Facebook beschlossen, die Plattform zu schließen. Aber keine Sorge, dass das Parse-SDK sterben wird! Facebook hat den Hosting-Service von parse.com im Januar 2017 eingestellt, das Parse-SDK wurde jedoch als Open Source veröffentlicht. Bei Parse SDK arbeiten viele großartige Entwickler daran, und es gibt eine Reihe brandneuer Websites, die Back-End-Hosting als Service anbieten.
Eines der besten ist Back4App. Es verfügt über eine kostenlose Stufe mit einem großzügigen Speicher- und Anforderungsbudget sowie APIs für Android und iOS.
Mesosfer stellt seinen hochelastischen BaaS vor und ist ein kommerzieller Anbieter mit interessanten Funktionen, der mobile, Web- und sogar IoT-Embedded-Apps unterstützt.
Im Gegensatz zu den vorherigen Mitgliedern in dieser Liste ist BaasBox ein Open-Source-Anbieter von BaaS. Die auf ihrer Website angezeigten Entwickler- und API-Nutzungsstatistiken legen einen wettbewerbsfähigen und leistungsfähigen Anbieter nahe, der mit den kommerziellen Anbietern vergleichbar ist.
Ein weiterer Open-Source-BaaS ist Apache Usergrid (vom Ersteller des beliebten Webservers). Usergrid unterstützt die Ausführung auf einer herkömmlichen Serverinfrastruktur, sodass Sie Ihre eigene BaaS-Plattform bereitstellen können. Zu den Funktionen gehören Benutzerverwaltung, Datei- und Datenspeicherung sowie Abruf.
Microsoft hat seine beliebte Cloud-Suite Azure um eine BaaS-Plattform erweitert. Azure Mobile Services unterstützt Push-Benachrichtigungen, Datensynchronisierung und Authentifizierung. Für Entwickler, die in der Unternehmensdomäne arbeiten, unterstützen Azure Mobile Services auch die Konnektivität zu Unternehmensnetzwerken mithilfe von Technologien wie Active Directory und VPN. Azure Mobile Services spiegelt die jüngste Umstellung von Microsoft auf die plattformübergreifende Entwicklung wider und funktioniert auf Android, iOS und natürlich Windows Phone.
Apple hat 2014 sein CloudKit-Framework neben iOS 8 eingeführt. Das Hauptziel war, als Onlinedatenbank für iOS-Anwendungen zu fungieren. CloudKit bietet jedoch viele weitere Funktionen, einschließlich Push-Benachrichtigungen. Für einige Entwickler ist das Beste an CloudKit, wie viel Sie kostenlos bekommen. Mit CloudKit ist beispielsweise die Anzahl der Push-Benachrichtigungen, die Sie an Ihre Benutzer senden können, unbegrenzt.
Ein Nachteil, den Sie bei der Verwendung von CloudKit beachten sollten, ist, dass es derzeit nicht auf anderen Plattformen als Apple verfügbar ist. Das bedeutet, dass CloudKit nicht funktioniert, wenn Sie eine Android-Version Ihrer App erstellen möchten!
BaaS ist eine praktische und zeitnahe Lösung für das Problem, Ihren mobilen Apps ein Backend hinzuzufügen. Es hilft dem Entwickler auch, seine begrenzte Zeit optimal zu steuern. Es gibt eine wachsende Anzahl von BaaS-Anbietern, und jetzt wissen Sie, wie Sie diese nutzen können!