iX 10/2018
S. 120
Praxis
App-Entwicklung
Aufmacherbild

Firebase als Backend-Dienst für Apps

Angefeuert

Google baut Firebase Stück für Stück zur zentralen Plattform für mobile Anwendungen aus. Entwickler können so das Backend der Cloud überlassen und sich auf die App konzentrieren.

Neben der besseren Integration in die jeweilige Plattform war lange Zeit die Unabhängigkeit vom Internet ein Hauptargument für native Apps gegenüber mobilen Webseiten. Hier hat das Web jedoch aufgeholt und auch native Apps greifen zunehmend und regelmäßig aufs Backend zu.

Gründe hierfür gibt es viele: Der Benutzer muss sich authentifizieren und der Server ihn autorisieren. Der Anbieter möchte das Anwenderverhalten messen, um Daten für Werbeaktionen, Kaufanreize und personalisierte Angebote zu erhalten. Stürzt die Anwendung ab, soll der Entwickler den Fehler schnell analysieren und beheben. Um den Nutzer, solange es geht, in der App zu halten, ist oft eine Integration sozialer Medien wie Facebook und Twitter sinnvoll. Außerdem wollen viele Anwender ihre Daten über mehrere Geräte synchroniseren.

Letztlich muss der Entwickler eine ganze Reihe von Webservices orchestrieren, deren Programmierschnittstellen kennen und sie in der eigenen App richtig nutzen. Gibt es für eine Art Dienst mehrere Anbieter, sollte er idealerweise alle unterstützen – schließlich weiß er nicht, welchen der Nutzer lieber verwendet. Dies alles für nur ein mobiles Betriebssystem zu gewährleisten, ist schon keine leichte Aufgabe. Kommt eine zweite Plattform hinzu, muss der Entwickler zusätzlich unterschiedliche Programmiersprachen und Architekturen bei der Implementierung berücksichtigen.

Backend as a Service

Seit einigen Jahren erfreuen sich deshalb solche Cloud-Angebote wachsender Beliebtheit, die speziell auf die Bedürfnisse mobiler Apps zugeschnitten sind. Man bezeichnet sie als Mobile Backend as a Service (MBaaS) oder Backend as a Service (BaaS). Neben den bereits angesprochenen Funktionen gehören eine Geschäftslogik im Backend, Cloud-Speicher und -Datenbanken, standortbasierte Dienste, Nachrichten, Chats und Push-Benachrichtigungen zum Standardrepertoire.

Gerade letztere verdeutlichen den Mehrwert von BaaS-Diensten: Android wie iOS kennen Cloud-basierte Benachrichtigungen. In beiden Fällen sendet der Server bloß kleine Infohäppchen an ein oder mehrere Geräte. Die technische Umsetzung ist tief in das jeweilige Ökosystem eingebettet – insbesondere die Geräteidentifikation variiert stark.

Eine gemeinsame API, beispielsweise auf Basis eines RESTful Webservice, in Verbindung mit einer plattformübergreifenden Nutzer- und Geräteverwaltung würde die Integration durch den Entwickler deutlich vereinfachen. BaaS-Dienste fungieren als Brücke zwischen Apps und unterschiedlichen Cloud-Backends, indem sie vereinheitlichte Programmierschnittstellen und Entwicklungswerkzeuge zur Verfügung stellen. Hierzu gehören vorgefertigte Bibliotheken und Pakete, die man mit minimalem Aufwand in den Build-Prozess der jeweiligen Plattform integrieren kann. Dies ist auch ein wichtiges Abgrenzungsmerkmal gegenüber vielen Angeboten aus den Bereichen Software as a Service (SaaS), Infrastructure as a Service (IaaS) oder Platform as a Service (PaaS). Schließlich sind Dateiablage und -weitergabe, Geschäftslogik (Lambdas, Functions) und Datenbanken Funktionen, die jeder Cloud-Dienstleister in seinem Portfolio hat.

Firebase ist Googles BaaS-Angebot an alle Android-, iOS- und Webentwickler. Der Konzern übernahm die 2011 gegründete Firma Firebase, Inc. im Oktober 2014 und hat die gleichnamige Plattform seitdem kontinuierlich ausgebaut und erweitert. Neben den Schlüsselfunktionen Datenbank und Dateiablage, Nutzerauthentifizierung, Hosting, Cloud Messaging (Googles offizielle Alternative zum 2012 für veraltet erklärten, nativen Cloud to Device Messaging), Absturz- und Verhaltensanalyse stehen dem Entwickler zahlreiche weitere Dienste zur Verfügung. Beispielsweise läutete die Google I/O 2018 die Betaphase der Machine-Learning-Komponente ML Kit ein. Und den URL-Kürzungsdienst goo.gl ersetzt künftig Firebase Dynamic Links.

Firebase in der eigenen App

Assistiert: Das Hinzufügen einer Android-App geht schnell von der Hand (Abb. 1).

Für den Einsatz von Firebase ist ein Google-Konto erforderlich. Eine zentrale Webkonsole erlaubt das Anlegen, Verwalten und Überwachen von Projekten. Letztere enthalten Apps für eine oder mehrere Plattformen. Beim Hinzufügen einer Android-App trägt man deren Paketnamen (package="…" in der Manifestdatei), optional einen alternativen Anwendungsnamen (Nickname) und für die Fehlerbehebung den SHA1-Schlüssel des Signaturzertifikats in das Webformular ein. Das Registrieren der App erzeugt die zentrale Konfigurationsdatei google-services.json. Sie muss man herunterladen und dem Android-Studio-Projekt hinzufügen. Bei Apps, die aus einem Modul bestehen, landet die Datei üblicherweise im Verzeichnis app. Während des kompletten Prozesses greift dem Nutzer ein Assistent unter die Arme (siehe Abbildung 1).