Einstieg in SwiftUI

Mit SwiftUI möchte Apple das Erstellen von Benutzeroberflächen für die eigenen Plattformen revolutionieren. Doch kann das Vorhaben tatsächlich gelingen? Und welche Abstriche müssen Apple Developer in Kauf nehmen, wenn sie auf SwiftUI setzen?

Werkzeuge  –  20 Kommentare

(Bild: Paweł Kuźniar (unter der GFDL) )

Vorbei sind die Zeiten, in denen man Views sowohl im Code als auch in Interface-Dateien getrennt voneinander erstellte und konfigurierte. View-Controller, die in der Regel den Großteil bisheriger App-Projekte ausmachen, sollen ebenfalls dank SwiftUI so gut wie ausgedient haben. Stattdessen kommen Views zum Einsatz, die Daten anhand ihres Status und ihrer Model-Informationen in geeigneter Form präsentieren.

SwiftUI bringt ein umfangreiches Set an System-Views mit, die sich in allen aktuellen Plattformen von Apple verwenden lassen. Dazu gehören unter anderem Labels, Buttons, Switches und Listen. Abhängig vom Betriebssystem, unter dem sie verwendet werden, passt sich ihr Erscheinungsbild automatisch an. Das Erstellen der Views läuft indes (von kleineren Details abgesehen) identisch ab. Ein Button wird also mit SwiftUI immer auf die gleiche Weise für macOS, iOS, iPadOS, watchOS und tvOS gebaut.

Mit SwiftUI erstellte Views basieren auf dem View-Protokoll. Das setzt zwingend die Implementierung einer sogenannten body-Property voraus. Diese enthält das Aussehen und die Funktionsweise einer View. Eine Ansicht, die ein simples "Hello world" ausgibt, lässt sich so mit folgendem Code erstellen:

struct HelloWorldView: View {
var body: some View {
Text("Hello world")
}
}

Der Typ der body-Property entspricht some View. Damit bringt man zum Ausdruck, dass diese Property selbst eine View zurückliefert, ohne dass man den exakten Typ der View angibt. Bei Text handelt es sich um einen Typ aus dem SwiftUI-Framework, der zum Erstellen von Labels dient und beim Initialisieren einen String mit dem anzuzeigenden Text erwartet.

Wie eine solche View aussieht, lässt sich direkt in Xcode 11 überprüfen. Dafür kommt ein neues Feature namens Preview zum Einsatz, das den Editor-Bereich in zwei Abschnitte aufteilt. Auf der linken Seite ist der Code zu sehen, rechts eine Vorschau der View. Um die zu erstellen, ist einmalig die Resume-Schaltfläche am oberen rechten Rand des zweiten Editor-Abschnitts zu betätigen. Xcode kompiliert daraufhin das Projekt und zeigt im Anschluss die erstellte View an (s. Abb. 1).

Die Preview zeigt eine Vorschau von mit SwiftUI erstellten Views an (Abb. 1).

Änderungen an der View werden nun unmittelbar in der Vorschauansicht übernommen. Einzige Ausnahme bilden komplexere Änderungen innerhalb der View wie das Hinzufügen von Properties. Das erfordert ein erneutes Kompilieren des Projekts, weshalb man die Preview dann mittels erneutem Klick auf die wieder erscheinende Resume-Schaltfläche händisch aktualisieren muss.

Sollte der Preview-Bereich nicht angezeigt werden, lässt er sich jederzeit über die in Xcode 11 neu eingeführten Editor Options einblenden. Dort muss die Einstellung "Canvas" aktiv sein, damit die Preview sichtbar ist. Wen sie stört, hat über diese Einstellung umgekehrt die Möglichkeit, die Preview auch vollständig auszublenden.