Betriebssysteme – iOS & Android – Teil 9

WEITER GEHT ES MIT TEIL 9 MEINER WISSENSREIHE “BETRIEBSSYSTEME – IOS UND ANDROID” (IOS ARCHITEKTUR). HINWEIS: DU BIST NICHT BERECHTIGT DEN FOLGENDEN TEXT ZU VERWENDEN, BEARBEITEN ODER WEITERZUGEBEN.

iOS basiert auf Mac OS X. Kern des mobilen Betriebssystems, ist dementsprechend ein angepasster Darwin Kernel. Darwin OS basiert auf Unix. (Unix->BSD->NeXTStep->Darwin->Mac OS X->iOS)

Jede App läuft in ihrer eigenen Sandbox-Umgebung und hat somit keinen Zugriff auf andere Prozesse.

iOS Apps werden hauptsächlich in Objective-C geschrieben, aber auch C und C++ sind erlaubt. Nicht erlaubt, sind private Plugins und Frameworks. Jedenfalls dann, wenn eine App im Appstore veröffentlicht werden soll. Hier dürfen nur offizielle, von Apple geprüfte Erweiterungen verwendet werden.

Entwurfsmuster (auf Englisch Design Pattern), gibt es in jedem Betriebssystem. Ein Design Pattern, beschreibt eine bewährte Lösung, zu einem bekannten Problem in der Softwareentwicklung.

Ein Design Pattern in iOS, wird zB. mit dem Model-View-Controller Modell beschrieben:

Model-View-Controller ist eine Zusammensetzung verschiedener Klassen. Der Code wird auf verschiedene Ebenen getrennt. Diese Zusammensetzung, steckt auch hinter den meisten Datenbank Benutzeroberflächen, beispielsweise bei einem Online Shop.

Das View beschreibt die grafische Oberfläche der App. Hier tätigt der Nutzer eingaben, welche an den Controller weitergegeben werden und dort verarbeitet werden. Der Controller teilt die, vom Nutzer über das View getätigten Änderungen, an das Model weiter. Das Model wiederum, besitzt eine Anbindung an die Datenbank und bearbeitet hier die zu verändernden Informationen.

Damit das View, Informationen anzeigen kann, holt es sich die benötigten Daten über das Model, direkt aus der Datenbank. Falls sich Änderungen in der Datenbank ergeben, die nicht über den Controller gemeldet werden, sendet das Model Änderungsmeldungen direkt an das View.

Dieses Modell und ein Vergleich zu Android, wird mittels der folgenden Grafik anschaulich dargestellt:

Design Patterns in iOS: Model-View-Controller

 

Design Patterns in Android: Activities

Es gibt einige Vorteile des Model-View-Controller Modells. Beispielsweise ist die Anwendungslogik von den dazugehörigen Darstellungen und Benutzerinteraktionen klar getrennt. Im Englischen wird das auch „Separation of Concern“ genannt.

Auf Grund dessen, wird bei einem flexiblen Programmdesign, eine reduzierte Gesamtkomplexität gewährleistet.

Ein Nachteil wäre ein gewisser Mehraufwand beim Einsatz von MVC in kleineren Anwendungen.

 

Zurück zur Architektur von iOS:

iOS ist wie Android, in verschiedene Abstraktionsebenen aufgeteilt. Die oberste Ebene, ist am weitesten von der Hardware entfernt.