Mobile Development —
Android/iOS, Flutter und mehr

Ganz gleich, ob Sie eine mobile Version Ihrer Software anbieten oder eine komplett neue App auf den Markt bringen wollen, wir helfen Ihnen, die hohen Erwartungen Ihrer Nutzer auf allen Plattformen zu erfüllen.

Ganz gleich, ob Sie eine mobile Version Ihrer Software anbieten oder eine komplett neue App auf den Markt bringen wollen, die Anforderungen an klug entwickelte Apps, die eine einwandfreie User Experience bieten, sind hoch. Dasselbe gilt für die Erwartungen, die Benutzer an die Apps haben, egal ob sie Android- oder iOS-User sind. Diese Erwartungen zu erfüllen ist keine leichte Aufgabe und die Möglichkeiten, eine zufriedenstellende Lösung zu erreichen, sind zahlreich. Die Wahl einer dieser Möglichkeiten hängt stark von den Anforderungen Ihres Projekts ab, aber wir möchten zwei der wichtigsten Wege zur Entwicklung der richtigen App für Ihre Benutzer hervorheben und einen näheren Blick auf ihre jeweiligen Vorteile werfen.

Plattformübergreifende vs. native Entwicklung

Apps werden in der Regel mit einem von zwei Ansätzen entwickelt: nativ oder mit einem plattformübergreifenden Framework wie Flutter oder React Native. Die native Entwicklung besteht darin, mit den Software Development Kits (SDKs) von Android und iOS zu arbeiten und in Java / Kotlin bzw. Swift zu programmieren. Das hat zur Folge, dass die Apps unabhängig für jede Plattform entwickelt werden, ohne dass es eine gemeinsame Codebasis gibt, auf der sie aufgebaut sind. Die Arbeit mit plattformübergreifenden Frameworks hingegen ermöglicht es Entwicklern, Apps in einer Sprache zu implementieren (wie z. B. Dart im Fall von Flutter), die dann in nativen ARM-Code für die jeweiligen Plattformen kompiliert wird. Doch beschleunigt ein plattformübergreifender Ansatz wirklich die Entwicklungsprozesse? In welchen Belangen hat so ein Ansatz die Oberhand?

RideAmigos_CaseStudy_Listing
Mobile Entwicklung
RideAmigos — Schneller Markteintritt mit iOS & Android Apps

Was sind die Optionen in der plattformübergreifenden Entwicklung?

Die Community hinter der plattformübergreifenden mobilen Entwicklung ist gewachsen und es sind viele neue Optionen entstanden, die den einfachen, veralteten HTML-Ansatz überholt haben. Zwei der Anwärter dieser Entwicklungsart sind Flutter und React Native.

Jedes Framework hat seine eigene Architektur zur Erstellung von Apps mit jeweiligen Vor- und Nachteilen. Während native Apps eine bessere Benutzererfahrung und Leistung bieten, sind plattformübergreifende Frameworks darauf ausgelegt, Kosten zu sparen und die Entwicklung zu beschleunigen.

Was ist Flutter?

Flutter ist Googles Open-Source-Entwicklungskit zum Erstellen von plattformübergreifenden 2D-Apps. Es basiert auf der Programmiersprache Dart, die ebenfalls von Google entwickelt wurde. Die Anwendung wird vorzeitig in nativen ARM-Code kompiliert, was zu einer besseren Leistung führt. Flutter ist kein Wrapper für iOS/Android, sondern rendert die UI von Grund auf mit einer C++-Bibliothek namens Skia (https://skia.org). Das Flutter-Team bewirbt es dank seiner Hot-Reload-Funktionalität als effizientes Prototyping-Werkzeug. Entwickler können sich relativ schnell an Dart/Flutter anpassen, ohne viel Erfahrung im mobilen Bereich zu haben.

Was ist React Native?

React Native basiert auf der React JavaScript Library von Facebook. Das Framework wurde 2015 veröffentlicht und ermöglicht es Entwicklern, native mobile Anwendungen mit JavaScript zu entwickeln. Viele Unternehmen, darunter Airbnb und Facebook, nutzen es oder haben es in der Entwicklung eingesetzt. Die React Native-Bridge ruft native Rendering-APIs für iOS & Android auf, nutzt also die echten UI-Komponenten der Plattformen. Ähnlich wie bei Flutter bietet sie auch eine Hot-Reload-Funktion.

Vergleich

1. UI & UX

Es gibt verschiedene Möglichkeiten, wie eine App designt werden kann: Entweder folgt man den Richtlinien der jeweiligen Plattform und hält den Benutzer so in einer bekannten Umgebung oder man entscheidet sich für ein neues, individuelles Design, um die Brand zu repräsentieren und das Produkt hervorstechen zu lassen. Letzteres kann abhängig vom Zweck der App und der Unternehmensbrand ein mehr oder weniger sinnvoller Ansatz sein.

Wenn es um die Umsetzung von Designs geht, gibt es unterschiedliche Konzepte, die in den verschiedenen Ansätzen verwendet werden. Native IDEs bieten diverse Möglichkeiten, die UI zu erstellen, entweder mit einem visuellen Editor, Markup-Sprache oder Code. Flutter hingegen basiert auf Widgets, die im Code erstellt werden. Die UI wird dann durch das Kombinieren und Stapeln dieser erstellt. Wie bei React Native wird JSX (eine Mischung aus JavaScript und XML-Markup) in Kombination mit Stylesheets zur Erstellung der UI verwendet.

2. Performance

Einer der wichtigsten Faktoren ist sicherlich die Performance. Hier ist die native Entwicklung im Vorteil, denn sie ist die Option, die für die jeweiligen Plattformen am meisten optimiert ist (wenn man entsprechend mit ihr entwickelt). Doch wie sieht es mit den plattformübergreifenden Ansätzen aus? Flutter wird in nativen ARM-Code kompiliert, was größere Performance-Probleme verhindert. Ebenso ist das Skia-Framework, das zum Rendern der UI verwendet wird, schnell und hat keine Nachteile im Vergleich zum nativen. In React Native wird echter JS-Code zur Laufzeit umgewandelt, was zu einem gewissen Overhead führt, der sich auf die Performance auswirkt. Es hat sich gezeigt, dass das Framework im Vergleich zu Flutter und nativer Entwicklung größere Anforderungen an die CPU hat, und beide plattformübergreifenden Ansätze benötigen etwas mehr Speicher.

3. Produktivität & Wartung

Unter den relevantesten Aspekten aus finanzieller Sicht ist das Hauptverkaufsargument der plattformübergreifenden Entwicklung, nämlich dass sie weniger Ressourcen benötigen soll. Einmal Code zu schreiben und automatisch sowohl Android als auch iOS zu unterstützen, entspricht jedoch nicht ganz der Realität. Entwickler müssen immer noch eine gewisse Menge an plattformspezifischem Code schreiben oder die Plattformen unterschiedlich behandeln. Daher lässt sich zwar etwas Zeit einsparen, aber auch nicht halbieren, und bei einem erfahrenem Native-Mobile-Team zu bleiben ist sinnvoller, als dieses auf Flutter oder React Native umzuschulen. Wenn jedoch das Ziel ist, dass Webentwickler auf die mobile Entwicklung umsteigen, können Flutter und vor allem React Native eine sehr sinnvolle Wahl sein, da sie auf bereits vorhandenen Fähigkeiten aufbauen.

Was die Wartung betrifft, ist der größte Nachteil von Cross-Plattform eine verzögerte Reaktion auf Plattform-Updates. Entwickler müssen unter Umständen warten, bis sie mit der Anpassung von Apps zur Unterstützung neuer OS-Versionen beginnen können, oder sie müssen auf Updates der SDK warten, wenn es Bugs oder Probleme gibt.

4. Native Features

Während das Setup und die Größe eines Teams einen wichtigen Faktor bei der Wahl des Entwicklungsansatzes darstellen, nimmt auch ein anderes Element Einfluss auf die Entscheidungsfindung: Features, die aufgrund von iOS- bzw. Android-Spezifika unterschiedlich entwickelt werden müssen. Diese müssen aber nicht immer berücksichtigt werden, denn manche Features wie bspw. Bluetooth-Schnittstellen können plattformunabhängig mit Frameworks wie Flutter implementiert werden. Bei simpleren Apps, die also nicht von spezifisch nativen Eigenheiten abhängig sind, kann sich Flutter dann sogar in jenen Teams als bessere Option erweisen, die theoretisch die notwendigen Ressourcen für native Entwicklung hätten.

Fazit

Es gibt gute Argumente für die plattformübergreifende Entwicklung. Es ist durchaus möglich, das gleiche Look & Feel wie bei der nativen Entwicklung zu erreichen, was es zu einer vernünftigen Option für unabhängige Entwickler macht, die mehrere Plattformen unterstützen wollen, und Webentwicklern hilft, leichter in die mobile Entwicklung einzusteigen.

Für Entwicklungsteams, die über genügend Ressourcen in Form von mobilen Entwicklern verfügen, wird jedoch die native Entwicklung abhängig vom Featureumfang der App in vielen Fällen die sicherere Option bleiben, da keine Abhängigkeiten von anderen Unternehmen und Frameworks bestehen.

Kontakt

Hervorragende Produkte und Dienstleistungen erfordern eine durchdachte und hochwertige Entwicklung. Kontaktieren Sie uns, um über Ihre individuellen Bedürfnisse zu sprechen.

Background_3_overlay50