Milano SDK Specifications

Milano is a client-only, design-system-agnostic Document-Driven UI (DDUI) framework for SwiftUI and Compose. Milano targets UI toolkits, not operating systems: it is usable wherever SwiftUI runs (iPhone, iPad, macOS, watchOS) and wherever Compose runs (Android, desktop). The first sample apps target iOS and Android.

Milano consumes UI documents and defines the mechanics of document-driven UI: the document model, its expression language, its state and action models, and the runtimes that materialize documents into native UI (SwiftUI, Compose). The consumer defines everything else: the component vocabulary and its visual rendering.

Milano is not server-driven UI (it never talks to a server), not a SaaS (there is nothing hosted, nothing to sign up for), and not a design system (it draws nothing).

Version 0.1 targets two capabilities: banners and interstitials, and simple document-defined forms.

Try the contract in the browser: the Milano Playground validates vocabularies and documents against these schemas and the reference checker, live.

Specifications

# Spec Status
00 Foundations Beta
01 Document model Beta
02 Vocabulary schema Beta
03 Expression language Beta
04 State & actions Beta
05 Conformance suite Beta
06 Runtime API Beta

Worked examples for both v0.1 capabilities, with their conformance vectors: Examples.

Spec process

Every spec moves through three statuses:

  1. Beta: the content is being shaped. Anything may change, without trace.
  2. Review: the content is complete and precise. Changes require recording what changed and why in the spec’s history.
  3. Stable: the spec is normative. Runtimes and conformance vectors may rely on it; changes happen only through an amendment that bumps the contract version.

This site uses Just the Docs, a documentation theme for Jekyll.