Anatomie eines iOS/iPadOS Programmes

Gestern haben wir uns die Anatomie eines Mac-Programmes angeschaut. Heute machen wir das mit einem iOS bzw. iPadOS Programm. 

Im Gegensatz zu macOS besitzt ein iOS-Programm keine Menüleiste. Auch wenn man seit iOS 15 den Startschirm beliebig konfigurieren kann, wird er meist dazu verwendet, Programme, die Apps zu starten. 

Ein Menü wird über ein Popup-Fenster realisiert. In iOS gibt es keine verschiebbaren Fenster, der gesamte Bildschirm wird von dem aktiven Programm dominiert. Die Benutzeroberfläche wird durch Berühren, Ziehen und verschiedenen Gesten gesteuert, wobei meist ein Bereich oder Button angetippt wird. 

Da es hier keine Maus gibt (außer im iPadOS) wird alles mit dem Finger oder Stift durchgeführt. Für Texteingabe wird eine Bildschirmtastatur eingeblendet, es kann aber auch eine Bluetooth Tastatur genutzt werden. Auf dem iPad Pro gibt es spezielle Hüllen mit Tastatur. 

90% aller Anwendungen auf dem iPhone benutzen eine Liste, die dann entweder in eine weitere Liste (hierarchisch) oder eine Detailansicht verzweigt. Siehe hierzu die Systemeinstellungen:

Speziellere Ansichten gibt es auch, beispielsweise in der Kartenansicht.

Die Bildschirmgröße variiert zwischen 5" und 12" beim größten iPad. Daher sollten hier verstärkt die Hilfsmittel eingesetzt werden, die Xcode mitliefert (Stichwort: Constraints und vertical / horizontal Stack).  

Zum Lebenszyklus eines iOS-Programmes: Ein iOS wird immer über den Launcher, den Startbildschirm gestartet. Im Gegensatz zu macOS besitzt es einen zusätzlichen Status, wenn es in den Hintergrund verbannt wird. Dann wird es gestoppt und nur eingeschränkt ist Multitasking (beispielsweise Musikwiedergabe im Hintergrund) möglich. Sobald es wieder in den Vordergrund geholt wird, wird der Stand wieder hergestellt und es kann weitergearbeitet werden. Man kann Hintergrunddienste anmelden, die im Hintergrund zum Beispiel Mails oder Mitteilungen laden.

Richtig beendet (und damit aus dem RAM gelöscht) werden iOS Programme, in dem man alle laufenden Programme per Homeknopf oder Geste anzeigt und das Programm nach oben schiebt. Dann werden noch die abschließenden Funktionen aufgerufen, beispielsweise um Daten zu sichern, und danach wird das Programm beendet. 

iOS Programme werden über das UIKit realisiert, das alle Klassen der Oberfläche eines iOS bzw. iPad OS Programmes besitzt. Natürlich kann auch hier die Bibliothek SwiftUI verwendet werden. Die Ähnlichkeit zu macOS ist groß, wer ein macOS Programm mit Xcode erstellen kann, wird sich auch im UIKit zurecht finden. 

Als Programmiersprache ist hier Swift und/oder Objective-C vorgesehen, wobei Swift immer die Programmiersprache der Wahl sein sollte.

Für den Fall, das ein Programm in den Hintergrund gebracht wird, stehen einige zusätzliche Funktionen bereit, Sicherungsaufgaben vorzunehmen. 

Bei iOS sind auch zahlreiche Sicherheitsmechanismen zu beachten. So dürfen iOS Programme nur über den Appstore vertrieben werden. Das bedeutet, das iOS Programme immer signiert und notarisiert werden müssen. 

Das war es erst einmal zur Anatomie eines iOS- bzw. iPadOS-Programmes.