📖Native Grundlagen
Native Applikationen sind Applikationen die explizit für mobile Betriebssysteme entwickelt werden. In der Entwicklung bspw. sind aktuell die bekanntesten Betriebssysteme Android und iOS.
Gerade in der Android und iOS Entwicklung sind eigene Programmiersprachen und IDE vorhanden, welche man nutzen muss.
Betriebssystem | Programmiersprache | IDE |
---|---|---|
Android | kotlin Entwickelt in Koorperation von Google und JetBrains auf Basis von Java | Android Studio Applikationen lassen sich auf Windows, Linux und Mac entwickeln und builden |
iOS | SwiftUI Basiernd auf Swift verfolgt die neue Programmiersprache den deklarativen Programmieransatz | XCode Applikationen lassen sich nur auf MacOS entwickeln und builden |
Selbst wenn wir uns in diesem Kurs vor allem auf die hybride Entwicklung fokussieren, müssen die Applikationen in Android Studio oder XCode gebuildet werden. Dies wirst du im Kapitel Capactior noch vertiefen.
Native Komponente
Folgend findest du eine Auflistung einiger Komponenten (nicht abschliessend):
Camera
File System
Geolocation
Accelerometer
Notification
Network
Haptics
...
In einer Anwendung können solche Komponenten verwendet, um die Interaktivität zu fördern. Dadurch kann der User bspw. Bilder aufnehmen und diesen als Profilbild speichern. Das unterscheidet Apps von statischen Webseiten, welche keinerlei Interaktivitäten zulässt.
Um die Sicherheit deines Mobilgerätes zu gewährleisten, benötigen sowohl Android als auch iOS Berechtigungen. Diese Berechtigungen erlauben es dem System den Zugriff auf die nativen Komponenten zuzugreifen. Dies wirst du im Kapitel Capacitor noch vertiefen.
Desktop und mobile Anwendungen
Es gibt einige Unterschiede zu beachten in der Entwicklung zwischen nativen und Desktopanwendungen.
Mobile Anwendung | Desktopanwendung | |
---|---|---|
Plattform | mobile Betriebssyteme wie Android und iOS | Desktop-Betriebsysteme wie Windows, macOS und Linux |
Entwicklungs-Tools | swiftUI kotlin | C#, .NET, C++ Java |
UI | optimiert für Touchgesten | optimiert für Maus und Tastatur |
Ressourcen und Leistung | sind in der Regel für begrenzte CPU-Leistung und Speicher optimiert | Zugriff auf mehr Ressourcen und können daher komplexere Aufgaben ausführen |
Verteilung | native Anwendung werden über einen solchen Store verteilt | können über eine Webseite heruntergeladen oder auch über spezielle Vertreibungssoftwares |
Funktionalität | Zugriff auf die oben genannten nativen Komponente | Zugriff auf ein breiteres Spektrum an System-APIs und Hardware Ressourcen |
Sicherheit | laufen in eigenen eingeschränkten Sandbox-Umgebung | mehr Freiheiten vorhanden aber kann so auch ein Sicherheitsrisiko |
Ressourcen und Leistung: Bei mobilen Applikationen steht jeweils nur eine Applikation im Vordergrund, das heisst alle anderen Apps werden automatisch pausiert. Dadurch wird der Leistungsverbrauch optimiert und reduziert. Dies muss ein Entwickler in der Entwicklung stets beachten.
Sicherheit: Beim Sandboxing handelt es sich um eine Isolation, wodurch jede Applikation und Prozess nur auf den freigegebenen Ressourcen Zugriff erhält. Dadurch lässt sich der Schutz vor anderen Apps erhöhen. Falls du dich ins Sandboxing vertiefen möchtest, lies dich doch selbstständig in das Sandboxing von Android und iOS ein.
Last updated