BOB 2026

SwiftUI is functional
13.03.2026 , Vorträge 2
Sprache: English

Scaling modern user interfaces is hard. GUI libraries simplify getting complex interfaces on the screen, but keeping UI state in sync with application state is a challenge, exacerbated by asynchronous state changes (e.g., network activity). Avoiding callback hell, while keeping the application modular, avoiding UI glitches, and preventing data loss can quickly turn into a nightmare.

This led to a plethora of software architectures, starting with the model-view-controller (MVC) and the model-view-update (MVU) architecture, exhibiting an object-oriented and a functional approach, respectively, with complementary strengths. MVC facilitates modularity, but handling of state and view updates is complex. Conversely, MVU simplifies state handling, but suffers from a lack of modularity.

Modern approaches (e.g., React, Flux & reacl-c) work towards reconciling these opposites. In particular, SwiftUI is a declarative UI framework leveraging functional programming in Swift, including immutable data types and embedded domain-specific languages. It is focused on native apps and has been shown to scale from apps for smart watches to desktop applications, providing a declarative MVU approach while retaining excellent modularity.

I will explain SwiftUI’s software architecture together with its core components, including the observation framework, bindings, the view protocol, and the render tree. In this talk, I will focus on the underlying concepts and not on a particular implementation.


3-5 Aspekte zum Mitnehmen:
  • Foundations of software architectures for GUI applications, including MVC and MVU, and their practical problems.
  • A sketch of how modern frameworks combine lessons from functional and objective-oriented programming to reconcile the opposing properties of MVC and MVU.
  • The architecture of SwiftUI and how it leverages concepts from functional programming.
  • An overview of the building blocks of SwiftUI (observation framework, bindings, the view protocol, and the render tree) and an illustration of how they work. (The latter will be fairly light due to the time constraint, but I will provide pointers to further material, for those interested.)
  • I will provide a simple sample app as a running example.

Manuel M T Chakravarty is a researcher and software developer with interests in programming languages, cryptography, and programming environments. He developed the interactive development environment Haskell for Mac — one of the first Swift apps on the Mac App Store. He is now working on the successor of Haskell for Mac, which leverages SwiftUI for cross-platform development. His current research work lies at the intersection of programming languages and cryptography with applications to open blockchains. He has also published extensively on programming languages, compilers, and high-performance computing. He contributed to both the design and implementation of the Haskell programming language (most notably, type families, associated types, and the foreign function interface) as well as several Haskell tools and open source libraries. He is currently a functional programming expert at Tweag and a researcher & architect of smart contract technology at IOG. Before that he was an Associate Professor at UNSW Sydney.