iOS/iPadOS 13

Apple bringt mit SwiftUI neue Entwicklungsmöglichkeiten

15.07.2019
Von   
Mark Zimmermann leitet hauptberuflich das Center of Excellence (CoE mobile) zur mobilen Lösungsentwicklung bei der EnBW Energie Baden-Württemberg AG in Karlsruhe. Er weist mehrere Jahre Erfahrung in den Bereichen Mobile Sicherheit, Mobile Lösungserstellung, Digitalisierung und Wearables auf. Der Autor versteht es, seine Themen aus unterschiedlichsten Blickwinkeln für unternehmensspezifische Herausforderungen darzustellen. Neben seiner hauptberuflichen Tätigkeiten ist er Autor zahlreicher Artikel in Fachmagazinen.
SwiftUI ist eine innovative, außergewöhnlich einfache Möglichkeit, Benutzeroberflächen auf allen Apple-Plattformen mit der Leistungsfähigkeit von Swift zu erstellen. Die Lösung ist damit der eigentliche Game Changer der WWDC.

Was ist SwiftUI

Apple hat zur WWDC 2019 - völlig überraschend - SwiftUI eingeführt. Dank der deklarativen Syntax von SwiftUI soll sich die Benutzeroberfläche von Apps damit leichter erstellen und bearbeiten lassen. SwiftUI eliminiert dabei Controller und tritt aus dem bisher favorisierten Design-Pattern Cocoa MVC (Model View Controller) aus. Mit SwiftUI entfällt auch der Interface Builder in Gänze. Der bisher bekannte XML-Code des Interface Builders wird nun vollständig durch Swift Code ersetzt. Als Ergebnis lässt sich der erzeugte und genutzte Code hinterher einfacher lesen und nachvollziehen. SwiftUI bringt dem Entwickler automatisch auch eine Unterstützung für Dynamic Font Type, Dark Mode, Lokalisierung (Sprache) und Barrierefreiheit.

Mit SwiftUI will Apple die Arbeit von App-Entwicklern deutlich erleichtern.
Mit SwiftUI will Apple die Arbeit von App-Entwicklern deutlich erleichtern.
Foto: Apple

Der übersichtlichere Code spart dabei Zeit, sowohl bei der eigentlichen Entwicklung als auch bei der Fehlersuche. Die Erstellung einer modernen UI ist im Vergleich zum bisherigen Vorgehen in einem Bruchteil der Zeit möglich. Viele hundert Zeilen Code werden nun in einer einstellige Anzahl von Codezeilen möglich.

Damit hören die Möglichkeiten von SwiftUI aber nicht auf, das Potential von SwiftUI ist wohl noch größer. Dies wird deutlich, wenn man sich den Twitter-Post von @johnsundell anschaut. Hier wird anschaulich dokumentiert, wie 100 Zeilen SwiftUI dafür sorgen, dass sich das Frontend einer App komplett per JSON, also aus Backend-Daten, aufbauen lässt.

Zusätzlich steht für das so erstellte Artefakt automatisch eine Preview zur Verfügung. Diese ist dabei vollkommen synchron umgesetzt, das bedeutet, Änderungen im Code werden automatisch kompiliert und in der Preview dargestellt. Die Preview zeigt aber nicht nur den Ist-Zustand in Echtzeit dar. Es können auch mehrere Ansichten der App unter diversen (Geräte-)Konfigurationen eingesehen werden.

Auch der neue Darkmode wird automatisch mit dargestellt. Verbindet der Entwickler ein physikalisch vorliegendes Gerät, greift die Vorschau ebenfalls (synchron) mit diesem. Das Verhalten einer App ist den Entwicklern dabei stetig präsent. Zusätzlich wurde eine Vielzahl von Komponenten (plattformübergreifend, Xcode, Toolchains) entwickelt, um Entwickler in Ihrer Arbeit zu unterstützen.

Leider werden wir noch einige Zeit auf Apps mit SwiftUI warten müssen, denn dies ist nur für Apps verfügbar, die mindestens iOS 13 als Betriebssystem adressieren. Auf iOS 12 und älteren Versionen lässt sich eine App mit SwiftUI nicht ausführen. Es gibt allerdings schon Entwickler, die SwiftUI nutzen wollen, selbst wenn ihre App dafür ihren Support für iOS 12 ab Anfang 2020 aufgeben muss. Wir dürfen gespannt sein.

Tiefergehende Informationen zum Framework stehen auf der Apple-Developer-Homepage zum Nachlesen bereit.

Fazit

Es wird noch Jahre dauern, bis aktuell bestehende Projekte auf SwiftUI umgestellt werden. Denn solange Bestandsprojekte eine Bereitstellung für iOS-Systeme vor iOS 13 gewährleisten müssen, können die neuen Möglichkeiten nicht verwendet werden. Außerdem ist die Überführung in SwiftUI für viele Apps mit einer Neuentwicklung verbunden.

Vielleicht ist es jedoch gar nicht so schlimm, wenn der produktive Einsatz von SwiftUI noch etwas auf sich warten lässt. So ist es - ähnlich wie bei der Entwicklung von Swift 1 auf Swift 5 zu beobachten war - sehr wahrscheinlich, dass sich auch die SwiftUI-Implementierung, die verwendeten APIs und die zugehörigen Tools hier schnell und häufig noch ändern werden. Die Zeichen der Zeit werfen aber ihren Schatten voraus: Langfristig wird kein Weg an SwiftUI vorbei führen.