Tipps für Freelancer

Wie entwickle ich eine App? – Was du über plattformübergreifende App-Entwicklung wissen solltest

Jonas Heitmann · Elektro- und Informationstechnik
April 2020

Die Entwicklung einer eigenen App gehört heute in vielen Branchen nicht mehr nur zum guten Ton, sondern ist Teil des Pflichtprogramms. Sei es ein Online-Shop, ein Buchungs-Portal, ein Streaming-Angebot oder ein Social Enterprise: Wer Sichtbarkeit auf mobilen Geräten erreichen will, kommt um eine App nicht mehr drum herum. Und welche Bedeutung mobile Geräte im Alltag der meisten Menschen haben, wissen wir alle mittlerweile selber nur zu gut. Dazu kommt, dass eine App einen konkreten Mehrwert für den Nutzer bietet. Eine gut gemachte App ist schnell aufgerufen, komfortabel in der Bedienung und bietet ein positives User Experience – was wiederum zu positiven Assoziationen mit der Marke und dem Angebot führt.

Um einen möglichst großen Kundenkreis zu erreichen, müssen wir uns natürlich erst einmal die Frage stellen, für welche Plattform wir überhaupt eine App entwickeln wollen. Die gute Nachricht zuerst: Die Zeiten, in denen Microsoft, Blackberry, Apple, Google und Palm um die Vorherrschaft im Smartphone-Sektor kämpften sind vorbei. Es gibt heute eigentlich nur noch zwei relevante Software-Plattformen im mobilen Bereich: Googles Android und Apples iOS, die praktisch den gesamten Markt unter sich aufteilen. Damit lässt sich auch die Frage, welche Zielplattformen angegangen werden sollen, auf diese zwei Optionen herunterbrechen.

Android bietet hier den Vorteil der stärkeren Verbreitung, repräsentiert also auch einen größeren potentiellen Markt. Dagegen gilt die Apple-Kundschaft generell als finanzkräftiger und ist damit besonders für hochpreisige Produkte als Markt interessant. Im App Store unter iOS werden zudem kostenpflichtige Apps (sei es als Einmalkauf oder im Abo) eher angenommen als unter Android. Das ist vor allem dann wichtig, wenn die App selbst euer Produkt darstellt.

Für die meisten Startups wird die Antwort auf die Plattform-Frage aber ohnehin lauten: Beide! Doch wie entwickle ich eine App nicht nur für eine, sondern gleich für zwei Plattformen? Wie schaffe ich gleichzeitig ein einheitliches User Experience und halte mein Entwicklungsbudget im Rahmen? Mit diesen Fragen seid ihr natürlich nicht alleine. Ganz im Gegenteil, Unternehmen und Entwickler auf der ganzen Welt stellen sich diese Fragen jeden Tag. In diesem Artikel möchten wir ein bisschen Licht auf die Sache werfen und euch die verschiedenen Möglichkeiten für die plattformübergreifende Entwicklung vorstellen.

Native App-Entwicklung

Gut, das ist jetzt ein bisschen offensichtlich: Ihr entwickelt eine App für Android und eine zweite App für iOS. Android-Apps werden in den Programmiersprachen Java und Kotlin in der Entwicklungsumgebung (IDE) Android Studio unter Verwendung des OpenGL-Frameworks entwickelt, iOS-Apps dagegen in Swift und Objective-C unter Verwendung von UIKit und SwiftUI in der Apple-IDE Xcode geschrieben.

Wie ihr euch bei dieser Auflistung wahrscheinlich schon vorstellen könnt, gibt es nur sehr wenige Entwickler*innen, die alle diese Tools beherrschen. Das hat auch ein bisschen persönliche Gründe: Die meisten iOS-Entwickler*in würden ein Android-Handy wahrscheinlich nicht einmal mit der Kneifzange anfassen und umgekehrt. Ihr braucht also in der Regel zwei Entwickler-Teams, was auch fast doppelte Kosten bedeutet. Allerdings auch nur fast, da ihr beispielsweise euren Entwurf für das User Interface natürlich trotzdem nur einmal machen müsst. Die entwickelten Apps haben jeweils eine eigene „Codebase“, also einen individuellen Quellcode. Änderungen an der App, um zum Beispiel zusätzliche Funktionen einzubauen, müssen also immer zweimal gemacht werden.

Die native Entwicklung bringt jedoch auch echte Vorteile mit sich. Durch die getrennte Entwicklung könnt ihr die App individuell auf das jeweilige Betriebssystem anpassen, sodass der Nutzer sich direkt „zuhause“ fühlt. Die Nutzung nativer APIs (also direkt vom Hersteller bereitgestellter Programmierschnittstellen) bietet zudem in der Regel die bestmögliche Performance. Auch bei Betriebssystem-Updates könnt ihr mit nativen Apps schnell reagieren, da ihr die notwendigen Änderungen direkt in eurem jeweiligen Quellcode vornehmen könnt. Zu guter Letzt kann es vorkommen, dass ihr auf bestimmte Hardware-Funktionen des Smartphones nur über native APIs zugreifen könnt, wenn eure App z.B. die Kamera, Bluetooth oder die Hardwarebeschleunigung nutzen soll.

Cross-Platform Apps

Das Thema Cross-Platform Entwicklung ist aktuell in aller Munde. Dahinter steckt die Idee Anwendungen für unterschiedliche Plattformen mit einer gemeinsamen Codebase zu entwickeln. Die Umsetzung für die jeweilige Plattform übernimmt Software im Hintergrund. Es gibt kaum einen großen Tech-Konzern, sei es Google, Microsoft, Facebook oder Adobe, der nicht schon seine Pferde ins Rennen geschickt hätte. Wir könnten wahrscheinlich einen ganzen Artikel mit den verschiedenen Frameworks füllen, die inzwischen für die Entwicklung zur Verfügung stehen (und vielleicht machen wir das auch demnächst mal). Ein Framework ist in diesem Fall eine Bibliothek, auf die der*die Entwickler*in im Code zugreift. Die Bibliothek enthält alle Informationen darüber, wie dieser Code später übersetzt werden muss, um auf die Schnittstellen der jeweiligen Plattformen zuzugreifen.

Welches Framework ein*e Entwickler*in einsetzt, ist meist von seiner eigenen Vorerfahrung abhängig, da die unterschiedlichen Lösungen wiederum das Beherrschen unterschiedlicher Programmiersprachen und Werkzeuge voraussetzen. Die aktuell bekanntesten und beliebtesten Cross-Plattform Frameworks sind Facebooks React Native, Googles Flutter und die Open-Source Lösung NativeScript der Firma Progress.

Vorteil von Cross-Platform Lösungen ist, dass nur eine Anwendung mit einem Quellcode geschrieben und gewartet werden muss. Die Koordination mehrerer Entwicklungs-Teams fällt weg. Gängige Frameworks unterstützen viele Hard- und Software-Schnittstellen der Endgeräte, wie etwa das GPS, Bewegungssensoren oder Push-Benachrichtigungen. In vielen Anwendungsfällen kann zudem eine nahezu native Performance erreicht werden und die User Experience ähnelt einer komplett nativen Anwendung. Quasi als Bonus obendrauf unterstützen viele der Frameworks auch noch die Entwicklung von Desktop- oder Web-Anwendungen, ohne dass ein neuer Quellcode geschrieben werden muss.

Profil erstellen und in 2 Minuten bewerben

Registriere dich kostenlos bei Freelance Junior und finde zu deinem Studium passende Aufträge

Jetzt registrieren
Finde Aufträge,
die zu deinem Studium passen
Aufträge entdecken

Der größte Nachteil von Cross-Platform Apps ist die Abhängigkeit vom Anbieter des Frameworks. Stellt etwa Apple für sein Betriebssystem iOS mit einem Update neue Funktionen zur Verfügung, so können diese in eurer eigenen App erst eingesetzt werden, wenn die entsprechenden Schnittstellen auch in dem von euch genutzten Framework zur Verfügung stehen. Hierdurch verzögern sich dann eure eigenen Update-Zyklen. Darüber hinaus sollte euch immer bewusst sein, dass keine Cross-Platform Lösung alle Funktionen und Schnittstellen der Zielgeräte unterstützt. Sollen diese dennoch genutzt werden, kann dies einen großen Aufwand bedeuten oder sogar unmöglich sein.

Web Apps und hybride Apps

Eine Web App ist eine vollständig browserbasierte Anwendung. Sie ist optimiert für die Nutzung auf mobilen Geräten und komplett plattformunabhängig. Die Nutzer*innen müssen nichts herunterladen – es reicht der Browser, der sich bereits auf dem Smartphone befindet. Es handelt sich bei einer Web App also nicht um eine Smartphone App im klassischen Sinne. Vorteile dieser Lösung liegen in der einfachen Entwicklung und Wartung, ohne dass für die Nutzer*innen ein Update erforderlich ist.

Zugleich können Web Apps natürlich nicht in puncto User Experience mit herkömmlichen Anwendungen mithalten und sind ständig auf eine Internetanbindung angewiesen. Darüber hinaus fehlt die Sichtbarkeit in den App Stores sowie auf dem Endgerät des Nutzers und es kann nur sehr begrenzt auf Hardware-Funktionen zugegriffen werden.

Als Kompromiss wurden daher etwa von Adobe Frameworks für hybride Apps entwickelt. Im Prinzip handelt es sich bei einer hybriden App um einen spezialisierten Browser, der bestmöglich die Nutzererfahrung einer nativen App simuliert. Tatsächlich besteht die Anwendung aber nur aus einer Art Fensterrahmen, in den dann die Web App geladen wird. Hybride Apps werden vor allem dann verwendet, wenn im Wesentlichen Informationen wie auf einer mobilen Website dargestellt werden sollen, zugleich aber eine Präsenz in den App Stores verlangt wird. Theoretisch lassen sich hybride Apps auch als Rahmen für komplexere Webanwendungen nutzen. Solche Lösungen sind aber in der Regel wenig performant und führen zu einer schlechten User Experience, da nicht auf native Betriebssystem-Elemente zugegriffen werden kann. Aus diesem Grund werden hybride Apps etwa von der Qualitätskontrolle für Apples App Store für iOS mittlerweile immer häufiger zurückgewiesen.

Fazit

Die Antwort lautet wie immer: Es kommt drauf an… und zwar darauf, was eure App können soll und wen ihr damit erreichen wollt. Cross-Platform Apps etwa in Flutter oder ReactNative sind in Entwicklerkreisen aktuell der letzte Schrei, stellen aber nicht immer die beste Lösung dar. Sie bieten sich vor allem bei datenbasierten Anwendungen an, die möglicherweise eine komplexe Logik implementieren müssen.

Apps, die selbst das Produkt darstellen und sich vor allem an Endanwender*innen richten, werden in der Praxis dagegen meistens nativ umgesetzt. Der Grund dafür ist, dass sie meist darauf angewiesen sind, neue Features möglichst schnell zu implementieren, um sich in ihrem Marktsegment positionieren zu können. Wer hier erst auf die Entwickler*nnen des genutzten Frameworks warten muss, ist klar im Nachteil. Auch wer auf umfangreiche Hardware-Unterstützung angewiesen ist, sollte sich Gedanken über eine native Entwicklung machen.

Web Apps oder speziell angepasste mobile Webseiten können einen guten Kompromiss darstellen, wenn das Budget nicht für die Entwicklung einer eigenen App ausreicht oder der Mehrwert den Aufwand nicht rechtfertigt. Eine Website muss meist ohnehin erstellt werden, ein paar zusätzliche Funktionalitäten und eine mobile Ansicht lassen sich meist leicht implementieren. Der fehlende Zugriff auf Hardware-Funktionen und native Schnittstellen schränkt allerdings den möglichen Funktionsumfang solcher Anwendungen stark ein. Hybride Apps leiden bei vielen Entwicklern mittlerweile unter einem schlechten Renommee und werden auch von den Kunden meist schlecht angenommen. Versprechen sie doch beim Download im App Store das User Experience einer nativen App, können dies jedoch aufgrund ihrer technischen Umsetzung nicht einlösen. Geht es in erster Linie um eine Präsenz in den App Stores für eine bereits existierende mobile Seite, stellen hybride Apps jedoch mit Abstand den preiswertesten Weg dar.


Jonas Heitmann
Elektro- und Informationstechnik
Profil ansehen

Über Jonas

Jonas arbeitet neben seinem Studium im Bereich Elektronik- und Informationstechnik nicht nur mit Nullen und Einsen, sondern auch als Zirkusartist. Zuvor hat er bereits ein duales Studium in Wirtschaftsingenieurwesen erfolgreich absolviert.

Freelance Junior vermittelt kostenlos spannende Aufträge an studentische Freelancer

Aufträge entdecken

Mit der Nutzung unserer Dienste erklärst du dich damit einverstanden, dass wir Cookies verwenden (Details).

Okay