mini|hochkant|App-Icons auf einem Samsung Galaxy S8 mit dem Betriebssystem Android 7.0
Eine mobile App oder App (wörtlich Mobilgerät-Anwendung, wobei App eine Abkürzung für den Fachbegriff Applikation ist) ist ein Computerprogramm oder eine Softwareanwendung, die für die Ausführung auf einem mobilen Gerät wie einem Telefon bzw. einem Smartphone, Tablet oder einer Uhr entwickelt wurde. Mobile Anwendungen stehen oft im Gegensatz zu Desktop-Anwendungen, die für die Ausführung auf Desktop-Computern entwickelt wurden, und Webanwendungen, die in mobilen Webbrowsern ausgeführt werden, anstatt direkt auf dem mobilen Gerät.
Es gibt sie für die verschiedensten Bereiche. Diese reichen von einfachsten Dienstprogrammen und Spaßanwendungen mit nur einer Funktion bis hin zu Programmpaketen mit umfangreicher Funktionalität wie Office-Anwendungen, Spiele, Ratgeber, Fitness-Apps, zur Emulation älterer Heimcomputer und programmierbarer Taschenrechner oder als Hilfestellung für Diabetiker. Mithilfe von mobilen Remote-Apps werden zunehmend digitale Geräte ferngesteuert, wie zum Beispiel Kameras, Action-Camcorder oder Quadrocopter. Der Großteil dieser Apps ist kostenlos, ein kleinerer Teil muss, für meist geringe Beträge, im jeweiligen App Store gekauft werden.
Apps, die mehrere Dienste in einer mobilen Anwendung kombinieren, werden als Super-Apps bezeichnet. Solche Apps haben sich besonders in Asien etabliert.
Geschichte mini|hochkant|Mit Webbrowsern, wie z. B. dem Dolphin Browser, ist das Surfen im Internet auf einem Mobilgerät möglich
Schon die ersten Mobiltelefone enthielten oft kleine Anwendungen wie etwa Kalender, Taschenrechner oder Handyspiele. Diese waren vom Hersteller für das jeweilige Betriebssystem konzipiert, fest installiert und nur mit Root-Rechten löschbar. Mit dem Erscheinen von Java auf Mobiltelefonen (Java ME) bekamen Anwender die Möglichkeit, einfache Anwendungen und Spiele von ihrem Mobilfunknetzbetreiber oder aus dem Internet über WAP (MIDlets) herunterzuladen, die häufig schon plattformunabhängig waren. Es entwickelte sich eine Hobby-Programmiererszene, aber auch professionelle Softwarehäuser boten solche Anwendungen kostenpflichtig an. Auch auf diversen PDAs konnten Anwendungen installiert werden. Als Vorläufer von Smartphone-Apps können die Palm-OS-PDA-Anwendungen gelten, die meist nur aus einer Datei bestehen und nach dem Transfer direkt nutzbar sind. Auf Psion-Organisern konnten Programme mit dem Gerät selbst erstellt werden.
Für Mobiltelefone mit eigenem Betriebssystem und der Möglichkeit, entsprechende Apps zu installieren, setzte sich um das Jahr 2000 der Begriff Smartphone durch. Dieser Begriff wurde im Mobilbereich erstmals von Ericsson für den Prototyp GS88 verwendet. Weite Verbreitung fand um dieselbe Zeit die Communicator-Serie von Nokia, auf deren späteren Modellen das Betriebssystem Symbian lief. Zu den ersten im Massenmarkt verfügbaren Smartphones zählten 2002 das Siemens S55 und das Nokia 7650, auf denen sich Java-Programme manuell übertragen und ausführen ließen. Erst mit dem Erscheinen des Apple iPhone 2007 und später der Android-Mobiltelefone und weiteren Smartphones wurde die Möglichkeit der Installation von Anwendungen auf mobilen Geräten breiten Bevölkerungskreisen geläufiger, unterstützt durch entsprechend verstärktes Marketing der Hersteller. Auf den meisten Smartphones sind einige Apps, wie zum Beispiel ein Webbrowser, ein E-Mail-Programm und ein Kalender, bereits vorinstalliert. Im Juni 2016 wurden allein für iOS über zwei Millionen Apps angeboten.Apple’s App Store now has over 2 million apps theverge.com, vom 13. Juni 2016
Weltweit wurden im Jahr 2016 über 90 Milliarden Apps heruntergeladen (iOS-App-Store und Google-Play-Store). In Deutschland stieg der Umsatz im Vergleich zum Vorjahr um 40 Prozent auf 750 Millionen Dollar. Durchschnittlich verbrachte ein Android-Smartphone-Nutzer mehr als 1,5 Stunden am Tag in Apps. Die Liste der beliebtesten Apps (die meisten Downloads) in Deutschland führt 2016 WhatsApp an, gefolgt von Facebook Messenger und Facebook-App. Den vierten Platz belegt Snapchat und auf Rang fünf folgt Instagram. Die umsatzstärksten Apps waren Lovoo, Spotify und Tinder, wenn man Spiele-Apps außer Acht lässt. Die Umsätze des Gesamtmarktes legten deutschland- und weltweit in den Folgejahren weiter stark zu. Im Jahr 2020 war nach Angaben der Analysefirma Apptopia das Videoportal TikTok die mit weltweit gut 850 Millionen Downloads erfolgreichste App (App-Store und Google Play), vor WhatsApp, der Facebook-App, Instagram und dem Videokonferenz-Tool Zoom.
Native Apps mini|hochkant|Screenshot der Wikipedia-App für Android
Native Apps zeichnen sich dadurch aus, dass sie speziell an die Zielplattform angepasst sind. Da eine native App die Programmierschnittstellen (APIs) der Zielplattform direkt benutzt, ist die Bandbreite der Anwendungen sehr hoch. Zudem kann auf alle plattformspezifischen Hard- und Software-Funktionen zugegriffen werden, wie Dateien, GPS, Beschleunigungssensoren, Mikrofon und Kamera. Durch die verschiedenen Software-Plattformen ist es jedoch nicht möglich, etwa eine Android-App auf einem iPhone aufzuspielen oder umgekehrt. Somit muss ein Softwareunternehmen die Anwendung für jedes Endgerät einzeln entwickeln. Jede mobile Plattform besitzt ihr eigenes Software Development Kit (SDK) und ihre eigene integrierte Entwicklungsumgebung (z. B. Android Studio oder Xcode), welche von Entwicklern genutzt werden können. Die bevorzugten Programmiersprachen für die größten Systeme sind:
Java und Kotlin für Googles Android Objective-C und Swift für Apples iOS und iPadOS C#, C und C++ für Microsofts Windows
Mit nativen Apps können die verschiedensten Typen von Geräten auf einmal bedient werden, wenn alle auf einer Plattform basieren. So ist es mit der Universal Windows Platform möglich, auf einmal native Windows-Apps für Desktop-PCs, Laptops, Tablets, Smartphones und die Xbox One zu schreiben.
Plattformunabhängige Apps
Die rasante Entwicklung unterschiedlicher Betriebssysteme, wie Android, Windows, iOS und mobiler Endgeräte, von Smartphones, über Tablets bis zu Notebooks und Smart-TVs, bringt Unternehmen zum Umdenken. Laut einer Studie des Marktforschungsinstitutes GfK nutzen mehr als 60 % der Erwachsenen in den USA mindestens zwei Geräte täglich und etwa 25 % mindestens drei Geräte. Daher ist es wichtig, dass die App auf allen unterschiedlichen Geräten verfügbar ist und problemlos funktioniert.Daniel Stenger: Virale Markenkommunikation: Einstellungs- und Verhaltenswirkungen viraler Videos Abb. 2, S. 5. Diese Erwartungshaltung hat den Bedarf nach plattformunabhängigen Hybrid- und Cross-Plattform-Anwendungen erhöht.
Plattformunabhängige Apps werden gerade in Unternehmen, die unterschiedliche Geräte benötigen, immer wichtiger. Vor allem durch das Aufkommen des Phänomens Bring your own device (kurz: BYOD, auf Deutsch in etwa: „Bring Dein eigenes Gerät mit“) werden Unternehmen vor die Aufgabe gestellt, firmeninterne Programme und Anwendungen für alle Betriebssysteme und Gerätearten bereitzustellen. Auch spielt Mobilität, beziehungsweise Flexibilität eine tragende Rolle. Eine Anwendung, die auf Desktop-Computern läuft, soll z. B. auch bei dem externen Kundenbesuch auf dem Tablet funktionieren oder unterwegs auf dem Smartphone. Dabei wird versucht, möglichst einfach für mehrere Plattformen gleichzeitig zu entwickeln. Google portiert dazu große Teile des Quellcodes von Inbox, mit Hilfe der Software „J2ObjC“, von Java nach Objective-C. Auch Microsoft bietet mit der „Windows Bridge“ eine Möglichkeit, Windows Apps mit iOS APIs zu entwickeln.
Web-Apps mini|hochkant|Mit einem Webbrowser können Web-Apps (z. B. Büroprogramme) aufgerufen werden. Hier Google Docs.
Mobile Web-Apps werden über den Webbrowser des Mobilgeräts abgerufen und bedürfen keiner Installation. Sie benutzen Webstandards wie HTML5 oder JavaScript, damit sie auf beliebigen Endgeräten betrieben werden können. Im Gegensatz zu mobilen Apps, die für jede Plattform neu implementiert werden müssen, kann eine Implementierung von Web-Apps auf vielen verschiedenen Plattformen genutzt werden. Eine mobile Web-App verhält sich im Idealfall genauso wie eine native App, wird also vom Nutzer nicht wie eine Webseite wahrgenommen, sondern bietet stattdessen eine Benutzeroberfläche, die sich in das mobile Endgerät optisch und ergonomisch integriert. Nachteile von Web-Apps sind, dass sie nicht auf alle Hardware-Komponenten zugreifen können und dass die zur Verfügung stehende Datenübertragungsgeschwindigkeit eine wichtige Rolle spielt. Eine langsame Internetverbindung (beispielsweise bedingt durch schlechten Netzempfang) kann zu spürbaren Verzögerungen in der Interaktivität führen.
Bei der Nutzung von Web-Apps müssen meist mehr Daten übertragen werden als bei der Nutzung einer nativen App. Somit können höhere Übertragungs-Gebühren (besonders Roaming-Gebühren im Ausland) für den entstehenden Datenverkehr ein Hindernis für viele Nutzer darstellen, mobile Web-Apps z. B. im Urlaub zu nutzen. Das Zwischenspeichern der benötigten Daten in einem lokalen Speicher (Cache) stellt einen praktikablen Ausweg dar, um diese auch im Offline-Betrieb zur Verfügung zu stellen. Allerdings ist die im Gerät mit Hilfe von Web-Storage-Technik zu speichernde Datenmenge meist stark begrenzt.
Mobile Web-Apps können, im Gegensatz zu allen anderen Typen von mobilen Apps, nicht in App Stores angeboten werden. Aus diesem Grund greifen viele Websitebetreiber stattdessen auf Website-in-App Konverter zurück, die die Web-App in eine native App integriert. Viele dieser mit Konvertern erstellten Apps können allerdings ebenfalls nicht in App Stores veröffentlicht werden. Diese Apps werden unter anderem von Apple in den App Store Richtlinien ausgeschlossen, da sie keinen Mehrwert im Vergleich zu der mit einem Browser abrufbaren mobilen Website bieten.
Hybrid-Apps Hybrid-Apps stellen eine Sonderform einer mobilen App dar. Sie vereinen die Vorteile von nativen und Web-Apps, indem sie auf viele Hard- und Software-Komponenten des mobilen Endgeräts zugreifen und gleichzeitig unterschiedliche Plattformen bedienen können. Sie können sowohl auf unterschiedlichen Mobilgeräten (Smartphone & Tablet) und PCs als auch auf unterschiedlichen Betriebssystemen laufen.
Hybrid-Apps vereinen die Vorteile von nativen Apps und Webanwendungen, indem Quellcode plattformübergreifend verwendet werden kann. Der Code wird in Webtechnologien wie HTML-, CSS- und JavaScript geschrieben. Hybrid-Apps laufen – für den Nutzer nicht sichtbar – innerhalb des nativen Webbrowsers der jeweiligen Plattform, z. B. Safari oder Google Chrome. Durch das genutzte Framework werden alle Bedienelemente des Browsers, wie beispielsweise die Menüleiste mit URL- oder Lesezeichen-Leiste unterdrückt.
Für die Entwicklung von Hybrid-Apps stehen verschiedenen Frameworks zur Verfügung. Eine der größten Entwicklungsplattformen ist Cordova der Apache Software Foundation und das darauf basierende PhoneGap von Adobe. Es bieten weitere Unternehmen wie Ansca Mobile mit dem Corona SDK und Drifty mit Ionic Lösungen zur Entwicklung von Hybrid-Apps an.
Das Framework lädt eine Bibliothek, die die Kommunikation zwischen JavaScript und der jeweiligen betriebssystemspezifischen Sprache herstellt. Dadurch können Hybrid-Apps auf diverse Hard- und Software-Komponenten des mobilen Endgerätes zugreifen. Ein Zugriff ist unter anderem auf Kontakte, Kamera, Bewegungssensor, GPS und Dateien möglich. Moderne Render-Engines erhöhen die Berechnungsgeschwindigkeit der Interpretation des HTML5-, CSS3- und JavaScript-Codes. Dadurch kann die Ausführungsgeschwindigkeit um ein Vielfaches erhöht werden. Durch Technologie wie WebGL werden komplexe 3D-Grafiken ohne zusätzliche Erweiterungen durch die Hardware beschleunigt.