Native Mobile Development – Best Practices und Pitfalls

Native Mobile DevelopmentBeim Start in ein neues Native Mobile Development-Projekt sind viele Entscheidungen zu treffen. Welche Smartphones sollen unterstützt werden – Android, iOS, beides? Ab welcher Version des Betriebssystems soll die App funktionieren? Wer kümmert sich um App-Design, um die Versorgung mit Daten und wie kommt es zu deren Aktualisierung am Gerät?

Wir haben unsere Erfahrungen dokumentiert und die wichtigsten Tipps für Ihr App-Projekt zusammengefasst.

Lessons learned – Tipps für den Start in die Entwicklung

Generell ist zu beachten, dass die Ziele der App klar formuliert werden müssen. Folgende Eigenschaften sind aus heutiger Sicht für den Erfolg am Markt unerlässlich:

  • zumindest ein wesentlicher Nutzen für den/die AnwenderIn
  • ansprechende Gestaltung
  • intuitive Bedienung
  • problemlose Versorgung mit Daten

Wenn die App auch ohne Internet funktionieren soll, muss die Speicherung der Daten auf dem Gerät erfolgen, und es ist häufig eine Synchronisierungsfunktion zur Verfügung zu stellen, damit bei Wiederverbindung mit dem Netz ein Abgleich erfolgen kann. In diesem Fall ist auch die Aufbereitung der Daten im Hintergrund und deren Einbindung in die App ein Schritt, der genaue Planung erfordert, da sich spätere Änderungen an Struktur oder Inhalt der Daten direkt auf die Oberfläche auswirken und dort entsprechende Anpassungen erfordern.

Screenshot Scotty-App für Android
Bild 1: Screenshots von „Scotty“ – einer App die auf Android (links) und iOS (rechts) verfügbar ist.

Wie Bild 1 ist es auch wichtig die Unterschiede der Betriebssysteme in Navigation und Bedienung zu berücksichtigen damit die App nicht von den eingeführten Standards der jeweiligen Plattform abweicht (siehe „Take me Home“ und „Nach Hause“).

Ist das Konzept für die App erstellt, steht der Entwicklung, Veröffentlichung und Verbreitung nichts mehr im Wege.

Die beiden Welten auf dem Markt

Die wichtigsten Betriebssysteme beschränken sich mittlerweile auf Android und iOS mit folgenden Marktanteilen *:

  • Weltweit: 88% Android / 12% iOS
  • Deutschland: 80% Android, 15% iOS

Apple hat im letzten Jahr um 1% aufgeholt. Die Anteile der restlichen Betriebssysteme schrumpfen kontinuierlich.

iOS

Apple hat 2014 die neue Programmiersprache Swift herausgebracht. Dabei wurden viele Bestandteile, die in Objective-C existierten als Wrapper zur Verfügung gestellt (der bestehende Objective-C Code ist im Hintergrund im Einsatz).
Swift macht den EntwicklerInnen deutlich mehr Spaß als Objective-C, auch wenn es immer noch teilweise unreif ist und jede neue Version Überraschungen beinhalten kann. Swift ist die Zukunft. Auch wenn es noch Schwächen gibt, macht es Sinn, eine neue App schon jetzt auf dieser Technologie zu starten.
Neue Features: erst kürzlich wurde bei Apple ein Feature vorgestellt, das in iOS 11 kommen wird: DNDWD – „Do not disturb while driving“. Hört sich ganz einfach an, sorgt aber für großes Aufsehen in der Öffentlichkeit. Das System erkennt, wenn man mit dem Auto unterwegs ist und stellt dann automatisch die Benachrichtigungen über E-Mails, SMS oder Apps (Social Media) ein, was die Sicherheit der iOS-User im Straßenverkehr erhöhen soll.

Android

hinter Android steht bekanntermaßen Google und entwickelt das Betriebssystem sukzessive weiter. Dabei stehen die vielen Google Dienste jeweils als kostenlose Apps zur Verfügung und bieten den AnwenderInnen ein breites Spektrum an Unterstützung.
Neue Features: das neue Android O wird noch mehr Interaktivität bringen und parallel Aktionen erlauben, wie etwa ein Video-Telefonat zu führen, während man den Kalender nach freien Terminen durchsucht.

Tipps und Stolpersteine (Pitfalls)

Die Optik und die Usability haben bei mobile Apps eine besondere Bedeutung. Ist der User damit nicht zufrieden, wird die App oft rasch wieder vom Gerät entfernt. Daher sind sowohl Hersteller als auch App-Anbieter bestrebt, die Qualität stetig zu verbessern. Beim Upload in die jeweiligen App-Stores wird von Google und Apple geprüft, ob die App den entsprechenden Regeln genügt. Apple ist dabei als deutlich strenger und lehnt Apps häufig ab. Die drei häufigsten Gründe für Ablehnungen bei Apple sind

  • formale Fehler wegen fehlenden Informationen (14%)
  • Fehler (Bug) in der App (8%)
  • User Interface (UI) ist nicht gut genug (6%)

Bei Google kommt es meist wegen Problemen mit Werbung, In-App Käufen oder Bugs zu Ablehnungen.

In beiden Systemen gibt es EntwicklerInnen-Vorgaben, um die Qualität und Usability der entstehenden Apps zu verbessern. Die folgende Tabelle zeigt die wichtigsten Punkte betreffend UI für die beiden Plattformen:

Android iOS
Design Guidelines
https://developer.android.com/design/index.html
Human Interface Guidelines
https://developer.apple.com/ios/human-interface-guidelines/overview/design-principles/
MaterialDesign von Google: die klare Zielsetzung ist dabei intuitive Oberflächen zu erzeugen. https://material.io/guidelines/

Formulierung von Google: „Erstelle eine visuelle Sprache, die die klassischen Prinzipien guten Designs mit der Innovation und den Möglichkeiten von Technologie und Wissenschaft verbindet.“

Neben dieser etwas hochgestochenen Formulierung gibt es drei Grundprinzipien:

  • Material ist the metaphor
  • Bold, grafic, intentional
  • Motion provides meaning
iOS ist generell stark auf gute Usability ausgerichtet

Die drei wichtigsten Begriffe sind Klarheit, Hochachtung, Tiefe.

Des Weiteren gibt es noch sechs Prinzipien: Ästhetik, Konsistenz, direkte Manipulation (bei Eingaben), Feedback, Metaphern, User hat Kontrolle.

Apple sagt, wie man den User „bedienen“ soll,
z. B. soll der User immer sehen, was die App macht, daher sind Aktivitäten im Hintergrund stark beschränkt. Nur die stille Benachrichtigung erlaubt etwa auch Datenabgleich. Eine ständig aktive Hintergrund-Synchronisierung ist z. B. nicht erlaubt.

Entwicklungsmuster: MVP (Model-view-presenter) Entwicklungsmuster: MVC (model-view-controller)
Top 3 der nervigsten Punkte für EntwicklerInnen:

  • die vielen verschiedenen Android-Versionen
  • Code-Snippets von Google sind zum Teil nicht immer verständlich
  • wenn man die verwendeten UI-Widgets im Nachhinein ändert, muss oft viel Code angepasst werden.
Top 3 der nervigsten Punkte für EntwicklerInnen:

  • X-Code: kein Refactoring für die neue Programmiersprache Swift (gab es beim Vorgänger Objective-C)
  • Autolayout: die Anpassung für verschiedene Bildschirme ist schlecht nachvollziehbar und funktioniert aus EntwicklerInnensicht zufallsgesteuert.
  • viele Wrapper für ObjectiveC: teils unangenehm in der Verwendung

Fazit

Jede App ist im Vorfeld genau zu planen und die darzustellenden Daten sollten exakt festgelegt sein. Vor der Veröffentlichung sollte genug Zeit für ausführliche Tests bleiben, auch wenn die App „schon unbedingt in den Store soll“. Mit einer Ablehnung vom Store verliert man viel Zeit, die man durch bessere Qualitätssicherung einsparen kann.

* Quelle: http://www.zdnet.de/88276668/kantar-android-steigert-marktanteil-in-deutschland-auf-fast-80-prozent/

Bildquellen

  • Screenshot-Scotty-iOS: solvistas