Wie man Firebase in der Mobile-App-Entwicklung nutzt

Die meisten Apps benötigen ein Backend. Dieser Beitrag soll Dir zeigen, wie Du Firebase in Mobile Apps anwenden kannst.

Wir leben in einer modernen Welt in der mobile Endgeräte nicht mehr wegzudenken sind. Falls du das nicht glaubst, schau Dich einfach nur auf der Strasse um, wie viele Menschen ein Smartphone in der Hand halten.

Ich gehöre auch dazu und kann das nicht verleugnen – und vermutlich gehörst Du auch dazu.

Für viele von uns sind mobile Endgeräte ein Alltagsgegenstand, daher vergisst man leicht, wie diese Geräte eigentlich funktionieren. Hier also eine kurze Erklärung.

Heutzutage nutzt ziemlich jede mobile Applikation ein Backend, das ist ein Fakt!

Natürlich gibt es Dinge wie ein Taschenrechner, der wohl ohne Backend auskommt, aber das ist wohl die Minderheit. Selbst bei simplen Applikationen wie einem Tic Tac Toe Spiel würdest du sicher gerne einen Multiplayer oder ein Scoreboard haben, welches wiederrum ein Backend benötigt.

Ein dediziertes Backend, welches explizit für deine Applikation erstellt wurde ist für jeden Developer natürlich eine Spielwiese auf der er sich austoben und ganz spezifische Änderungen vornehmen kann. Manchmal ist dies jedoch nicht möglich.

Glücklicherweise gibt es Alternativen

 

Backend as a Service

Mobile Backend as a Service“ (MBaaS) genannt. Für gewöhnlich haben die Dienstleistungen dieser Gruppe einige Gemeinsamkeiten hinsichtlich der Funktionen. Die bekanntesten sind:

  • Unterstützung von Push-Mitteilungen per APNS/GCM
  • Analyse Mobiler Apps
  • Mobilgerätorientierte Softwareentwicklungswerkzeuge (SDKs)
  • Unterstützung vieler Authentifizierungsmethoden für Nutzer
  • Die Speicherung statischer Elemente in Clouds
  • Eine Datenbank-Engine

Parse war der bekannteste mobile Backend-Service. Leider entschied sich Facebook Anfang 2016, das Produkt herunterzufahren.

Bei WhallaLabs haben wir uns dazu entschieden, Alternativen zu betrachten, welche mindestens ähnliche Funktionen bieten. Eine dieser Alternativen ist Firebase.

firebase website

Firebase stellt kein MBaaS dar. Es handelt sich um einen 2011 gegründeten und 2014 von Google akquirierten Service.

Es ist eine starke Plattform zur Erstellung Mobiler Apps und Web Apps mit der Produktklassifizierung eines Backend als Servicelösung. Es ist weniger mobilorientiert als Parse und liefert damit Grund zur Annahme, dass Firebase nicht zwangsweise eine gute Alternative für Ihr Parse-betriebene Mobile App ist.

Was macht Firebase jedoch so interessant? Und was bietet es? Die Antwort lautet: Der Service als Ganzes basiert auf drei Säulen, welche im Folgenden erläutert werden, nämlich

  • Statisches Datenhosting
  • Nutzerauthentifizierung
  • Echtzeitdatenbank

 

Statisches Datenhosting

Statisches Datenhosting ist der wohl unwesentlichste Aspekt von Firebase hinsichtlich der Entwicklung von mobilen Anwendungen, dennoch erwähnenswert. Es stellt einen Speicherplatz für sämtliche statische Inhalte wie HTML Files, JavaScript oder CSS dar.

Der Einsatz ist zudem simpel. Du kannst eine Firebase App direkt von Deinem Endgerät initialisieren. Die Vorbereitung Ihrer App und die Übermittlung der Inhalte an einen externen Server bedarf lediglich einiger weniger Befehle.

Firebase Hosting ist außerdem skalierbar. Es basiert auf einem erweiterten Content Delivery Network (CDN), welches über die gesamte Welt verteilt ist. Unabhängig von Deinem Standort kannst Du einen nahegelegenen Server mit einer aus dem Cache geholten Kopie Deiner Inhalte beanspruchen. Zusätzlich sind die Kopien der Daten auf Solid State Drives gespeichert. Dadurch wird die Lese- und Antwortzeit deutlich verringert und stellt Deine Inhalte unverzüglich bereit.

Eine weitere nützliche Funktion des statischen Datenhostings ist die Out-of-the-box-Verschlüsselung, bei der die Daten Deiner App mittels Secure Socket Layer transferiert werden. Du benötigst kein eigenes SSL-Zertifikat, da Dir Firebase vertrauenswürde Zertifikate gemäß Deines aktuellen Abo-Plans bereitstellt.

 

Nutzerauthentifizierung

Der für viele Mobile Apps wichtige Aspekt der Nutzerauthentifizierung kann mit Firebase auf verschiedenen Wegen vollzogen werden.

Eine Möglichkeit ist die Authentifizierung mittels Email und Passwort. So simpel wie es klingt, wird es von Firebase auch umgesetzt.

Alles was dazu benötigt wird, ist diese Funktion im Dashboard Deiner App zu aktivieren. Firebase Mobile SDK (verfügbar sowohl für Android als auch iOS) bietet Dir bereits einige Möglichkeiten zur Nutzerauthentifizierung auf Mobilgeräten. Es ist kein Netzwerk-Code seitens Deiner App nötig und Du musst Dir keine Gedanken um die Passwort-Verschlüsselung machen, da Mobile SDK dies für Dich übernimmt.

Was, wenn Du bereits in Nutzermanagement-System erstellt haben? Die gute Nachricht ist, dass Du dies dennoch in Deine Mobile App integrieren kannst.

Firebase bietet Webentwickler mit Zugriff auf externe Bibliotheken, welche für eine bereits bestehende Backend-Lösung verwendet werden können. Diese Bibliotheken erstellen sichere JSON Web Tokens (JWTs) für bestehende Nutzer und verwendet diese Tokens für die Authentifizierung seitens des Mobile SDKs. Die Bibliotheken für bestehende Sitzungsmanagementsysteme unterstützen die gebräuchlichsten Webentwicklungs-Plattformen wie beispielsweise Go, Java, .NET, Node.js, Perl, PHP, Python und Ruby. Diese Auswahl an verschiedenen Technologien kann problemlos den Großteil der Backend Lösungen abdecken.

Das klingt soweit ganz gut, aber was ist mit externen Anbietern? Solltest Du einen Nutzer über dessen Facebook-Account authentifizieren wollen, steht auch dafür eine Lösung parat.

Firebase beinhaltet die Unterstützung für die Authentifizierung durch Dritte wie beispielsweise Facebook, Google, Twitter und GitHub. Die Einstellungen sind ähnlich der Nutzer-Passwort-Authentifizierung – Du musst lediglich die Unterstützung für die Authentifizierung durch Dritte im Dashboard Ihrer App aktivieren und den gewünschten Dienst zur externen Identifizierung hinzufügen.

Nach all dem bist Du bereit zur Entwicklung, welche dank der Unterstützung externer Anbieter seitens der Mobile SDK zudem vereinfacht ist.

 

Echtzeitdatenbank

Die wohl wichtigste Funktion ist die Echtzeitdatenbank.

Aber was bedeutet Echtzeit in diesem Zusammenhang? Um dies besser verstehen zu können, betrachten wir nun zunächst den Aufbau von Firebase.

Die meisten Backend Lösungen basieren auf einer dreistufigen Architektur. Es gibt eine Client-Schicht – eine an der Nutzeroberfläche orientierte Web-, Desktop oder Mobil-App. In der Mitte liegt die Businesslayer, welche für gewöhnlich als Webservice auf einem zugeordneten Server operiert und verantwortlich für die Validierung und Verarbeitung der Daten ist.

Die Businesslayer bildet eine Brücke zwischen der Client- und Datenquelle – meist eine Datenbank-Engine, welche Lese-, Schreib- und Löschaktionen ausführt und Operationen mit Rohdaten updatet.

Firebase basiert auf einer sogenannten zweistufigen Architektur. Dieser Ansatz wird in Client-Server Lösungen verwendet, bei welchen die Kommunikation direkt zwischen Client und Datenquelle stattfindet. Diese Elemente sind eng gepaart, der größte Vorteil erweist sich durch schnelle Antwortzeiten, welche essentiell im Zusammenhang mit den Aspekten sind, welche wir nun betrachten werden.

Lass uns einen Blick auf einen weiteren Aspekt werfen, welcher üblich für die meisten Backend Services ist. Das Erhalten von Daten basiert auf einem Anfrage-Antwort-Modell. Firebase behandelt dies ein wenig anders.

Es ist fokussiert auf Beobachtungsmuster, welche für eine konstante Datensynchronisation verwendet werden. Dies führt zum wichtigsten Faktor: Eine Veränderung seitens des Backends führt unverzüglich zu einer Reaktion seitens der Client-Geräte, ohne dabei eine zusätzliche Anfrage stellen zu müssen (es sei denn, Du möchtest es so).

Sie müssen sich also keine Gedanken über eine aktive Aktualisierung Deiner Daten machen.

Wenn Deine Daten verändert werden, erhältst Du binnen Millisekunden das Resultat auf Deine Client-Anwendung. Dazu bedarf es keiner weiteren Interaktion des Nutzers.

 

Betrachten wir die Details

two tier architecture

Was liegt unterhalb der Plattform?

Firebase benutzt eine NoSQL JSON Datenbank-Engine. Solltest Du ein Softwareentwickler sein, bist Du vermutlich schon vertraut mit diesem Format zum Datenaustausch. Hinsichtlich der Architektur sind NoSQL-Datenbanken bei vielen Web- & Mobillösungen dank Ihrer Antwortfreudigkeit und Messbarkeit sehr beliebt.

Die Kommunikation zwischen Datenbanken und Clientanwendungen wird über Websockets abgewickelt. Dies ist einer der Tricks, die Fireball zur Echtzeitfunktionalität für Entwickler und Nutzer anwendet. Selbstverständlich bedarf dieser Ansatz eines hocheffizienten Umgangs mit dem Code Deiner Mobile App.

Ein bislang unerwähnter, jedoch sehr interessanter Aspekt ist die durch Firebase bereitgestellte Offlineverfügbarkeit Deiner App durch zweckgemäßes Caching. Mobile SDK erstellt einen Zwischenspeicher in Form eines volatilen Speichers (bis zu 10MB), um so eine exakte Kopie der bereits synchronisierten Daten zu behalten.

Dank dieses Zwischenspeichers ist der Abbruch der Internetverbindung kein Problem, da die App selbst in diesem Fall weiterhin funktionsfähig bleibt. Zusätzlich besteht die Möglichkeit durch die Aktivierung von Persistenz, Daten zusätzlich auf der Festplatte des Geräts zu speichern. Alle offline getätigten Veränderungen werden bei erneuter Verbindung zum Internet synchronisiert.

Du musst auch bezüglich der Datensicherheit und –integrität aufgrund der zweischichtigen Architektur von Firebase kein Behagen haben.

Für jeden einzelnen Knotenpunkt Deines JSON-Baumes können Regeln für Lese-, Schreib- und Validierungszugriffe konfiguriert werden. So können Zugriffe für einzelne Nutzer angepasst werden.

 

Schlussfolgerung

Wie Du vermutlich festgestellt hast, bestehen zwischen Parse und Firebase einige grundlegende Unterschiede.

Ersteres ist eine ausschließlich mobil-orientierte Lösung mit Funktionen wie beispielsweise Push-Benachrichtigungen oder App-Analysen, welche Firebase nicht bietet. Natürlich gibt es Aspekte, die beide Plattformen grundlegend bieten, jedoch gleicht der Vergleich der beiden Lösungen jenem von Äpfeln und Birnen.

Benötigt Deine Anwendung eine Lösung wie Firebase?

Das hängt von Deiner Zielsetzung ab. Wenn Dein Fokus auf Datensynchronisation in Echtzeit, Nutzerauthentifizierung und bequemer Bedienung liegt, erscheint Firebase als eine gute Wahl für Deine App.

Solltest Du eine mobile Messaging-App entwickeln, erscheint Firebase als eine Möglichkeit zur Realisierung. Sollten Dir die Funktionen von Firebase jedoch nicht wichtig erscheinen, solltest Du nach einer Alternative suchen.

Native App vs Responsive Website: Wie man sich zwischen diesen entscheidet?

Die Entscheidung zwischen einer nativen App und einer Responsive Web App kann die erste Falle auf dem Weg zum Online-Unternehmer oder bei der Anpassung Deines Onlinegeschäfts für Mobilgeräte sein.

Der Großteil des Internetverkehrs wird über Mobilgeräte abgewickelt, weswegen der Verlust dieser Nutzer fatale Folgen hätte. Bereits 2014 überschritten mobile Nutzer die klassischen Desktopnutzer.

mobile vs desktop internet users

Laut comSocre machen Smartphone- und Tabletnutzer gemeinsam über 60% des digitalen Medienverkehrs aus.

digital media time

Zudem zielt Google auf die Anpassung an Mobilgeräte ab, unter anderem durch die Bestrafung mit niedrigeren SERP-Rankings für Websites, die nicht für Mobilgeräte angepasst sind.

Fakt ist:

Die Frage lautet nicht mehr, ob Du Deine Website für Mobilgeräte optimieren möchtest. Sie lautet: Wie optimierest Du Deine Website?

Es gibt zwei mögliche Optionen:

  • Du kannst eine ansprechende Webseite erstellen
  • Oder eine native App entwickeln

Dieser Beitrag soll Vor- und Nachteile der beiden Möglichkeiten erläutern und zudem eine dritte Alternative vorstellen, damit Du die für Deine Geschäftstätigkeit passende Wahl treffen kannst.

 

Native App vs Responsive Website: Was ist für Dich geeignet?

Die Entscheidung für eine der beiden Varianten ist abhängig von Deinem Business, dem Zweck, dem Angebot, Produkt oder Dienstleistung, Interessentenkreis sowie weiteren Faktoren. Diese Faktoren spielen eine wichtige Rolle bei der Entwicklung – stütze Dich nicht auf Annahmen oder das Gefühl, mit Konkurrenten gleichziehen zu müssen.

Was bei anderen funktioniert hat, muss nicht zwangsweise auch bei Dir zum Erfolg führen.

Bei der Wahl zwischen nativer App und Responsive Website gilt zu bedenken, dass man nicht vor der Wahl steht, ob man Geld investieren möchte oder nicht. Unabhängig von Deiner Entscheidung für eine Variante wird es ein zeit- und kostenaufwendiges Investment.

Natürlich ist eine Responsive Website günstiger, aber nicht umsonst.

Bei der Erläuterung, unter welchen Voraussetzungen man welche Lösung wählen sollte, werde ich den Fokus im Folgenden auf diese Aspekte legen:

  • Fälle, in denen die jeweilige Lösung effektiver ist
  • Was bei der Entscheidung zu bedenken ist
  • Vor- und Nachteile beider Optionen

Notiere den Bedarf Deines Unternehmens, die Zielgruppe und die gewünschte Funktion Deiner zukünftigen mobilen App oder Website und vergleiche anhand der folgenden Punkte.

 

Einfache Anpassung der Darstellung auf allen Displaygrößen mit einer Responsive Website

responsive web design

Fragst du Dich:

„Ok, aber was genau ist eine Responsive Website?“

Es handelt sich hierbei um eine Website, deren Design sich allen Bildschirmgrößen anpasst, sowohl bei Mobilgeräten als auch klassischen Computernutzern. Dabei wird werden CSS Medien-Queries verwendet, um die Darstellung der Inhalte dem Display anzupassen. Mit einem Responsive Webdesign kannst Du Deine Website problemlos für alle Nutzer optimieren.

Obwohl sie nicht perfekt ist, sind einige grundlegende Vorteile geboten:

 

1. Eine Responsive Website ist recht einfach hinsichtlich der Implementierung

Das kann ein überzeugendes Argument sein, falls Zeit und/oder Ressourcen für die Entwicklung einer Mobile-Website oder einer separaten Mobile-App nur in geringem Ausmaß verfügbar sind.

Durch die Verwendung anpassbarer Raster, Bilder und CSS Media-Queries kannst Du Deine Website problemlos an jegliche Bildschirmgrößen anpassen, am häufigsten auf der Breite des Browsers basierend. Du kannst auch ein Adaptive Design in Betracht ziehen, jedoch musst Du hierbei die Inhalte manuell an jede möglich Bildschirmgröße anpassen.

Responsive Web Design (RWD) bietet hinsichtlich des Designs und der Entwicklung eine Zeitersparnis. Solltest Du also Deine Website von Grund auf neu erstellen und sie für Mobilgeräte optimieren wollen, ist die Entscheidung für Responsive Design eine gute Idee.

 

2. Es passt gut zu einem Großteil der Websites

RWD passt zu einem Großteil der Websites von Firmen, aber auch von Privatpersonen. Solltest Du eine Produkt-, Portfolio- oder Onlinehandel-Website betreiben, ist eine gut implementierte Responsive Website fast immer passend.

Je einfacher die Navigation auf und je simpler die Funktionen der Website, desto bessere Resultate sind mit RWD zu erwarten.

 

3. Es ist kosteneffektiv

Mehr Zeitersparnis bedeutet weniger Stunden für die Entwicklung, resultierend in einer kostengünstigeren Umsetzung der Website als für andere an Mobilgeräte angepasste Websites oder Apps.

Eine Responsive Website erlaubt den Verzicht auf separate Seiten für Mobilgeräte mit mobilen URLs oder die Entwicklung einer Native App.

 

4. Google liebt es

Erinnerst Du Dich an die eingangs erwähnte Haltung von Google gegenüber für Mobilgeräte nicht optimierte Websites?

Die Responsive Website verhindert nicht nur die „Bestrafung“ durch Google, sondern ermöglicht bei guter Umsetzung sämtliche Vorteil von SEO (Sichtbarkeit in SERP sowohl auf bei Computern als auch Mobilgeräten, besseres Ranking, mehr Verkehr und damit mehr potentielle Kunden)

Neben den genannten Vorteilen birgt die RWD jedoch auch ein paar Nachteile:

Das markanteste, sowohl hinsichtlich Nutzererfahrungen als auch SEO, ist die langsamere Ladegeschwindigkeit der Seite. Durch gute Medienanfragen können Sie teils für eine Verbesserung sorgen, jedoch werden Sie dadurch nicht die Performance einer dedizierten mobilen Website erhalten.

Auch die Navigation könnte ein Problem darstellen. RWD ist zwar gut für das Scrollen auf Websites, bietet aber darüber hinaus keine komplexeren Lösungen, wie beispielsweise das seitliche Swipen. Bedenke, dass die Navigation auf Mobilgeräten simpler als auf Desktopgeräten ist und halte Ihre Website dementsprechend simpel.

 

Etabliere Dein Geschäft auf Mobilgeräten durch Native Apps

Mobile App Development

Das Gegenteil zur Responsive Website ist die Entwicklung einer Native App. Hierbei bedarf es der Erstellung von Grund auf, damit verbunden eines erhöhten Entwicklungsaufwands und dementsprechend eines höheren Zeitaufwands gegenüber RWD.

Was sind also die Vorteile bei der Entscheidung für eine Native App?

 

1. Eine Native App benötigt keine Internetverbindung

Ist die App aus dem App-Store auf das Gerät des Nutzers installiert, bedarf es keiner weiteren Verbindung zum Internet, um die Inhalte darzustellen und die App zu betreiben.

Es gibt zudem viele Apps, die eine Verbindung zum Internet nutzen, dennoch dem Nutzer ermöglichen, Daten im Offline-Modus zu speichern und später zu betrachten – selbst ohne Internetverbindung.

Dies erleichtert den Zugang zu Deiner App und ermöglicht dem Nutzer die allzeitige Verwendung, unabhängig von einer bestehenden Internetverbindung.

 

2. Sie bietet bessere Performance

Da bei der Nutzung nichts (oder nicht alles) aus dem Internet geladen werden muss, ist die Nutzererfahrung und der Betriebsfluss der App besser als bei einer Responsive Website.

Die Native App ermöglicht zudem die Implementierung komplexer Navigation oder Inhaltssuche, wodurch dem Nutzer die gewünschte Aktion stets verfügbar ist.

 

3. Die Möglichkeit, komplexere Funktionen einzubauen

Der wohl größte Vorteil der Native App ist die Möglichkeit, jede beliebige Funktionalität zu implementieren. Limitierungen wie Ladegeschwindigkeit, Performance oder Navigation wie bei der Responsive Web App gelten für die Native App nicht.

Du kannst zudem weitere Apps oder Funktionen wie beispielsweise die Kamera des Mobilgerätes mit der App verknüpfen.

 

4. Deutlich erhöhte Sicherheit

In Zeiten zunehmender Datenspeicherung und –nutzung durch Unternehmen kann Sicherheit einen ausschlaggebenden Faktor Deines Geschäfts ausmachen.

Das Vertrauen der Nutzer ist eine grundlegende Ressource und ist bei Verlust nur schwer zurückzugewinnen. Durch die Mobile App kannst Du bessere Sicherheitsvoraussetzungen für den Schutz der Nutzerdaten gewährleisten.

Durch die Bereitstellung höchster Sicherheitsrichtlinien profitiert Dein Unternehmen vom Vertrauen der Nutzer.

 

5. Schaffe erhöhte Markenbekanntheit und vereinfachten Zugang

Durch die Implementierung einer Mobile App für Dein Unternehmen kannst du die Bekanntheit Deiner Marke allein durch Werbung und den Ausbau Deines Nutzerkreises erhöhen.

Durch eine Mobile App kannst Du ein Publikum erreichen, welches Du auf anderen Wegen womöglich nicht erreicht hättest. Du kannst es durch Werbung in App Stores und auf anderen Kanälen ansprechen und dann mittels Push Notifikationen Remarketing betreiben und monetarisieren. Dies ist mit einer normalen Webseite so nicht komplett möglich.

Die Mobile App kann zudem den Zugang zu Deinem Unternehmen verbessern, da allein durch einen Klick auf das Icon der App auf dem Mobilgerät des Nutzers Produkte und Angebote gezeigt und durchsucht werden können.

Nebst all der genannten Vorteilen, gehen mit der Mobile App nur zwei – jedoch nicht zu vernachlässigende – Nachteile einher: Zeit und Geld.

Während RWD recht simpel mit vergleichsweise geringem Entwicklungsaufwand implementiert werden kann, bedarf die Realisierung einer Mobile App meist einer Softwareentwicklungsfirma.

Die Beauftragung eines erfahrenen Entwicklerteams ist stets mit erhöhten Kosten verbunden. Die Wahl eines vergleichsweise billigen Teams ist meist mit vorhersehbaren Schäden verbunden, welche letztendlich in der zusätzlichen Beauftragung eines teuren Teams resultieren.

Spare Dir die Zeit, Kosten und Nerven und beauftrage kein billiges Entwicklerteam.

 

Bringe die Erfahrung einer Native App auf den Mobilbrowser mittels Mobile Web App

web application

Wie eingangs erwähnt, gibt es eine weitere Lösung, um Dein Geschäft für Mobilgeräte anzupassen: die Mobile Web App.

Dir stellt sich nun womöglich die Frage, was eine Mobile Web App ist und worin genau die Unterschiede zu einer Native App oder eine Mobile Website liegen.

Eine berechtigte Frage. Mobile Web Apps sind keine Apps im Sinne einer Native App, sondern eher höher entwickelte Websites. Sie werden über den Browser ausgeführt und sind üblicherweise in HTML5 codiert.

Grund für die Schaffung einer Mobile Web App ist die Möglichkeit, eine Nutzererfahrung wie bei einer Native App zu schaffen, ohne dabei eine App zu entwickeln.

Hier die weiteren Vorteile dieser Lösung:

 

1. Vorteile Mobiler Websites

Da durch den Browser ausgeführt, bietet die Mobile Web App alle Vorteile einer Mobile Website, wie:

  • Einfacher Zugang
  • Reichweite
  • Möglichkeit zur simplen Verbreitung
  • Erreichbarkeit

Mobile Web Apps besitzen eigene URLs und können über einen Zugang auf dem Bildschirm wie eine „echte“ App erreicht werden. Dadurch erhöhen sich die Zugangsmöglichkeiten nicht nur per SERP sondern auch für diejenigen, die bereits zum Nutzerkreis zählen.

 

2. Das Gefühl einer Native App

Die Mobile Web App ist keine App im Sinne einer Native App und anders implementiert, bietet jedoch den Großteil der Vorteile einer Native App.

Einige davon sind:

  • Komplexere Navigationsmöglichkeiten
  • Zugang über Lesezeichen über den Startbildschirm (ähnlich wie über ein Icon)
  • Offline-Verfügbarkeit

Man sollte jedoch bedenken, dass Mobile Web Apps eine Native App zwar sehr authentisch imitieren, jedoch nicht alle Funktionalitäten abbilden können, wie beispielsweise das Ausführen im Hintergrund oder die Verknüpfung mit anderen Funktionen des Mobilgeräts.

Zusammenfassend lässt sich feststellen, dass diese Lösung gut geeignet ist, solltest Du eine mobile Präsenz anstreben, die über eine einfache Website hinausgeht, jedoch nicht der Komplexität einer Native App bedarf.

 

Die Auswahl der geeigneten mobilen Präsenz für Dein Unternehmen

Das Hauptziel dieses Artikels ist, Dir bei der Auswahl zwischen einer Native App und einer Responsive Website für einer verbesserte Präsenz auf Mobilgeräten zu helfen.

Die Möglichkeiten sind wie dargestellt:

  • Responsive Website
  • Native App
  • Mobile Web App

Nun bist du also mit den wichtigesten Pros und Kontras vertraut die es bedarf, um als online Entrepreneur oder Projektleiter Entscheidungen treffen zu können wie man für sein Unternehmen eine mobile Präsenz erstellt.

Wie ich anfangs erwähnt habe, sollte Deine Firma eine Webseite haben, besuchen diese sicherlich auch Leute mit mobilen Geräten. Falls Du Dich bereits für die Erstellung einer mobilen App entschieden haben sollest, findest du in einem separaten Artikel mehr Informationen über die Wahl zwischen Android oder iOS als erste Plattform.

 

P.S. Erinnerst Du Dich daran, dass wir tolle mobile Anwendungen bauen können? Vielleicht möchtest du ja mehr erfahren? Wir haben ein erfahrenes Entwicklerteam und können Dir bestimmt helfen.

Schau Dir unser Portfolio an und schau ob wir Dir helfen können

Wie man eine Softwareentwicklungsfirma beauftragt

Du hast Dich also entschieden, eine mobile oder Webapp zu erstellen? Vermutlich hast du bereits Vorstellungen was die App tun soll und wie Du damit Geld verdienen willst. Jedoch fehlt Dir ein Team oder die technischen Fähigkeiten, um das Projekt selbst zu realisieren.

Die Frage, die sich nun stellt lautet:

Wie beauftrage ich eine Softwareentwicklungsfirma, die eine App für mich entwickelt?

Falls Du technisch wenig affin bist, könnte dies die erste schwierige Hürde auf dem Weg zum Roll-Out Deines Produktes sein – und dies ist erst der Anfang!

Aber kein Problem. Hol Dir einen Kaffee, ließ weiter und lass Dir von mir Schritt für Schritt erklären, wie Du diese Hürde meistern kannst. Bei Whalla Labs ist uns diese Situation durch viele unserer Kunden bekannt und wir kennen deren Probleme, die bei unserer Beauftragung bestanden.

Die Probleme unserer Kunden sind vermutlich Deinen ähnlich. Sei also gewiss, dass wir wissen, wovon wir reden und – umso wichtiger – was Du nicht weißt.

Wir freuen uns, dieses Wissen mit Dir zu teilen.

Vielleicht möchtest Du auch wissen, wie Du zwischen iOS- und Android-Entwicklung entscheiden und die für Ihre App passende auswählen kannst.

 

Warum ist es so schwer, eine gute Software Firma zu finden?

Die Antworten könnten lauten:

  • Es gibt nicht viele Gute unter ihnen
  • Das Marketing der Firmen ist eher dürftig
  • Eine billige Firma könnte unter Umständen ein halbfertiges Produkt abliefern, während eine teure…naja, einfach zu teuer ist.

Die Antworten könnten zutreffen, in den meisten Fällen jedoch glücklicherweise nicht. Die Antwort auf die Frage, warum es so schwer ist, eine gute Firma für die Entwicklung Ihrer Mobile-App zu finden ist simpel:

Du weißt vermutlich nicht, wo Du suchen und welche Fragen Du stellen musst, wenn Du eine Firma ins Auge gefasst hast.

Da sich der Markt für die Entwicklung von Mobile-Apps noch im Wachstum befindet, ist das Bewusstsein über die (richtige) Entwicklung oder Outsourcing eher gering vorhanden. Und ohne die richtigen Fragen kannst Du nicht feststellen, ob die betrachtete Firma hilfreich oder unpassend für Dein Projekt ist.

Lass uns betrachten, welche die richtigen Fragen bei der Beauftragung einer Softwareentwicklungsfirma sind und welche Ziele Du bei der Entwicklung einer Mobile-App auf diese Weise anstreben solltest.

 

1. Entscheide, was Du entwickeln möchtest

software development

Zuerst einmal ist das eigene Wissen darüber, was man machen möchte, der beste Weg, andere zu finden, die anfallende Arbeiten übernehmen. Wenn nicht einmal Du Deine Ziele kennst, wie kannst Du von anderen erwarten, die Ziele zu erreichen?

Wenn Du eine Mobile- oder Web-App entwickelst, solltest Du Dir selbst die folgenden drei Fragen stellen:

  • Welche Absicht steht hinter der Entwicklung der App?
  • Wie setzt sich der potentielle Nutzerkreis zusammen?
  • Mit welchen Geräten soll die App kompatibel sein?

Ihre Mobile-App wird Dein Arbeitswerkzeug sein. Du entwickelst sie aus einem bestimmten Grund und da Du (eine Menge) Geld dafür bezahlen wirst, solltest Du Dir im Klaren über grundlegende Funktionen und die Zielgruppe der App sein.

Softwarefirmen können Dir in gewissem Umfang nützliches Wissen über den Markt und Trends verschaffen, sofern sie über ein erfahrenes Team verfügen – jedoch sollten Du selbst die Entscheidungen treffen.

 

2. Evaluiere, auf welchen Geräten die App eingesetzt werden soll

Wenn Du die Zielgruppe Ihrer App definiert hast, untersuche, welche Geräte in der betroffenen Zielgruppe genutzt werden. Gibt es Präferenzen zu Smartphones oder Tablets? Welches Betriebssystem verwenden die genutzten Geräte?

Mit diesem Wissen kannst Du die Entwicklerfirma nach einem Spezialistenteam für die jeweilige Platform und/oder das jeweilige Betriebssystem fragen. Die Softwareentwicklung für das Web und für Mobilgeräte erfordert jeweils eigene Rahmenbedingungen und Werkzeuge.

Stell sicher, dass Du mit einem kompetenten Team zusammenarbeitest, deren Fähigkeiten auf dem aktuellen Stand sind.

Es ist beispielsweise nicht ratsam, jemanden zu beauftragen, der Dir versichern will, eine auf Parse gestützte App wäre in Ordnung (wissend, dass Facebook im Inbegriff ist, Parse abzuschaffen). In diesem Fall raten wir zur Suche nach einer anderen Firma.

 

3. Beginne mit einem MVP

MVP bedeutet Minimum Viable Product (Minimalrealisierbares Produkt), bei dem „Minimum“ ausschlaggebend ist.

Es ist eine Art Prototyp Ihrer Mobile-App, mit der Du erste Nutzer akquirieren und notwendige Veränderungen oder zusätzliche Funktionen evaluieren kannst.

Weiter für ein MVP spricht die damit verbundene Möglichkeit, das Produkt schnell auf seine Tauglichkeit zu überprüfen. Beginne mit kleinen Schritten und füge nach und nach Upgrades für die Komponenten ein, die Du als werthaltig für die Nutzererfahrung empfinden.

Frage die Entwicklerfirma, wie schnell sie ein funktionsfähiges MVP bereitstellen kann.

 

4. Bring Dich selbst mit ein

Da Du derjenige mit den genauesten Vorstellungen über das finale Produkt bist, bist Du ein wichtiger Bestandteil des Entwicklungsprozesses – selbst bei mangelndem technischem Know-How.

Unabhängig von der Art der Kommunikation ist dies unabdingbar. Dadurch erlangst Du ein erhöhtes Kontrollmaß über die Realisierung des Projekts und kannst überwachen, ob die App wie abgesprochen entwickelt wird.

Frag, wie oft und wie man Dich zu kontaktieren gedenkt. Ist die Antwort „nie“, suche einen anderen Partner.

 

5. Lass Dir die Ergebnisse in kleineren Schritten liefern

Wann immer wir eine Mobile- oder Web-App entwickeln, teilen wir den Prozess in kleinere Abschnitte ein, welche wir „Sprints“ nennen. Dadurch kontrollieren wir den Prozess und können bei Bedarf direkt Veränderungen einbringen, anstatt zu einem späteren Zeitpunkt vor komplexen Problemen bei der Anpassung der bereits erstellten Strukturen zu stehen.

Es ist selbstverständlich, dass auch Du Einblick in den Entwicklungsprozess erlangen willst. Warte also nicht auf die Entwickler, Dir erst das fertige Produkt vorzustellen.

Frage das Softwarehaus Dir kleinere Ergebnisse in schnelleren Abständen zu liefern, um den Entwicklungsprozess nachvollziehen zu können.

Ein weiterer Vorteil dessen ist, dass Du Dir selbst neues Wissen über den Entwicklungsprozess einer App aneignen kannst.

 

6. Sei das Budget betreffend realistisch

Man bekommt, für was man zahlt. Bei WhallaLabs sind wir unseren Kunden diesbezüglich ehrlich. Wenn Du Deine Mobile-App schnell und günstig realisieren möchtest, sind Qualitätsmängel unvermeidbar. Jeder, der Dich vom Gegenteil überzeugen will, ist vermutlich kein ehrlicher Geschäftspartner.

Die unschöne Wahrheit ist, dass Du für eine Mobile-App von erfahrenen Entwicklern und gutem Code ein hohes Budget ansetzen musst. Bist Du damit einverstanden, kannst Du gute Ergebnisse erwarten.

Frage nach den Stundensätzen des Entwicklerteams und wie Du diese nachvollziehen kannst.

Eine Entwicklerfirma, die Wert auf Transparenz gegenüber ihren Kunden legt, erfasst jede Arbeitsminute der Entwickler und Designer. Auf diese Art weißt Du genau, wie viel und für was Du zahlst.

 

7. Wähle zwischen Zeit- & Material- sowie Festpreisen

Falls Dir diese Begrifflichkeiten neu sind: „Zeit & Material“ ermöglicht Dir eine erhöhte Flexibilität und die Kontrolle über jedes Bestandteil des Prozesses, Du musst jedoch genau planen, um die Ausgaben angemessen zu gestalten.

„Zeit & Material“ ist von beidseitigem Vorteil, wenn Du die genauen Vorgaben für das Produkt nicht kennst – verwende pauschale Preisvereinbarungen, wenn Dir die Vorgaben genauestens bewusst sind.

 

8. Besitze, für was Du zahlst

Stelle bei der Beauftragung einer Softwarefirma sicher, dass Dir sämtliche Rechte am Quellcode zuteilwerden.

In den meisten Fällen werden die Entwickler Open Source Bibliotheken verwenden. Ist dies nicht der Fall, vergewissere sich, dass der Preis für den Erwerb im Projektbudget inbegriffen ist und Du letztendlich zum Eigentümer wirst.

Sollte der Entwickler eine individuelle, selbst entwickelte Bibliothek verwenden, ist der Eigentumserwerb ausgeschlossen. In diesem Fall solltest Du eine lizenzgebührenfreie Nutzungslizenz vereinbaren.

Frage die Entwicklerfirma nach den Eigentumsverhältnissen des Quellcodes um sicherzustellen, dass Du nach der Vollendung des Projekt Eigentum daran erwirbst.

Die Faustregel ist: vollkommene Entscheidungsmacht über den Quellcode, selbst wenn Du zu einer anderen Softwarefirma wechseln möchtest.

 

9. Entscheide zwischen einer Firma und einem Freiberufler

Dies ist abhängig von der Größe des Projekts. Ein freiberuflicher Entwickler eignet sich für eine kleinere App ohne komplexe Funktionalität und ist zudem billiger als die Beauftragung eines ganzen Teams.

Bei der Entscheidung für einen freiberuflichen Entwickler bedarf es zudem der Beauftragung eines freiberuflichen Designers, solltest Du selbst nicht über Zeit oder die Fähigkeiten zur Designerstellung verfügen. Bedenke, dass Entwickler und Designer für ein optimales Ergebnis zusammenarbeiten müssen. Die Beauftragung zweier unterschiedlicher Freiberufler, die in Bereichen zusammenarbeiten sollen, die Du womöglich nicht verstehst, gestaltet sich schwierig in der Umsetzung.

Die Beauftragung einer Entwicklerfirma ist zwar kostenintensiver, jedoch bedarf es in diesem Fall der Kommunikation mit lediglich einem Team, welches bereits Erfahrung durch die Zusammenarbeit an ähnlichen Projekten und – nicht zu vernachlässigen –  über einen kompetenten Projektmanager verfügt, welcher die planmäßige Umsetzung des Projekts sicherstellt.

 

10. Wähle ein Team, welches groß genug für Ihr Projekt ist

Frage bei der Wahl der Entwicklerfirma, wie viele Entwickler zur Verfügung stehen und mit welcher Teamgröße Dein Projekt realisiert werden soll. So stellst Du sicher, dass für Dein Projekt ausreichend Personal vorhanden ist.

Bedenke bei kleineren Projekten, dass ein kleineres und erfahrenes Team gegenüber einem großen und teuren Team von Vorteil sein kann.

 

11. Frage nach der Vita der Entwickler

Dies ist eine berechtigte Frage. Natürlich möchtest Du keine unerfahrenen Entwickler, deren Wissen lediglich auf Literatur basiert. Beim Betrachten der Lebensläufe kannst Du sehr genau feststellen, wie lange die Kandidaten bereits in der App-Entwicklung tätig sind und wie viel Erfahrung sie gesammelt haben.

Frage nach den Lebensläufen der Entwickler, um sicherzustellen, dass genug Erfahrung für die Realisierung Deines Projektes vorhanden ist.

 

12. Überprüfe, ob die betrachtete Firma ein Online-Tracking-Tool bietet

Jede Firma kann unterschiedliche Tracking-Tools haben, aber allgemein gilt: Sie sollten damit ausgestattet sein.

Hochwertige Tracking-Tools ermöglichen nicht nur die Meldung von Bugs und Funktionen, sondern zudem die Dokumentation sämtlicher Vereinbarungen und Rechnungen. Durch das Tracking-Tool kannst Du zudem überprüfen, welcher Zeitaufwand für einen bestimmten Task benötigt wurde und damit, wie viel Du letztendlich dafür zahlst.

Frage die Entwicklerfirma, welches Online-Tracking-Tool sie verwendet und was Du dadurch nachvollziehen kannst.

Durch das Online-Tracking-Tool profitierest Du von erhöhter Kontrolle und Zeitersparnis.

 

Mobile Apps Entwicklung ist keine leichte Aufgabe, aber es muss nicht eine anstrengende sein. Mit dem richtigen Team von Entwicklern und Grafik-Designer, können Sie bessere Ergebnisse, als Sie vielleicht erwartet haben.

Der Schlüssel ist zu wissen, was Sie wollen und was Sie wollen.

Die Wahrheit ist, dass Sie immer etwas vermissen – jemanden, der nicht wird.

Wie wähle ich einen kompetenten Partner zur Mobile-App-Entwicklung aus?

Weisst du, warum es so wichtig ist eine kompetente Softwareentwicklungsfirma auszuwählen, die wirklich das Versprochene abliefert?

(Die Erklärung finden Sie hier:)

Der Grund dafür ist Mobil- und Webentwicklung ist nicht billig.

Bei der Wahl eines ungeeigneten Teams stehst Du am Ende des Projekts vor einem Produkt voller Bugs, einem fürchterlichen Code und schlechter Nutzererfahrungen, in das Du eine Menge Geld und Zeit investiert hast. Anschließend folgt die Suche nach einer anderen Firma, um die Fehler zu beheben.

Durch eine gute Wahl bei der für das am besten zu Ihrem Produkt passende Team wirst Du:

  • Geld bei der Behebung einer Vielzahl von Bugs und Problemen sparen
  • Zeit in der Kommunikation mit dem Entwicklerteam sparen
  • Nicht nach einem weiteren Team zur Fehlerbehebung suchen müssen

Nachfolgend werde ich Dir anwendbare Tipps für die Suche nach der für Dein Projekt am besten geeigneten Entwicklungsfirma zeigen.

 

 

Mein Vertrauen in diese Tipps resultiert aus der mehr als dreijährigen Erfahrung im Geschäft mit StartUps, kleinen Unternehmen und multinationalen Konzernen.

Wir kennen deren Probleme, Herausforderungen und die Fragen, die im Laufe der Entscheidungsfindung auftreten.

Wir haben bereits eine Liste mit 12 Fragen zusammengestellt, die Du bei der Beauftragung einer Softwareentwicklungsfirma stellen solltest.

Nun zeige ich Dir die wichtigsten Inhalte, die Du bei der Suche nach Entwicklern evaluieren solltest.

 

Suchen Sie auf der Internetpräsenz der Kandidaten nach Arbeitsnachweisen.

Auf der Suche nach einer Entwicklerfirma wirst Du einige Kandidaten in die engere Auswahl beziehen.

Jeder dieser Kandidaten wird versuchen, Dir sein Angebot zu verkaufen. Aber wie findest Du heraus, welcher dein Projekt wunschgerecht realisieren wird?

Nach diesen Hinweisen kannst Du auf der Homepage des Kandidaten suchen, um einen Qualitätsnachweis zu erhalten.

 

1. Stelle sicher, dass der Kandidat außerordentliche Qualität liefert

Wirf zuallererst einen Blick in das Portfolio der Softwarefirma.

Finde heraus, welche Projekte die jeweilige Firma bereits fertiggestellt hat und was sie Dir verspricht. Halte Ausschau nach Beispielen bereits abgeschlossener Projekte, der verwendeten Technologie und den Kunden, für welche der Kandidat bereits tätig war.

Sollte die Firma ein Portfolio zum Download anbieten, schauen es Dir an. Die Wahrscheinlichkeit ist groß, dass es breiter aufgestellt ist und zudem detaillierter als auf der Website dargestellt wird.

 

2. Prüfe die Qualität des Codes

github homepage

GitHub ist eine großartige Community für Entwickler. Und die Wahrheit ist: Gute Entwickler teilen ihr Wissen gern mit anderen.

Überprüfe, ob die betrachtete Firma einen GitHub-Account besitzt und betrachte die Qualität der dort geteilten Arbeiten.

Sollte dir das technische Verständnis dafür fehlen, da du ein nichttechnischer Gründer oder Manager bist, bitte einen Entwickler Deines Vertrauens den Code zu überprüfen.

 

3. Betrachte und bewerte bereits erstellte Designs der Firma

behance profile page

Viele Entwicklerfirmen liefern sowohl die technische Komponente als auch das Design. Dies stellt sicher, dass das jeweilige Design zum Produkt optimal passt. Zudem wissen eng mit den Entwicklern zusammenarbeitende Designer, wie das Design für Mobilgeräte angepasst werden muss.

Dribble und Behance stellen zwei Beispiele für beliebte Serviceangebote dar, bei denen Designer und Firmen ihre Designs vorstellen. Suche nach dem Firmenprofil und überprüfe, ob vergangene Designs Ihrem Projekt entsprechen.

 

4. Überprüfe, ob die betrachtete Firma zu einer etablierten Größe in ihrer Branche zählt

Content Marketing ist eine gängige Methode zur Wahrung der medialen Präsenz einer Marke. Einige Firmen der Softwareentwicklung für Mobilgeräte wissen dies und führen deshalb Blogs auf ihrer Homepage.

Schau Dir an, wie und über was die Firmen in ihren Blogs schreiben. Weißt Du, worüber sie schreiben und findest Du die Beiträge aufschlussreich und helfend?

Die Wahrscheinlichkeit ist groß, dass jene Firmen, die den Menschen durch ihre Beiträge helfen können, auch Dir von Nutzen sein werden.

 

5. Ließ Kundenrezensionen

clutch whalla labs

Alle genannten Punkte sagen Dir, was und wie die Kandidaten geliefert haben und für wen.

All dies ist von großem Nutzen, jedoch spricht nichts so sehr für einen vertrauenswürdigen und kommunikativen Partner als zufriedene Kunden.

Über das Portal Clutch kannst Du Kundenrezensionen zur Arbeit der jeweiligen Firma einsehen. Clutch stellt eine vertrauenswürdige Informationsquelle dar, da die hier verfassten Rezensionen durch die Mitarbeiter des Portals in Einzelbefragungen mit den Kunden besprochen werden.

 

Wir können Dein nächstes Projekt realisieren

Das klang bisher alles nach Werbung für Dich? Ja oder Nein?

Die Wahrheit ist, du kannst diesen 5 Schritten von oben einfach folgen und verschiedene andere Firmen evaluieren. Das wird für dich funktionieren, da es sowohl für uns als auch unsere Klienten bisher funktioniert hat.

Da du aber schon hier bist, kannst Du auch gerne einen genaueren Blick auf uns werfen. Wir haben bereits über 3 Jahre Erfahrung in der Entwicklung von iOS, Android und Windows Phone Apps und Wearables. Wir sind uns ziemlich sicher, dass wir zusammen ein tolles Projekt auf die Beine stellen können.

Schau Dir doch einfach unser Portfolio, die Designs und Clutch reviews an und sag uns was Du denkst.

Wir freuen uns immer über Feedback und neue tolle Projekte.

Mobile Application Development: iOS versus Android versus Windows Phone

Das Entwickeln von mobilen Apps – ein stetiger Kampf zwischen iOS, Android und Windows Phone. Immer wieder kommt die gleiche Frage auf: Welches System nutzt man am sinnvollsten, wenn man seine erste eigene App programmiert?

Das Programmieren mobiler Apps kann an sich ein rentables Geschäft sein, ist man erst einmal mit den Grundsätzen vertraut und hat einige anfängliche Erfahrungen gemacht. Deshalb will dieser Post die grundsätzlichen Vor- und Nachteile der drei Systeme beim Programmieren aufzeigen. Der Vergleich ist hier durchaus notwendig, weil es gut vorkommen kann, dass einem die Kapazitäten fehlen, um erste Apps für alle drei Systeme zu programmieren – also braucht man etwas, womit man anfangen kann. Diesen Anfang sollte man möglichst nah an der eigenen Idee und dem Publikum ausrichten, in unserem Fall also an potenziellen Kunden und Nutzern der App.

Ich habe die drei Betriebssysteme – iOS, Windows Phone und Android – für diesen Artikel aus einem ganz bestimmten Grund ausgesucht: Wir entwickeln bei Whalla Labs jetzt seit drei Jahren Apps, und das eben für all diese drei Betriebssysteme. Ihr könnt euch also entspannt zurücklehnen und uns vertrauen. Wir wissen schon, wovon wir reden.

Wir werden die Betriebssysteme auf Dinge wie Reichweite, Marktsituation, Möglichkeiten der finanziellen Nutzbarmachung und einige weitere prüfen, aber genug der Vorworte. Beginnen wir.

 

Vor- und Nachteile des Entwickelns für Android

Im folgenden Teil werden wir uns ein wenig genauer angucken, welche Vor- und Nachteile das Arbeiten mit und für Android mit sich bringt.

 

Pros:

  • Der größte Marktanteil
  • Breitgefächerte und heterogene Benutzerklientel
  • Vielfalt an Nutzgeräten
  • Hohe Werbeeinnahmen
  • Geringere Anforderungen für die Appentwicklung
  • Schnelle Veröffentlichung via Google Play
  • Billige Veröffentlichung via Google Play
  • Einfache Veröffentlichung via Google Play
  • Große Zahl an Beta-Testern

Kontras:

  • Große Zahl an variierenden Arten der Betriebssysteme
  • Höhere Anfälligkeit für Bugs
  • Langfristige (und teure) Entwicklungszeiträume

 

1. Der Marktanteil

 

IDC: Smartphone OS Market Share Chart

Der Marktanteil ist zweifelsohne einer der größten Trümpfe des Android-Systems. Mit einer globalen Reichweite von 82.8% bietet Android das größte Publikum und damit logischer Weise auch das mit Abstand größte Feld an potenziellen Kunden.

Egal, wen du fragst, er wird dir bestätigen, dass Google der größte Spieler auf dem Markt der mobilen Betriebssysteme ist – hier mit dem Programmieren zu beginnen, sollte dir also, zumindest in der Theorie, global gesehen am meisten Nutzer sichern.

 

2. Breitgefächerte und heterogene Benutzerklientel

Die Frage nach der Benutzerklientel hängt direkt mit dem Marktanteil zusammen – je mehr Leute ein System nutzen, umso höher auch die Chance, spezifische Anforderungen und Nischen zu erreichen, und gerade bei Android ist das Nutzerfeld besonders variabel und heterogen verteilt.

Egal, ob man Smartphone-Spiele für Kinder, Business-Tools für die B2B-Branche oder Gesundheitskontroll-Apps für Senioren entwickeln möchte, die Chance, die richtige Nutzernische zu finden und zu erreichen, ist bei Android mit Abstand am höchsten.

 

3. Vielfalt an Nutzergeräten

Die Vielfalt an unterschiedlichen Geräten, an denen Androidsysteme genutzt werden, ist eine etwas speziellere Sache, die auch durchaus Nachteile mit sich bringt, aber dazu später noch mehr (s. Abschnitt: „Große Zahl an variierenden Arten der Betriebssysteme“), zunächst werde ich mich auf die Vorteile dieser etwas besonderen Android-Eigenschaft konzentrieren.

Die gerade unter Punkt zwei erwähnte maximale Bandbreite an möglicher Nutzerklientel rekrutiert sich nämlich nicht nur durch die bloße Zahl der Leute, die Android nutzen, sondern auch dadurch, dass die produzierten Androidgeräte sehr unterschiedlich sind. Dadurch, dass Androidhandys in allen Größen, Formen, Farben und Preiskategorien auftreten, gibt es sehr viel mehr unterschiedliche Leute, die deine App potenziell installieren könnten.

Und falls der Ein oder Andere dieser Leute nicht im Stande ist, deine App kostenpflichtig zu installieren, kann man immer noch super mit Werbeplatzierungen innerhalb der App Gewinn machen:

 

4. Hohe Werbeeinahmen

Laut den Daten von Operia Mediawork hat Android iOS seit dem ersten Quartal 2015 erfolgreich als höchsten Einnehmer auf allen Endgeräten überholt. Auch, wenn Apple in Sachen Monetarisierung immer noch vorne liegt, ist das ein ernstzunehmender Schritt voran für Android, und vor allem auch für jeden, der bereit ist, über Werbeplatzierungen in Android-Apps Geld zu verdienen.

 

5. Geringere Anforderungen bei der Appentwicklung

Zumindest im Vergleich zum Entwickeln von iOS-Apps stellt das Entwickeln von Android-Apps recht geringe Ansprüche an dein Können als Programmierer.

Das Einzige, was du und dein Team brauchst, ist ein funktionierender Computer und ein wenig Grundsatzwissen über die Programmiersprache Java.

Zum Programmieren verwenden kann man dann das offiziell von Google angebotene Android Studio, aber, der großartigen Android-Entwickler-Community sei Dank, auch aus einem riesigen Angebot an anderen Entwickler-Tools wählen.

 

6. Schnelle Veröffentlichung via Google Play

Der Google Play Store arbeitet mit sehr einfachen Handbüchern und Feedbacksystemen, sodass es sehr einfach und schnell möglich ist, eine App in die Androidwelt hinein zu veröffentlichen.

Im Normalfall dauert es zwei bis drei Tage, um eine App bei Google zu veröffentlichen, bei Apple muss man hingegen mit der ein oder anderen Woche rechnen.

 

7. Billige Veröffentlichung via Google Play

Die Geschwindigkeit bleibt beim Veröffentlichen nicht der einzige Vorteil des Google Play Stores – es ist hier auch noch deutlich billiger als anderswo.

Während eine Lizenz zum Veröffentlichen bei Apple 99$ pro Jahr kostet, sind es bei Google gerade einmal 25$ – ein großer Unterschied, gerade für unabhängig arbeitende Entwickler mit kleinem Budget.

 

8. Einfache Veröffentlichung via Google Play

Doch auch mit dem Preis hört die Liste der Vorteile des App-Veröffentlichens bei Google nicht auf – es ist dort nämlich auch noch herrlich unkompliziert.

Angenommen, man benutzt das oben erwähnte „Android Studio“ zur Entwicklung, ist der absolut einzige Schritt, der nach getaner Arbeit noch verbleibt, das Drücken des „publish“-Buttons – und schon ist man im Besitz eines APK-Files, mit dem man nach Belieben weiter verfahren kann (Es zum Beispiel als Beta-Version auf Bugs testen lassen, oder, falls die schon alle ausgemerzt sind, die App auf die echte Welt loslassen).

 

9. Mehr Beta-Tester

Wo wir gerade von Beta-Testern sprechen: Auch diese finden sich deutlich leichter auf Android-Plattformen als für iOS.

Google hat sogar eine Plattform eingerichtet, die es jedem Hobby-Geek ermöglicht, die neuesten Apps sofort zu testen, sobald sie rauskommen.

Gerade, weil Android-Apps deutlich Bug-anfälliger sind als die von iOS, kann ein frühes fixen eben dieser über Erfolg und Misserfolg einer neuen App entscheiden.

 

10. Große Zahl an variierenden Arten der Betriebssysteme

android fragmentation

Android fragmentation, image source

Mit diesem Punkt sind wir bei den Kehrseiten des Arbeitens mit Android angelangt.

Wie schon weiter oben erwähnt, ist die große Variable an Nutzern von Androidgeräten für Programmierer so etwas wie ein zweischneidiges Schwert. Zum einen vergrößert es zwar die mögliche Nutzerklientel, zum anderen bedeutet es aber auch ziemlich viel Stress und Komplikation, da man für eine große Zahl leicht unterschiedlicher Varianten oder älterer Varianten des gleichen Betriebssystems entwickelt und arbeitet.

Das macht es verdammt schwer, es allen Recht zu machen (oder vielleicht sogar unmöglich).

 

11. Mehr potenzielle Bugs

Die gerade zuvor ausgeführte Problematik der unterschiedlichen Varianten der Androidsysteme birgt neben dem Stress beim Programmieren noch einen weiteren Haken: Gerade im Vergleich zu iOS sind Android-Apps unglaublich Bug-anfällig.

Gerade bei Zeitdruck können die vielen Betriebssysteme das Arbeiten für Android ganz schön vertrackt machen.

Komplett vermeiden kann man Bugs bei Android nicht, aber durch doppelt- und dreifaches sichern und Beta-testen Bugs verringern. Das kann aber eben Zeit kosten.

 

12. Langfristige (und teure) Entwicklungszeiträume

Die Firma „Infinum“ hat sich beim Entwickeln von Android- und iOS-Apps ein wenig selbst über die Schulter geschaut und bei diesen Erhebungen entdeckt, dass das Programmieren für Android eine Menge mehr Codes pro App erfordert – also auch zeitlich aufwendiger ist.

Und da die meisten Entwickler-Verträge stundenbasiert sind, bedeutet längere Arbeitszeit an einer App auch noch zusätzlichen finanziellen Aufwand, der beim Arbeiten für Apple deutlich geringer auftritt.

Aus den von „Infinum“ erhobenen Daten geht hervor, dass das Entwickeln für Android im Schnitt ca. 40% mehr Codierlinien erfordert als das Programmieren der gleichen App für iOS – was 30% mehr Kosten bei Android bedeutet.

 

Vor- und Nachteile des Entwickelns für iOS

Pros:

  • Höhere Einnahmen durch die App selbst
  • Engagierte Nutzerbasis
  • Bessere Ergebnisse bei E-Commerce
  • Weniger Codier-Linien
  • Weniger Bugs
  • Bessere Entwicklertools

Kontras:

  • Längerer Feedback-Prozess
  • Geringerer Marktanteil

 

1. Höhere Einnahmen durch die App an sich

iOS vs Android app revenue

Global iOS and Android app revenue, image source

Der Klassiker der Argumente für iOS im ewigen Kampf gegen Android. iOS-Geräte sind teurer als ihre Verwandten von Google – Was ihre Nutzerschaft williger macht, höhere Preise für Services und Tools zu bezahlen (Zusätzlich, weil sie schlicht und ergreifend mehr Geld hat, als die durchschnittliche Nutzerschaft der Android-Handys).

Wenn deine App auf eine Klientel in industriellen und urbanen, entwickelten Teilen der Welt zielt, fährst du mit iOS genau richtig – wie schon gesagt, hier wird einfach am meisten für Apps gezahlt.

Auch, wenn Android-Entwickler mehr Geld über Werbefläche machen – den größten Verdienst aus App-Verkäufen erzielt man als iOS-Programmierer. Und es sieht nicht so aus, als würde sich das in absehbarer Zeit ändern.

 

2. Die engagierte Nutzerbasis

Es ist kein Geheimnis, dass die Nutzer von iOS-Geräten oft deutlich aktivere und engagiertere Endgerät-Nutzer als ihre Kumpane an den Android-Geräten sind. Wenn deine App hip ist, eine einzigartige User-Experience mit sich bringt und ein starkes Design im Angebot hat, kannst du dir der Loyalität der Apple-Nutzer sicher sein.

Aber es ist nicht nur diese Loyalität, die die Apple-Nutzer auszeichnet – sie sind auch deutlich aktiver und bewusster bei der Wahl ihrer Apps und neigen dazu, z.B. unterschiedliche Varianten auszuprobieren, bevor sie sich auf einen Favoriten festlegen.

 

3. E-Commerce-Ergebnisse

Wenn deine App eine App aus dem Feld der Online-Geschäfte werden soll, bist du bei Apple genau richtig.

In Großbritannien z.B. sind die iOS-Benutzer mit 66%, die mindestens einmal im Monat an Tablet oder Smartphone Geschäfte durchführen, für den Großteil des E-Commerce verantwortlich (lt. dieser Episerver-Statistik).

Apps im Bereich des E-Commerce zu machen, bedeutet, sich auf die Suche nach Geld zu machen – und dieses befindet sich in den Händen der Apple-Nutzer.

 

4. Weniger Codier-Linien

Hier sind wir wieder bei der Infinum-Studie, die oben schon einmal erwähnt war – Programmieren für iOS bedeutet weniger Codes und demnach auch weniger Zeitaufwand.

Mit Objective-C oder Swift kostet es dich deutlich weniger Zeit, die du auf das Programmieren verwenden musst – oder, wenn du Programmierer anheuern willst, weniger Geld, wie wir schon dargelegt hatten.

 

5. Weniger Bugs

Auch das ist einer der großen Klassiker der iOS-Vorteile, wenn es ums Programmieren geht. Weil es bei iOS nur eine geringe Bandbreite an unterschiedlichen Endgeräten gibt und diese meist mit dem neuesten Betriebssystem operieren, lässt sich die Zahl an Bugs beim Entwickeln für iOS angenehm minimieren.

 

6. Bessere Entwickler-Tools

apple developer tools

Image source

Zugegebener Maßen ist das hier ein recht heikles Argument, auf jeden Fall würden viele überzeugte Android-Entwickler dem hier widersprechen, aber die allgemeine Überzeugung tendiert in dieser Frage wohl doch insgesamt knapp zu Apple.

Das „Android Studio“ ist eine gute Sache, aber es ist auch erst seit einer kurzen Zeit auf dem Markt – während „XCode“ inzwischen bei Version 7.3 seiner selbst angekommen ist. „XCode“ basiert auf jahrelanger Erfahrung und der alltäglichen Arbeit der iOS-Programmierer, außerdem ist es kostenlos.

Für viele überzeugt Apple mit stärkeren und besseren Tools, schnelleren Emulatoren und außerdem einer einzigartigen Hingabe zu seinen Entwicklern.

 

7. Längerer Feedback-Prozess

Die Sache hier könnte ein Nachteil sein, wenn die Zeit bei der Entwicklung deiner App eine große Rolle spielt.

Wie schon erwähnt hat Apple strikte Linien und ein hohes Anforderungsprofil an App-Neuveröffentlichungen – das steigert die Qualität deines Produkts, macht die Arbeit aber auch langwierig und könnte ein klassischer Grund für überzogene Entwickler-Fristen sein.

Um das zu vermeiden, sollte man die langatmigen Feedback-Prozesse beim Arbeiten für iOS frühzeitig in der eigenen Planung berücksichtigen.

 

8. Geringerer Marktanteil

Der geringere Marktanteil von iOS-Geräten gegenüber Android mag denen egal sein, die ausschließlich auf die Einnahmen pro App aus sind – aber wer sich für die Reichweite seiner App interessiert, wird den Marktanteil der von Apple produzierten Geräte bedenken müssen.

Der Schlüssel hierzu ist, wie schon oben erwähnt, sich darüber klar zu werden, wie wichtig die potenzielle Nutzerklientel für die eigene App ist – und wenn ja, ob sie mit dem Bild des urbanen Apple-Nutzers übereinstimmen.

 

Vor- und Nachteile beim Entwickeln für Windows Phone

Windows Phone logo

Image source

Ich kann mir gut vorstellen, wie der ein oder andere von euch vor seinem Bildschirm sitzt, und den Abschnitt hier für einen kleinen Spaß hält. Aber ich kann euch nur sagen: Ist es nicht.

Wir bei Whalla Labs sind, zumindest in bestimmten Fällen, ziemlich überzeugt vom Entwickeln mit und für Windows Phone.

Es mag zugegebener Maßen nicht die beste Variante sein, um sich als Neuling am App-Entwickeln zu versuchen, aber es ist dennoch, insbesondere für die weitere Entwicklerlaufbahn, eine interessante Option, die man im Hinterkopf haben sollte. Allein schon, weil sich das Feld an potenziellen Nutzern so nochmals erweitert.

Schaden kann es also keineswegs, über die Vorteile des Entwickelns für Windows Phones Bescheid zu wissen.

 

Pros:

  • Microsoft-Geräte werden bevorzugt im B2B-Sektor benutzt
  • Überzeugte und aktive Nutzer
  • Wachsender Marktanteil – zumindest in einigen Ländern
  • Multiplatform-Charakter der Windows-Geräte

Kontra:

  • Geringfügiger Marktanteil

 

1. Microsoft-Geräte werden bevorzugt im B2B-Sektor benutzt

Es ist nicht schwer herauszufinden, dass die meisten Firmen für ihre alltägliche Arbeit Windows-Endgeräte benutzen.

Wenn du eine App innerhalb des B2B-Sektors entwickeln sollst und weißt, dass deine Kunden Windows benutzen, fährst du genau richtig damit, auch für Windows Phone Apps entwickeln zu können.

Während SaaS-Software immer üblicher wird, könnte sich die Fähigkeit, extrem PC-kompatible Geräte zu entwickeln, als ein großes Plus für Windows Phone erweisen.

 

2. Überzeugte und aktive Nutzer

Der große Haken, über den sich WP-Nutzer zumeist beschweren, ist nicht etwa das Betriebssystem, sondern das Fehlen von Apps bzw. das Fehlen guter Clients für bekannte Apps.

Das bringt zwei Vorteile mit sich, will man eine App auf dem Windows Phone-Markt etablieren: Zum einen kann man, wie bei Apple, mit einer gewissen „Dankbarkeit“ und aktiven Nutzerschaft rechnen – zum anderen ist es schlicht und ergreifend einfacher, sich gegen Konkurrenz durchzusetzen, wo weniger von ihr vorhanden ist.

Wie die Statistiken von Microsoft zeigen, sind WP-Nutzer in besonderem Maße bereit, Smartphone-Spiele zu downloaden, aber auch Apps aus dem Genre „Erweiterungen und Tools“ stehen hoch im Kurs.

 

3. Wachsender Marktanteil

Dieser mag zwar nicht überwältigend sein, aber zeigt doch nichts desto trotz, das das Windows Phone entgegen mancher Stimmen noch nicht am Ende seiner Historie angekommen ist.

Laut dem „Kantar WorldPanel research“ stiegen die Marktanteile an Windows Phone-Betriebssystemen 2015 in Deutschland, Frankreich und Australien. Wenn die Marktanteile natürlich auch nach wie vor sehr gering gegenüber iOS und Android sind, zeigen sie doch, dass sich die Causa Windows Phone noch nicht erledigt hat.

 

4. Multiplatform-Charakter der Windows-Geräte

Microsofts CEO, Satya Nadella, scheint von den geringen Marktanteilen seiner Handys ebenfalls weniger besorgt.

Aus seiner Sicht ist das Vermitteln eines Benutzergefühls, dass auf allen Windows-Endgeräten nahezu identisch ist, wichtiger als der Marktanteil der Einzelgeräte.

Er nennt das „mobility of experience“.

Sich dieser Idee anzuschließen könnte ein guter Grund sein, mit den Entwickeln für Windows Phone zu beginnen.

 

5. Insgesamt geringfügiger Marktanteil

Um zum großen Nachteil der Windows Phones zu kommen:

Wie schon erwähnt, ist der Marktanteil der Windows Phones insgesamt ziemlich gering (im Quartal 2 2015 bei ca. 2,6%), was Microsoft bekannter Maßen mit der hochklassigen Nutzererfahrung über alle Endgeräte hinweg ausgleichen will, aber wenn man sich davon nicht überzeugen lässt, dürfte das ziemlich verständlich sein.

Es ist schwer einzuschätzen, wie sich der Markt der mobilen Apps in den nächsten Jahren weiterentwickeln wird, und auch die Geräte von Microsoft machen da keine Ausnahme. Gerüchte, dass Windows Phones bald auch mit Android operieren würden, sind keine Seltenheit. Falls du also nicht gerade in absoluter Eile bist und unbedingt etwas für WP entwickeln musst oder dir momentan das Budget fehlt – lass dir ruhig Zeit und schau ein wenig zu, wie sich der Markt entwickelt.

 

Welches Betriebssystem wähle ich denn nun?

Zur Beantwortung dieser Frage werden wir uns auf Android und iOS konzentrieren, da Windows Phone sich, wie oben dargelegt, für den Anfang eher weniger eignet.

Am sinnvollsten wäre es natürlich, wenn ihr eure erste App auf beiden Systemen zum Laufen bringen würdet und so parallel Erfahrungen sammeln könntet, aber ich nehme mal an, dass ihr euch gezwungener Maßen für eine Variante entscheiden müsst, sonst wärt ihr vermutlich nicht bei diesem Artikel hier gelandet.

Am einfachsten führen wir uns also nochmal die grundlegenden Vorteile beider Systeme vor Augen:

 

Gründe für Android:

Unter Berücksichtigung aller Pluspunkte ist Android zum Entwickeln einer ersten App vermutlich die beste Wahl, wenn:

  • Du so viele Nutzer wie möglich erreichen willst;
  • Du eine möglichst heterogene Nutzermasse erreichen willst;
  • Du die App über Werbeanzeigen gewinnbringend benutzen willst;
  • Du (oder dein Team) sich mit Java auskennen.

Während der letzte Punkt recht selbsterklärend sein sollte, zeigt der Rest doch, dass Android die beste Idee ist, wenn es um ein großes und breites Nutzer- und Gerätefeld geht und dein Finanzierungsplan über In-App-Werbung läuft.

 

Gründe für iOS

Welche Bedingungen bleiben dann noch übrig, unter denen man am besten mit iOS beginnt?

  • Dein Finanzierungsplan stellt sich hauptsächlich aus App-Verkaufs-Einnahmen auf;
  • Dein Zielpublikum kommt aus stark entwickelten Regionen oder ist sehr urban orientiert;
  • Dein Zielpublikum legt Wert auf Design;
  • Du hast keine Lust auf Bugs;
  • Du willst deine App schneller und billiger entwickeln.

In der Liste hier mag die Sache mit Design eher optional sein, aber der Rest ist ziemlich allgemeingültige Tatsache. Wenn ihr euch also aus App-Verkäufen finanzieren wollt, Lust auf schnelles und billigeres Programmieren habt (weniger Codes, ihr erinnert euch) – dann ist iOS genau das Richtige.

 

Fazit

Es gibt, wenig überraschend, keine klare Antwort auf die Frage nach dem eindeutig besten Betriebssystem, um mit dem Programmieren loszulegen.

Wie sich an unseren Vergleichen gezeigt hat, hängt es ziemlich von dem ab, was man eigentlich vorhat – welche Klientel man erreichen will, und für welches Problem die App eine Lösung anbieten soll.

Hat man Antworten auf diese Fragen, wird sich der Rest von alleine ergeben.