App-Entwicklung steht für die Prozesse und Verfahren zum Schreiben von Software für Mobilgeräte wie Smartphones, Smartwatches und Tablets.
Die moderne Computertechnik hat sich von den Desktops und selbst von den Laptops der vergangenen Jahrzehnte weg entwickelt. Heute findet das Computing größtenteils auf Mobilgeräten statt, und mehr als die Hälfte des gesamten Datenverkehrs im Internet stammt von Smartphones, Tablets und anderen drahtlosen Optionen.
Da die Computertechnik immer mehr von stationären zu mobilen Systemen wechselt, steigt der Bedarf an Software, die auf Mobilgeräten effektiv funktioniert. Dazu gehört allerdings mehr als nur die Erstellung mobiler Apps. Unternehmen müssen in der Lage sein, Anwendungen zu entwickeln, die nicht nur auf Mobilgeräten genutzt werden können, sondern auch deren einzigartige Fähigkeiten voll ausschöpfen.
Um dieser Erfordernis Rechnung zu tragen, setzen immer mehr Unternehmen auf App-Entwicklung.
Um eine Anwendung auszuführen, benötigt ein Mobilgerät ein funktionierendes Betriebssystem (BS). Das BS übernimmt die Rolle eines Vermittlers, der die Interaktion zwischen der Computerhardware und den darauf ausgeführten Programmen ermöglicht. Das Betriebssystem stellt sicher, dass die Softwareprozesse, die auf dem Computer ausgeführt werden, Zugriff auf die richtigen Ressourcen haben und dass sie wie vorgesehen funktionieren.
Eine Plattform für App-Entwicklung (Mobile Development Platform) ist im Wesentlichen ein Betriebssystem, das zum Erstellen, Testen und Bereitstellen mobiler Apps entwickelt wurde. Zwar gab es in der Vergangenheit eine große Anzahl solcher Plattformen, doch mittlerweile teilen sich im Wesentlichen zwei Top-Wettbewerber den Markt auf: Android und iOS.
Mit einem Marktanteil von etwa 80 % ist Android die größte Mobile Development Platform. Das liegt daran, dass Android ein Open-Source-Betriebssystem ist, das es vielen Arten von Geräten verschiedener Hersteller ermöglicht, verschiedene Versionen des Android-Betriebssystems auszuführen. Android wird von Google entwickelt und basiert auf Linux, sodass alle Hardware entwickeln können, die das Betriebssystem unterstützt. Das gleiche gilt für die Entwicklung von Android-Apps: Entwickler haben bei der Erstellung von Apps für Android-Geräte die volle Autonomie. Das ermöglicht eine höhere App-Flexibilität und eine extrem niedrige Einstiegshürde.
Google stellt native Tools für die Entwicklung mobiler Android-Apps wie Android Studio bereit. Darüber hinaus bedeutet die Open-Source-Natur des Betriebssystems, dass auch Drittanbieter eigene Android-Entwicklungstools erstellen können (was sie auch tun). Die umfassenden Google-Richtlinien für Entwickler stellen sicher, dass die resultierende Anwendung über viele verschiedene Hardwaretypen hinweg gut aussieht und funktioniert. Angesichts der Tatsache, dass die Anzahl potenzieller Android-Geräte im Grunde unbegrenzt ist, gibt es keine Möglichkeit, sicherzustellen, dass neue Anwendungen in jeder Situation und mit jeder Art von Hardware effektiv funktionieren.
Obwohl iOS nur etwa 18 % des Markts ausmacht, ist es wohl die dominantere der beiden großen Plattformen. iOS wird von Apple entwickelt, dem Unternehmen, das mit der Einführung von iPhone und iPad am meisten dazu beigetragen hat, dass Mobile Computing zum Mainstream wurde.
iOS ist auf weniger Geräten als Android verfügbar, weil es nicht Open Source ist – iOS funktioniert ausschließlich auf Apple-Produkten. Um Apps für iOS zu entwickeln, müssen Entwickler ebenfalls einen Mac-Computer mit OS X (dem standardmäßigen Mac-Betriebssystem) verwenden.
Apple stellt ebenfalls native Tools und Bibliotheken für die App-Entwicklung bereit, und Entwickler werden angehalten, die Programmiersprache Swift von Apple zu verwenden.
Da Apple die Hard- und Softwareaspekte der iOS-Entwicklung so genau kontrolliert, sind iOS-Apps in der Regel sehr leistungsstark, stabil und benutzerfreundlich. Auch die Fragmentierung von Geräten ist weniger problematisch, da Apple die Ausführung der Anwendungen nur auf der eigenen proprietären Hardware erlaubt. Auf der anderen Seite bedeuten strengere Richtlinien, dass es schwieriger sein kann, vollständig angepasste Apps zu erstellen. Außerdem müssen neue iOS-Anwendungen zur Prüfung und Genehmigung beim App Store eingereicht werden.
Alle anderen aktuellen Mobile Development Platforms teilen sich die verbleibenden 2 % des Markts. Dazu gehören die Windows- und Blackberry-Entwicklungsplattformen. Doch fast alle App-Entwickler konzentrieren sich auf Android, iOS oder eine Kombination aus beiden.
Es gibt mehrere Ansätze für App-Entwicklung. Im Folgenden sehen wir uns drei der beliebtesten an:
Die direkteste und offensichtlichste Methode für die App-Entwicklung besteht wohl darin, die Tools und Plattformen zu verwenden, die vom BS-Anbieter bereitgestellt werden. Diese Tools wurden mit Blick auf die Benutzerfreundlichkeit entwickelt und bieten Beispiele, Tools, Frameworks und andere Ressourcen, um ein schnelleres Debugging und eine optimale Funktionalität auf dem mobilen Betriebssystem zu gewährleisten, für das die App entwickelt wird.
Native Entwicklungstools haben jedoch ihre Nachteile. Da sie die Entwicklung unter dem jeweiligen Betriebssystem erleichtern sollen, verwenden sie verschiedene Programmiersprachen. Das bedeutet, dass Entwickler, die mit Android- oder iOS-Entwicklungstools programmieren möchten, mit den Sprachen vertraut sein müssen, die diese Tools verwenden, anstatt einfach in ihren eigenen bevorzugten Sprachen zu arbeiten. Ebenso kann die Erstellung einer einzigen App für beide BS-Optionen doppelte Arbeit bedeuten, da die Anwendung zweimal programmiert werden muss und zwei verschiedene Prozesse und Best Practices einzuhalten sind.
Für diejenigen, die Apps nur für ein bestimmtes Betriebssystem entwickeln wollen, ist die native Entwicklung jedoch die schnellste und einfachste Lösung.
Vorteile
- Optimierte Leistung
Nativ entwickelte Apps funktionieren in der Regel besser und einheitlicher, da sie die Funktionen des Geräts optimal ausnutzen. - Höhere Benutzerfreundlichkeit
Native Apps sind so konzipiert, dass sie auf bestimmten Geräten funktionieren. Auf diese Weise können sie die Funktionen dieser Geräte nutzen und bieten eine bessere Benutzer-Experience. - Codierung für nur eine Plattform
Native Apps lassen sich leichter entwickeln, da sie nur für eine einzige Plattform konzipiert sind und nicht unter mehreren Betriebssystemen funktionieren müssen.
Nachteile
- Erforderliche Spezialisierung
Native Apps, die für bestimmte Betriebssysteme entwickelt werden, erfordern Entwickler mit speziellen Kenntnissen in der Codierung für das jeweilige Gerät. - Mehrfacher Entwicklungsaufwand
Da native Apps speziell für die einzelnen Betriebssysteme entwickelt werden müssen, sind für die Entwicklung einer App, die auf mehr als einer Plattform funktionieren soll, mehrere Entwicklungsschritte erforderlich – und das verursacht auch höhere Kosten und einen höheren Zeitaufwand.
Plattformübergreifende (bzw. hybride) Entwicklungs-Frameworks sind so konzipiert, dass Entwickler effektive mobile Apps erstellen können, die unter beiden großen Betriebssystemen optimal funktionieren. Im Idealfall bedeutet das, dass Entwickler den Code nur einmal schreiben müssen und dann auf allen unterstützten Plattformen ausführen können. Die meisten plattformübergreifenden Frameworks bevorzugen in der Regel das eine oder andere Betriebssystem. Hierdurch müssen Entwickler die Version der App anpassen, die für das andere Betriebssystem vorgesehen ist.
Häufig handelt es sich bei plattformübergreifenden Frameworks um Abstraktionen. Sie verwenden systemeigene Bibliotheken und Frameworks und setzen voraus, dass Entwickler über ein grundlegendes Verständnis dieser Elemente verfügen. Andere verfolgen einen hybriden Ansatz, der neben nativen Komponenten auch webbasierte HTML-Komponenten umfasst.
Die meisten plattformübergreifenden Lösungen unterstützen eine bestimmte Programmiersprache, sodass viele Entwickler ihre Wahl davon abhängig machen, mit welchen Programmiersprachen sie bereits vertraut sind.
Vorteile
- Schnellere Entwicklung
Für die Entwicklung einer plattformübergreifenden App ist nur ein einziger Codesatz erforderlich, der auf mehreren Betriebssystemen funktioniert, was schnellere Entwicklungszyklen ermöglicht. - Leichtere Entwicklung
Entwickler von hybriden Apps müssen nur eine Technologie erlernen, was die Einstiegshürde senkt und den Entwicklungsprozess vereinfacht. - Breitere Zielgruppe
Plattformübergreifende Apps sind so konzipiert, dass sie in beiden großen App-Marketplaces verfügbar sind. So können Entwickler sowohl Android- als auch iOS-Benutzer erreichen.
Nachteile
- Geringere Benutzerfreundlichkeit
Apps, die für beide großen Betriebssysteme entwickelt wurden, sind in der Regel nicht in der Lage, die Funktionen der jeweiligen Plattform voll auszuschöpfen. Das kann sich auf die Benutzerfreundlichkeit auswirken und dazu führen, dass diese Apps langsamer laufen als native Anwendungen. - Langsamerer Rollout neuer Funktionen
Wenn neue native Funktionen eingeführt werden, müssen plattformübergreifende Entwickler darauf warten, dass ihr Entwicklungs-Framework diese Funktionen unterstützt. - Schwierige Anpassung
Wenn eine App nicht nativ entwickelt wird, ist die Anpassung der App viel schwieriger und mit plattformübergreifenden Frameworks möglicherweise nicht vollständig möglich. - Leistungsprobleme
Bei Apps, die nicht für ein bestimmtes Betriebssystem entwickelt wurden, kann es zu Kommunikations- und Leistungsproblemen kommen.
Die dritte Option, die in den letzten Jahren stetig an Beliebtheit gewonnen hat, ist der Einsatz mobiler Web-Apps für die App-Entwicklung. Hierbei wird eine Webanwendung für den Zugriff über einen Standard-Webbrowser entwickelt, dabei jedoch für die Nutzung auf Mobilgeräten optimiert.
Es mag so aussehen, als ob man mit diesem Ansatz eine Abkürzung nimmt, aber die Wahrheit ist, dass mobile Web-Apps genauso effektiv, funktional und elegant sein können wie jede nativ entwickelte Anwendung. Es stehen viele Frameworks zur Verfügung, mit denen Entwickler mobile Web-Apps erstellen können, die sich wie native Anwendungen anfühlen, wenn sie auf einem mobilen Betriebssystem ausgeführt werden. Mobile Web-Apps können sogar Funktionen der Mobilgeräte integrieren, auf denen sie ausgeführt werden: Sie können auf die Kamera zugreifen, Telefonnummern wählen, Standortdaten abrufen und vieles mehr.
Vorteile
- Einfachere Wartung
Durch die Verwendung standardmäßiger Sprachen und Regeln zur Website-Programmierung sind Web-Apps genauso einfach zu erstellen und zu aktualisieren wie Websites. - Schnellere Entwicklung
Bei der Entwicklung von Web-Apps wird nur ein einziger Codesatz verwendet, was einen schnelleren und einfacheren Entwicklungsprozess ermöglicht. Und da Web-Apps keine Genehmigung der großen App-Marketplaces benötigen, können sie viel schneller veröffentlicht werden. - Geringere Kosten
Vereinfachte Codierung und schnellere Entwicklungszyklen bedeuten geringere Entwicklungskosten. - Optimale Zugänglichkeit
Web-Apps funktionieren ähnlich wie Websites und sind über jeden Standard-Webbrowser verfügbar.
Nachteile
- Internetzugang erforderlich
Da Web-Apps im Webbrowser über das Internet aufgerufen werden, benötigen sie zur Ausführung eine Onlineverbindung. Ohne Zugriff auf WLAN oder mobiles Datennetz können Benutzer nicht auf die App zugreifen. - Eingeschränkte Funktionalität
Web-Apps haben keinen Zugriff auf die nativen Funktionen eines Geräts oder Betriebssystems, was ihre Funktionalität einschränken kann. - Keine Verbindung zu App-Marketplaces
Web-Apps sind nicht über App-Marketplaces erhältlich und können leicht übersehen werden.
Einzelne Entwickler mögen zwar unterschiedliche Ansätze oder Methoden verfolgen, aber der Prozess der App-Entwicklung besteht im Allgemeinen aus sechs Schritten:
Das Entwicklungsteam muss mit anderen Abteilungen und Stakeholdern zusammenarbeiten, um Anforderungen für die zukünftige App festzulegen. Dazu gehören alle Funktionen und Merkmale, die die App benötigt, sowie die Zielgruppe, die sie ansprechen, und die spezifischen Probleme, die sie lösen soll.
Nachdem die Idee hinter der App feststeht, werden im nächsten Schritt die Benutzeroberfläche (UI, User Interface) und die Benutzer-Experience (UX, User Experience) für die App entworfen.
In der Entwicklungsphase beginnt die eigentliche Codierung. Die Entwicklungsteams programmieren die App unter Einhaltung der festgelegten Richtlinien. Es finden erste Tests statt mit dem Ziel, die ordnungsgemäße Funktionalität zu gewährleisten.
Wenn sich die App der Fertigstellung nähert, müssen umfangreichere Tests durchgeführt werden. In dieser Testphase wird nicht nur festgestellt, ob die App funktioniert oder ob es zu Fehlfunktionen kommt, die behoben werden müssen, sondern auch die Gesamtqualität und die Benutzer-Experience werden geprüft.
Nachdem die letzten Tests abgeschlossen sind und die App den gängigen Standards entspricht, kann sie endlich veröffentlicht werden.
Obwohl das Marketing technisch gesehen kein Teil der App-Entwicklung ist, trägt es dazu bei, dass die harte Arbeit des Entwicklungsteams nicht umsonst ist. Die richtige Marketingstrategie ist entscheidend dafür, dass die Zielgruppe erfährt, dass die App verfügbar ist und was sie für sie leisten kann. Gleichzeitig kann das Marketing wertvolles Feedback generieren, das Entwickler nutzen können, um die App durch weiteren Support zu verbessern.
Der Erfolg nahezu jeder mobilen App hängt davon ab, wie benutzerfreundlich sie ist. Die UI bestimmt, wie die Anwendung aussieht und wie Benutzer mit ihr interagieren. Daher sind für die Erstellung einer effektiven UI bestimmte Komponenten erforderlich:
Bei der Erstellung der Informationsarchitektur legen die Entwickler die Funktionalität der App fest und beschreiben gleichzeitig, wie die Benutzeroberfläche aussehen wird.
Wireframes bieten eine einfache visuelle Darstellung der fertigen App, einschließlich der Größe der verschiedenen Elemente und ihrer Beziehung zueinander im Rahmen des Layouts.
Styleguides sind Richtlinien, die wichtige Informationen über die App enthalten, damit das Design durchgängig einheitlich bleibt.
Auf Grundlage von Wireframes und Styleguides zeigen Mockups den Ablauf der App in Form einer statischen Visualisierung.
Ein Prototyp ist eine Basisversion der funktionierenden App, die alle vorherigen Komponenten enthält oder daraus abgeleitet ist. Prototypen geben Entwicklern einen dynamischen Einblick in die Funktionsweise der App, bevor sie vollständig fertiggestellt ist. So können sie Bereiche identifizieren, in denen die UI und UX zu wünschen übrig lassen. Hierdurch steigt die Chance, dass das fertige Produkt die Erwartungen der Benutzer erfüllt oder übertrifft.
Um wettbewerbsfähig zu bleiben. ist die Entwicklung zuverlässiger, leistungsstarker Apps in der immer vernetzteren Geschäftswelt von heute ein Muss. ServiceNow, der führende Anbieter von IT-Management-Lösungen, bietet Lösungen für die App-Entwicklung, um sicherzustellen, dass jedes Unternehmen einfachen Zugriff auf fortschrittliche Tools und Ressourcen für Konzeptfindung, Entwicklung, Veröffentlichung und Verwaltung ansprechender und effektiver Anwendungen hat.
ServiceNow Mobile Studio bietet Unternehmen alles, was sie brauchen, um eigene mobile Apps zu erstellen, ohne dass eine Armee von Entwicklern oder umfassende Programmierkenntnisse erforderlich sind. Mit sofort einsatzbereiten Vorlagen, Drag-and-Drop-Funktionen und benutzerfreundlichen Branding-Optionen macht Mobile Studio die App-Entwicklung zum Kinderspiel. Und die Konfigurationstools von ServiceNow Mobile App Builder gehen sogar noch einen Schritt weiter und bieten eine verbesserte Organisation, Transparenz und Anleitung bei der App-Erstellung.