Du wirst als Einsteiger von einer großen Flut an Möglichkeiten erfasst. Im iOS-Universum gibt es viel zu entdecken. Du wirst mit neuen Begriffen, Bibliotheken und Klassen konfrontiert. Schwer, da den roten Faden zu finden. Ich zeige Dir, welche 7 Bestandteile und Konzepte einer iOS-App Du unbedingt kennen solltest.

1. CocoaTouch

Eine Grundvoraussetzung für die Entwicklung von iOS-Apps ist das umfassende Framework von Apple. Zusammengefasst ist es das CocoaTouch-Framework. Es besteht aus vielen einzelnen Elementen, Klassen und Modulen. Alle Kernfunktionen die iOS bietet, sind hier enthalten. Dazu gehören natürlich die sichtbaren Elemente wie Buttons, Label, Textfelder und so weiter. Darüber hinaus umfasst es noch viel mehr.

2. Die weiteren Frameworks

Während es viel Basisfunktionalität gibt, stehen auch noch weitere Frameworks zur Verfügung. Die können bei Bedarf im Controller geladen bzw. importiert werden. Darin sind viele eher “unsichtbare” Schnittstellen und Klassen enthalten. Dazu gehören Klassen für die Nutzung der Sensoren, Steuerung über Gesten und vieles mehr. Ich meine hier ganz speziell Frameworks wie das MapKit, das SocialKit oder auch das StoreKit. Es sind in den einzelnen iOS-Releases von Apple immer mal wieder neue Frameworks veröffentlicht worden, vor gar nicht langer Zeit bspw. das WatchKit.

3. Model-View-Controller Pattern

Apple hat sich beim Entwurf an verschiedenen Entwurfsmustern orientiert. Das Model-View-Controller Pattern (MVC) spielt eine besondere Rolle, da es die Struktur der Apps erklärt. In einem Model wird die Logik der App oder Datensätze bereitgestellt (Resource Models). Dabei kann es natürlich viele verschiedene solcher Klassen geben. Ein Beispiel könnte in einem Taschenrechner die Logik zur Berechnung sein.

Die View-Ebene besteht ebenfalls aus Klassen. Allerdings sind View-Objekte für die Anzeige zuständig. Sie haben eines gemeinsam: Sie stammen in erster Ebene alle von der Klasse UIView ab. In View-Elementen wird keine Business Logik hinterlegt. Die gehört in das Model. Im Taschenrechner-Beispiel wären bspw. die Eingabetasten (UIButton) als View zu nennen, oder ein Label für das Ergebnis der Berechnung (UILabel).

Die Kommunikation zwischen der Model- und Viewebene findet nie direkt statt. Stattdessen verbindet der Controller die View und die Modelebene. Dazu genutzt werden speziell Outlets und Actions.

4. Outlets und Actions

Die Outlets (IBOutlet) ermöglichen den Zugriff auf View-Objekte im Controller. Es handelt sich um spezielle Variablen, die im Controller hinterlegt werden. Zur Laufzeit ist zum Beispiel ein Label oder eine Textfeld über ein Outlet ansprechbar. So kannst Du als Entwickler den Text auslesen oder ihn verändern.

Eine Action (IBAction) ist eine Methode, die im Controller aufgerufen wird wenn ein Element wie der Button angeklickt wurde. In dieser Action kann schließlich die weitere Verarbeitung der Eingaben erfolgen und auch die spätere Ausgabe des Ergebnisses erledigt werden.

5. AppDelegate

Ein zentraler Bestandteil jeder App ist der AppDelegate (Application Delegate). Im Lebenszyklus einer Applikation gibt es verschiedene Events, auf die Du als Entwickler wenig Einfluß hast. Dazu gehören der Start und das Beenden Deiner App. Trotzdem sollte eine Applikation zumindest darüber informiert werden. Und genau dies erledigt der AppDelegate über den Aufruf entsprechender Methoden (wie bspw. applicationDidFinishLaunch, applicationWillTerminate usw).

So kannst Du zum Beispiel Daten beim Start initialisieren oder aufräumen, bevor die App beendet wird. Die direkte Arbeit mit der Klasse AppDelegate ist in der Praxis nicht so häufig. Da es aber dem Verständnis hilft, solltest Du ungefähr wissen wofür Sie gebraucht wird.

6. Storyboard & Segues

Eine alte Debatte bezieht sich auf das Design von Apps. Sollte der sichtbare Teil mit den noch relativ neuen Storyboards erledigt werden? Oder doch lieber über Nibs (einzelne Interfacedesigns)? Oder komplett über den Code. Es gibt für alles entsprechende Argumente. Ich persönlich bin Fan der Storyboard-Lösung, da einfach enorm viel Zeit gespart werden kann. Es nimmt viel Arbeit bei der Entwicklung ab.

Außerdem setzt auch Apple voll auf dieses Pferd. Alles über Code kommt für mich nicht in Frage, da es extrem viel Aufwand bedeutet und in der Regel weniger wirtschaftlich ist. Bei Nibs wurde schon lange nicht mehr viel entwickelt. Ich vermute, dass auch Apple die Zukunft in Storyboards sieht und darum setze auch ich darauf.

7. AutoLayout und SizeClasses

Das AutoLayout und die SizeClasses ermöglichen es, das gleiche Storyboard für viele unterschiedliche Geräte zu optimieren. Es wird nicht mehr pixelgenau festgelegt wo welches View-Element hinterlegt werden muss und wie groß dies ist. Stattdessen wird nun eher mit relativen Angaben gearbeitet, die sich bspw. auf den Abstand zum Rand oder zum benachbarten View-Element beziehen. Das macht Interfaces enorm flexibel.

Fazit

Natürlich ist dies nur ein kleiner Auszug aus der iOS-Welt. Allerdings sind es die wichtigsten Komponenten und Begriffe, die Dir auf dem Weg durch das iOS-Universum begegnen werden.

Ein Kommentar

  • Peter Obernosterer

    2 Jahren ago

    Sehr geehrter Herr Brinkmann,
    danke für die Info.
    Wünsche noch einen schönen Tag.
    Mit einem freundlichen Gruß
    Peter Obernosterer

Schreib einen Kommentar

Your email address will not be published.