Guide
uikit-demo drives glitter-uikit, the native macOS (AppKit) renderer for glitter, a Replicant-style reconciler for Clojure (well, Jolt). If you come from the web, think of glitter as the reconciler and AppKit as the DOM: hiccup goes in, real NSButtons come out.
Start here, then follow the link that matches what you're trying to do.
- Architecture: the four-layer namespace split, the registry pattern that lets each example plug into the hub without a central
casestatement, and the state/view/action data flow the whole app follows. - AppKit integration: the parts that aren't reconciled, the menu bar, the Preferences window, and how each example opens in its own cached window near the pointer.
- Dependencies: why the git pins are exactly what they are, including the jolt 0.8.0 upgrade that broke two of them in a way nothing at compile time could catch.
- Bundling a
.app: turning the project into a real macOS app bundle, and the LaunchServices error that only a Mach-O executable can satisfy. - Examples: what each of the four demo windows shows and the bug each one taught us about.
Requirements
- jolt 0.8.0 or newer
brew bundleinstalls the rest: Graphviz (renders the dataflow diagram) and ffmpeg (converts the screen recording into an inline GIF)
Running
brew bundle
jolt demo # run the app
jolt bundle # AOT-compile it into Demo.app
jolt app # open Demo.app