In an imperative UI model, the developer is responsible for explicitly managing both application state and UI synchronization.

The UI is treated as a separate entity that must be manually updated in response to state changes.

This typically involves:

Example responsibilities:

This leads to:

In essence:

State changes → developer must explicitly update UI

Declarative UI Paradigm (SwiftUI)

In a declarative UI model, the developer defines the UI as a pure function of state.

The framework (SwiftUI) is responsible for: