Deklarative Programmierung mit SwiftUI
14.10.2021, 08:10 Uhr
Deklarativ vs. Imperativ
Mit SwiftUI haben Storyboard und Interfacebuilder ausgedient.
Auf der World Wide Developers Conference 2019 wurde SwiftUI, eine neue Möglichkeit, Apps mit grafischen Oberflächen für alle Apple-Geräte zu entwickeln vorgestellt. Bis Dato war es erforderlich, für jedes Device eine eigene Bibliothek zu verwenden, um eine entsprechende Anwendung zu erstellen. UIKit for iOS, tvOS für Apple TV, WatchKit für watchOS und AppKit für macOS. Nicht nur der Umstand, dass man sich unter Umständen Spezialwissen aneignen musste, auch die Problematik, dass für jedes Endgerät eine andere Bibliothek verwendet werden muss macht die Arbeit mit diesen Werkzeugen für den Entwickler aufwendig. Diese und weitere Gründe, veranlassten Apple dazu, einen neuen Weg bei der Entwicklung von Apps mit Oberflächen zu gehen. Der neue Weg eine Oberfläche für eine Anwendung zu entwickeln, stellt einen Paradigmenwechsel dar. Satt imperativ wird mit SwiftUI jetzt deklarativ programmiert. Fragt sich, was das eine und was das andere bedeutet?
Imperative Programmierung
Bei der imperativen Programmierung besteht ein Programm aus einer vorgegeben Folge von Anweisungen. Es werden Anweisungen verwendet, die denn Status eines Programms verändern. Bei diesem Schema wird also beschrieben, wie ein Programm funktionieren soll. Es gibt also eine bestimmte Menge an Anweisungen, die vorgeben, was passiert wenn eine Schaltfläche betätigt wird oder wie ein Ereignishändler reagiert, wenn er ausgelöst wird. Das Problem mit UI-Frameworks, die für diese Methode der Entwicklung gedacht sind ist, dass der Status eines Elements im Auge behalten werden muss. Denken Sie beispielsweise an einen Lichtschalter. Der kann zwei Zustände (Ein und Aus) annehmen. Je mehr Lichtschalter es aber gibt, desto mehr Zustände müssen verwaltet werden.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar