📖Native Grundlagen
Last updated
Last updated
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 |
---|---|---|
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.
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.
Es gibt einige Unterschiede zu beachten in der Entwicklung zwischen nativen und Desktopanwendungen.
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.
Mobile Anwendung | Desktopanwendung | |
---|---|---|
Android
Kotlin Entwickelt in Koorperation von Google und JetBrains. Kotlin löste Java in der Android-Programmierung ab.
Android Studio Applikationen lassen sich auf Windows, Linux und Mac entwickeln und builden
iOS
Swift
Swift löste ca. 2014 Objective-C ab. Mit SwiftUI werden auf Apple-Plattformen UIs entwickelt (deklarativer Ansatz).
XCode Applikationen lassen sich nur auf MacOS entwickeln und builden
Plattform
Mobile Betriebssyteme wie Android und iOS
Desktop-Betriebsysteme wie Windows, macOS und Linux
Entwicklungs-Tools
Swift / SwiftUI Kotlin / Jetpack Compose
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 sein