📖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.

BetriebssystemProgrammierspracheIDE

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 AnwendungDesktopanwendung

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