App-Entwicklung ist keine Zauberei. Bevor eine App in Auftrag gegeben wird, sind aber einige wichtige Voraussetzungen zu klären. Mal schnell eine App programmieren? Das kann sehr einfach und kostengünstig sein, wenn Sie das richtige Entwicklerteam beauftragen. Doch wie sind Smartphones und Apps überhaupt entstanden? Was sind native Apps? Und wie läuft eine App-Entwicklung ab? Die Antworten dazu geben wir Ihnen im weiteren Verlauf.
Die Geschichte der Apps
Entwicklung des Smartphones
Viele Leute wissen nicht, dass das erste Telefon mit einem Touchscreen bereits 1993 auf dem Markt erschienen ist. Der von IBM entwickelte tragbarer Computer hatte sogar eine E-Mail-Funktion. Das Modell Blackberry 850 kam 1999 mit einer physischen Computer-Tastatur heraus.
Den eigentlichen Durchbruch gelang schließlich Apple 2007 mit seinem ersten iPhone. Die Apps waren bereits auf dem kleinen iPhone vorinstalliert. Ein Jahr später gab es dann den App-Store, mit dem es zum ersten Mal möglich war, Apps über einen zentralen Store herunterzuladen. Zuvor war die Suche nach Apps im Internet eine mühselige Angelegenheit. Im Jahre 2008 erschien dann das erste Smartphone mit dem Betriebssystem Android von Google. Die mobilen Geräte wurden von den Unternehmen HTC und T-Mobile hergestellt und waren kostengünstiger als das iPhone von Apple. Das Smartphone entwickelte sich vom Nischenprodukt zu einem trendigen Massenprodukt.
Entstehung von Apps
Die ersten Mobilgeräte hatten standardmäßig Wecker, Taschenrechner oder E-Mail-Programme als Apps. Diese waren von der Produktion aus schon vorinstalliert. Durch die Weiterentwicklung von Hard- und Software wurden Apps immer mehr im Store heruntergeladen.
Jeder konnte nun die App downloaden, die sie oder er gerne auf dem Smartphone haben möchte. Die Nutzung von Apps können unbegrenzt erweitert werden. Es gibt für fast jeden Wunsch und Bedürfnisse von Nutzern eine entsprechende App.
Betriebssysteme für mobile Apps
Entwicklung von Android Apps
Im Jahre 2003 wurde das Betriebssystem Android von Andy Rubin entwickelt und 2005 von Google aufgekauft. Android wurde ursprünglich für Digitalkameras entwickelt. Heutzutage wird die Software vor allem für Mobiltelefone und Smart TVs verwendet. Die Nutzung von Android ist sehr einfach und zugänglich.
Android-Apps können über den Google Play Store gedownloadet werden. Das System besitzt eine zugehörige Laufzeitumgebung, Android Runtime (ART), und die integrierte Entwicklungsumgebung Android Studio, welches von JetBrains entwickelt wurde. Es bietet zudem für fast alle Sprachen eine kostenpflichtige professionelle IDE (Integrated Development Environment) an, wie z.B. PhpStorm, WebStorm oder GoLand.
In der Android-App-Entwicklung werden folgende Programmiersprachen verwendet: Java, Kotlin, C, C++. Mit dem Entwicklungsframework Xamarin ist die Verwendung von C# auch möglich. Java ist ein wesentlicher Bestandteil bei der App-Entwicklung für Android. Die Anwendung von Java findet in vielen Bereichen statt.
Entwicklung von iOS Apps
IOS ist das Betriebssystem von Apple, welches ausschließlich nur auf Apple-Geräten funktioniert. Das System sorgt für den Betrieb von iPhones, iPads, Apple Watches und Apple TVs.
Über den App Store können Apps gedownloadet werden. Die integrierte Entwicklungsumgebung XCode kann für die App-Entwicklung verwendet werden. XCode ist nur für den Mac erhältlich, spricht Entwickler benötigen einen Mac, um entwickelte Apps zu kompilieren.
Die gängigen Programmiersprachen für die Entwicklung von iOS Apps sind Swift und Objective-C, die beide über das Framework Cocoa verwendet werden. Obwohl Objective-C die ältere Sprache der beiden ist, wird sie immer noch benutzt. Das neuere Swift gibt es seit 2013 und gilt als schneller und performanter. Die Kompilierung der Apps findet direkt in Maschinencode statt. Außerdem können C und C++ für die App-Entwicklung verwendet werden und auch Java und Ruby sind über Umwege verwendbar. Da Swift und Objective-C nur für iOS ausgelegt sind, können Apps gezielter programmiert und die Ergebnisse leichter zu überprüfen.
Die Benutzeroberfläche von iOS Apps sind meistens minimalistisch und elegant. Bei der Nutzung wird ein großer Wert auf die hohe Konnektivität mit der Hardware von anderen Apple-Geräten gelegt.
Was sind native Apps?
Eine native App bedeutet, dass sie individuell für eine spezifische Plattform wie iOS, z.B. mit Swift, oder Android, z.B. mit Java entwickelt wird. So kann man sagen, dass die App von Grund auf für eine bestimmte Plattform entwickelt wurde. Native Apps können über die zugehörigen App Stores heruntergeladen und auf den entsprechenden Geräten installiert werden. Bei der Nutzung finden gelegentlich Zugriffe auf Gerätehardware statt, wie z.B. die Kamera. Der Code von nativen Apps sind auf das Betriebssystem zugeschnitten. Dies bedeutet eine schnellere und kostengünstigere Entwicklung. Der Vorteil ist auch die gute Nutzung, die den Nutzer die App häufiger verwenden lässt.
Heutzutage werden nur noch selten unterschiedliche Apps für die verschiedenen Betriebssysteme gebaut. Stattdessen wird auf Entwicklungsframeworks wie Xamarin, React Native oder Flutter zugegriffen. Diese ermöglichen eine plattformübergreifende Entwicklung. Es wird beim Entwicklungsprozess auf eine einheitliche Programmierspreche für mehrere Plattformen verwendet. JavaScript wird beispielsweise hinterher in den jeweiligen nativen Code kompiliert. Sollten sich im Code Elemente befinden, die nicht übersetzt werden können, werden diese mithilfe von Schnittstellen zu JavaScript implementiert.
Welchen Zweck erfüllen mobile Apps?
Apps sind wesentliche Bestandteile von mobilen Geräten. Mit ihnen lassen sich z.B. auf dem Smartphone die gewünschten Apps nach den eigenen Bedürfnissen zuschneiden. So ist das Smartphone nicht nur ein Telefon. Alle nötigen Funktionen können je nach Gebrauch wie ein Schweizer Taschenmesser ausgeklappt werden. Man kann überall und jederzeit kommunizieren, recherchieren, sich informieren, navigieren, einkaufen, bezahlen. Außerdem kann man Medien konsumieren und produzieren.
Ablauf der App-Entwicklung
Konzeption von Apps
Die Konzeption von Apps ist abhängig von der Größe des Projekts und kann somit unterschiedlich aussehen. Jedoch gibt es im Groben einen bewährten Ablauf, der sich in den meisten Entwicklungsprozessen abzeichnet.
Hier steht an erster Stelle die Frage: Was soll meine App können? Dabei ist es wichtig den Mehrwert der App herauszufinden.
Um das Ganze zu visualisieren ist eine Roadmap hilfreich, welches die Elemente “Epics”, “User Stories”, “Tasks” und “Type of User” enthält.
Epics stellen den größten Teil dar. Hier wird ein größerer Funktionsbereich mit Anforderungen an die App beschrieben, die nicht durch eine einzelne Funktion oder Session erfüllt werden können. Sie enthalten mehrere User Stories, weshalb sie auch als eine Sammlung verwandter User Stories angesehen werden können.
Ein Epic beinhaltet mehrere Stories und zielen auf die Bedürfnisse der Nutzer ab. Was sollen Nutzer mit der App tun können? Die User Stories sollen auf diese Frage mit einem Satz beantworten. Sie soll außerdem die Anforderungen an die App so beschreiben, ohne dass sie konkrete Lösungen enthalten. Die sogenannten W-Fragen dienen als Anhaltspunkt: “Als (WER?) möchte ich (WAS?) um (WOZU?).” Aus diesen W-Fragen werden die typischen Funktionen abgeleitet, wie z.B. der Log-In, Suchfunktionen, GPS-basierte Funktionen, Funktionen für Datenbanken, Kalender oder Messenger sowie die Integration von Drittanbieter-Apps (wie z.B. Social Media).
Tasks stellen den kleinsten Teil dar. Eine User Story kann mehrere Tasks beinhalten, um die Anforderungen, die sich aus ihnen abgeleitet hat, zu erfüllen. Ein Beispiel dafür wäre zur User Story “Ich möchte mich als Endbenutzer einloggen können” ein Login-Formular zu bauen.
Type of User sind Benutzergruppen, die die App verwenden. Sie stellen das “WER?” in den User Stories dar, sodass unterschiedliche Funktionen und Berechtigungen eingerichtet werden können. Das sind z.B. Administratoren, (un-)registrierte Nutzer oder Abonnenten.
Die Eingangsfrage kann auf diese Art und Weise in immer kleinere Aufgaben heruntergebrochen werden, für die Entwickler Lösungen finden und in die Tat umsetzen können.
Umsetzung von Apps
Hier geht es um die Frage: Wie soll meine App aufgebaut sein? Die Antwort darauf ist eine Benutzeroberfläche, die die Schnittstelle zwischen Nutzer und Endgerät darstellt. Sie ist praktisch die grafische Oberfläche mit interaktiven Buttons und Eingabefeldern. Die einzelnen Funktionen werden dabei in einer Ordner-Struktur festgelegt.
Als nächstes ist die optische Gestaltung der App dran. Diese richtet sich an dem Corporate Design des Unternehmens. Sie ist eine Art grafische Übersetzung der Unternehmensphilosophie, welche meistens ein Logo und eine bestimmte Farbgebung enthält. Zu beachten ist auch, dass der Inhalt und die Platzierung eine wichtige Rolle spielen. Der Content, bestehend aus Text, Bilder und Videos, sollte gut ausgewählt sein. Bei der Konzeption einer App ist weniger oft mehr.
Als letztes kommt die Programmierung dran. Hier geht die Entscheidung voran, für welches Device entwickelt werden soll. Wie bereits erwähnt, werden für die gewünschte Plattform die entsprechenden Entwicklungstools verwendet. Frameworks und IDEs helfen mit ihren vorgefertigten Libraries bei der Strukturierung und er Fehlervermeidung durch vorgegebene Codestrukturen,-ergänzungen oder -entwürfe. Feedback oder Hilfe von anderen Entwicklern können über Teamtools eingeholt oder die Versionierung abgewickelt werden.
Die Zukunft der App-Nutzung
In der jüngsten Vergangenheit ist die Nutzung von Smartphones und anderen Mobilgeräten immer mehr gestiegen. Auch Anwendungen, die eine Internetverbindung benötigen, werden immer häufiger mobil genutzt. Die Bedürfnisse der Nutzer gehen meistens über die Informationsbeschaffung hinaus. Eine mobile App leistet weit mehr als eine Verbesserung der Unternehmenskommunikation bzw. -präsentation. Die häufigere und verbindliche Nutzung wirkt sich auch auf die Kundenbindung aus. Mit einer App können neue Zielgruppen erschlossen oder gar neue Produkte oder Dienstleistungen etabliert werden.