Native Anwendung (native Applikation oder native App)
Was ist eine native Anwendung (native App)?
Eine native Anwendung, native Applikation oder native App ist ein Softwareprogramm, das für die Verwendung auf einer bestimmten Plattform beziehungsweise bestimmtem Betriebssystem oder einem bestimmten Gerät entwickelt wurde.
Da eine native Anwendung für die Verwendung auf einem bestimmten Gerät und dessen Betriebssystem entwickelt wurde, hat sie die Möglichkeit, gerätespezifische Hardware und Software zu verwenden. Native Apps können im Vergleich zu Webanwendungen oder mobilen Cloud-Anwendungen, die als generische Anwendungen für mehrere Systeme entwickelt wurden, eine optimierte Leistung bieten und die Vorteile der integrierten Technologie eines Geräts, wie zum Beispiel GPS, nutzen.
Native Anwendungen und Plattformen
Der Begriff native Anwendung bezieht sich auf Plattformen wie Apple macOS und Microsoft Windows, wobei zum Beispiel die Programme Fotos, Mail oder Kontakte auf jedem Apple-Computer vorinstalliert und konfiguriert sind. Damit sind sie klassische native Anwendungen. Im Zusammenhang mit mobilen Apps wird der Begriff native App jedoch für jede Anwendung verwendet, die für die Arbeit auf einer bestimmten Geräteplattform geschrieben wurde.
Die beiden wichtigsten Plattformen für mobile Betriebssysteme sind iOS von Apple und Android von Google. Native Apps werden in dem Code geschrieben, der für das Gerät und sein Betriebssystem verwendet wird. Beispielsweise schreiben Entwickler iOS-Anwendungen in Objective-C oder Swift, während sie Android-native Anwendungen in Java erstellen.
Native Anwendungen arbeiten mit dem Betriebssystem des Geräts auf eine Weise, die es ihnen ermöglicht, schneller und flexibler zu arbeiten als alternative Anwendungstypen. Wenn die Anwendung an Benutzer verschiedener Gerätetypen vermarktet wird, erstellen die Entwickler für jeden Gerätetyp eine eigene Anwendungsversion.
Die Facebook-App wurde beispielsweise ursprünglich in HTML5 geschrieben, um denselben Code für iOS, Android und mobiles Web zu verwenden. Für iOS-Benutzer war die Anwendung jedoch langsamer, was die Facebook-Softwareentwickler dazu veranlasste, separaten Code für iOS zu erstellen. Komplexe Aufgaben können auf diese Weise neu ausbalanciert werden, wie zum Beispiel die Vernetzung im Hintergrund des Haupt-Threads oder des Programms, das die Benutzeroberfläche steuert.
Beispiele für native Apps
Durch die Möglichkeit, auf bestimmte Ressourcen zuzugreifen, können native Anwendungen schnell auf mehrere Dienste auf einem Gerät zugreifen, zum Beispiel auf das Mikrofon, den Beschleunigungsmesser oder Push-Benachrichtigungen. Beispiele für native Apps reichen von Navigationsprogrammen wie Waze über soziale Anwendungen wie Twitter bis hin zu Spielen wie Pokémon Go.
Pokémon Go greift effizient auf die Systemfunktionen zu – GPS für die Standortkartierung, die Kamera für Augmented Reality und den Beschleunigungsmesser zur Messung der Beschleunigung –, um die bestmögliche Benutzererfahrung zu erzielen. Pokémon Go kann auch die Vorteile von Push-Benachrichtigungen nutzen, die die Benutzer im Laufe der Zeit wieder ins Spiel bringen sollen.
Eine native App wird direkt auf einem Mobilgerät installiert. Die mit der nativen Anwendung verbundenen Daten werden auf dem Gerät oder Remote gespeichert, zum Beispiel in einem Cloud-Speicher.
Vor- und Nachteile nativer Anwendungen
Zu den Vorteilen nativer Anwendungen gehören:
- breite Funktionalitäten aufgrund der Nutzung der Fähigkeiten des zugrunde liegenden Geräts;
- schnelle und reaktionsfähige Software-Performance;
- Push-Benachrichtigungen;
- eine Benutzeroberfläche, die besser mit der Benutzererfahrung des Betriebssystems übereinstimmt; und
- Qualitätssicherung durch Bewertungen in den App Stores.
Zu den Nachteilen von nativen Anwendungen gehören:
- mehrere Codebasen, da jedes Gerät seine eigene Version der Anwendung hat;
- die Kosten für zusätzliche Entwickler, um eine Codebasis für jede Plattform zu erstellen und zu verwalten; und
- Zeit, die bei jeder Aktualisierung der Funktionen für mehrere Builds für verschiedene Plattformen aufgewendet wird.
Native Apps versus Webanwendungen
Eine Webanwendung ist eine Anwendung, die der Benutzer nicht herunterlädt, sondern auf die er per Webbrowser über ein Netzwerk zugreift. Beispiele für Webbrowser sind Google Chrome, Apple Safari und Mozilla Firefox. Webanwendungen bieten Funktionen vom Zugriff auf Bankkonten bis hin zur YouTube-Videobetrachtung über zum Beispiel Safari auf einem iPhone.
Während native Apps auf das jeweilige Gerät geschrieben werden, kann die Mehrzahl der Webanwendungen in JavaScript, CSS und der Standardversion von HTML für die universelle Verwendung in verschiedenen Browsern geschrieben werden. Webanwendungen können eine einzige Codebasis verwenden, da sie nicht um ein bestimmtes Gerät herum entwickelt wurden. Webanwendungen sind schnell und einfach zu erstellen, aber nicht so vielseitig und schnell wie native Anwendungen.
Native Apps versus hybride Anwendungen
Hybridanwendungen sind eine Kombination aus nativen und Webanwendungen. Das Innenleben einer hybriden Anwendung ähnelt einer Webanwendung, aber sie wird wie eine native Anwendung installiert. Hybridanwendungen haben Zugriff auf interne Geräte-APIs, was bedeutet, dass sie Ressourcen wie Kamera, Speicher und GPS nutzen können. Yelp und Instagram sind Beispiele für hybride Anwendungen.
Hybride Anwendungen werden mit HTML und CSS erstellt. Die Entwickler erstellen eine einzige Codebasis und nehmen dann kleine Änderungen vor, um die Anwendung auf die jeweilige Plattform zuzuschneiden. Mit einer Hybridanwendung widmen sich weniger Entwickler jeder Plattform als bei einer nativen App. Hybride Anwendungen führen eine Webanwendung normalerweise über einen Container oder WebView aus, einen System-Browser, der in einer mobilen App enthalten sein kann.
Hybride Anwendungen verhalten sich auf verschiedene Weise anders als native Anwendungen. Hybride Anwendungen basieren auf Webanwendungen und enthalten dieselben Navigationselemente wie Webanwendungen. Außerdem gibt es keinen Offline-Modus für eine Hybridanwendung – sie funktioniert nur mit einer Internetverbindung. Native Anwendungen können dagegen offline betrieben werden.
Die Kostenunterschiede zwischen nativen und hybriden Anwendungen sind minimal. Bei beiden Anwendungstypen müssen die Entwickler Code schreiben, um ihn auf mehreren Plattformen zu starten. Wenn die Entwicklungszeit einer Anwendung weniger als vier bis sechs Monate beträgt, ist im Allgemeinen eine Hybridanwendung vorzuziehen, da sie schneller erstellt werden können.
Native Anwendungs-Tools
Swift und Java sind Open Source, und sie sind die Hauptprogrammiersprachen, die von Apple und Google verwendet werden.
Xamarin ist ein plattformübergreifendes Softwareentwicklungswerkzeug, das für die native Entwicklung von Apps auf iOS und Android sowie anderen Plattformen, die auf C# als Programmiersprache basieren, verwendet wird.