SwiftUI
SwiftUI is Apple’s declarative UI framework. tswift renders it without a Swift
toolchain, LLVM, or native compilation: the interpreter instantiates a View,
runs body, produces a host-neutral UIIR view tree, diffs it into a patch
stream, and a dependency-free host applies those patches to real UI.
Current status: foundational tiers + breadth shipped. The Counter slice (v1)
plus Tiers 2–5 — composition, dynamic collections, input controls, and
observation — are implemented and gated by deterministic goldens. On top of that,
the C1–C7 breadth batches widened the surface: universal text/styling
modifiers, layout arguments, structural containers (Group/Divider/
ScrollView), decoration (border/shadow/clipShape), content views
(Label/Image/ProgressView), lazy stacks & grids, Form, and control
styling — each landed in all three appliers (runtime, web, iOS) with goldens.
Async (Tier 6), GeometryReader (Tier 7), and navigation (Tier 8) are not
started.
Legend: ✅ Implemented · 🟡 Partial · ⬜ Missing · 🚫 Out of scope.
The surface count below tracks individual API members across the iOS SDK
SwiftUI interface — it is much lower than the tier roadmap suggests because
each shipped view exposes many initializers and modifiers we don’t need yet.
The functional coverage — enough to render and interact with real view
hierarchies — is further along, as the tiers below show. Generated by
python3 tools/framework-inventory/coverage.py --framework swiftui --emit-json.
0 implemented · 112 partial · 590 missing (702 total)
View (468)
accentColorfuncMissingaccessibilityfuncMissingaccessibilityActionfuncMissingaccessibilityActionsfuncMissingaccessibilityActivationPointfuncMissingaccessibilityAddTraitsfuncMissingaccessibilityAdjustableActionfuncMissingaccessibilityChartDescriptorfuncMissingaccessibilityChildrenfuncMissingaccessibilityCustomContentfuncMissingaccessibilityDefaultFocusfuncMissingaccessibilityDirectTouchfuncMissingaccessibilityDragPointfuncMissingaccessibilityDropPointfuncMissingaccessibilityElementfuncMissingaccessibilityFocusedfuncMissingaccessibilityHeadingfuncMissingaccessibilityHiddenfuncMissingaccessibilityHintfuncPartialaccessibilityIdentifierfuncPartialaccessibilityIgnoresInvertColorsfuncMissingaccessibilityInputLabelsfuncMissingaccessibilityLabelfuncPartialaccessibilityLabeledPairfuncMissingaccessibilityLinkedGroupfuncMissingaccessibilityQuickActionfuncMissingaccessibilityRemoveTraitsfuncMissingaccessibilityRepresentationfuncMissingaccessibilityRespondsToUserInteractionfuncMissingaccessibilityRotorfuncMissingaccessibilityRotorEntryfuncMissingaccessibilityScrollActionfuncMissingaccessibilityScrollStatusfuncMissingaccessibilityShowsLargeContentViewerfuncMissingaccessibilitySortPriorityfuncMissingaccessibilityTextContentTypefuncMissingaccessibilityValuefuncPartialaccessibilityZoomActionfuncMissingactionSheetfuncMissingalertfuncMissingalignmentGuidefuncMissingallowedDynamicRangefuncMissingallowsHitTestingfuncMissingallowsTighteningfuncMissingallowsWindowActivationEventsfuncMissingalternatingRowBackgroundsfuncMissinganchorPreferencefuncMissinganimationfuncPartialaspectRatiofuncPartialassistiveAccessNavigationIconfuncMissingattributedTextFormattingDefinitionfuncMissingautocapitalizationfuncMissingautocorrectionDisabledfuncMissingbackgroundfuncPartialbackgroundExtensionEffectfuncMissingbackgroundPreferenceValuefuncMissingbackgroundStylefuncMissingbadgefuncMissingbadgeProminencefuncMissingbaselineOffsetfuncMissingblendModefuncMissingblurfuncMissingboldfuncPartialborderfuncPartialbrightnessfuncMissingbuttonBorderShapefuncMissingbuttonRepeatBehaviorfuncMissingbuttonSizingfuncMissingbuttonStylefuncPartialclipShapefuncPartialclippedfuncPartialcolorEffectfuncMissingcolorInvertfuncMissingcolorMultiplyfuncMissingcolorSchemefuncMissingcompositingGroupfuncMissingconfirmationDialogfuncMissingcontainerBackgroundfuncMissingcontainerCornerOffsetfuncMissingcontainerRelativeFramefuncMissingcontainerShapefuncMissingcontainerValuefuncMissingcontentCaptureProtectedfuncMissingcontentMarginsfuncMissingcontentShapefuncMissingcontentToolbarfuncMissingcontentTransitionfuncMissingcontextMenufuncMissingcontrastfuncMissingcontrolGroupStylefuncMissingcontrolSizefuncMissingcoordinateSpacefuncMissingcopyablefuncMissingcornerRadiusfuncPartialcuttablefuncMissingdatePickerStylefuncMissingdefaultAdaptableTabBarPlacementfuncMissingdefaultAppStoragefuncMissingdefaultFocusfuncMissingdefaultHoverEffectfuncMissingdefaultScrollAnchorfuncMissingdefaultWheelPickerItemHeightfuncMissingdefersSystemGesturesfuncMissingdeleteDisabledfuncMissingdialogIconfuncMissingdialogPreventsAppTerminationfuncMissingdialogSeverityfuncMissingdialogSuppressionTogglefuncMissingdigitalCrownAccessoryfuncMissingdigitalCrownRotationfuncMissingdisableAutocorrectionfuncMissingdisabledfuncPartialdisclosureGroupStylefuncMissingdismissalConfirmationDialogfuncMissingdistortionEffectfuncMissingdocumentBrowserContextMenufuncMissingdragConfigurationfuncMissingdragContainerfuncMissingdragContainerSelectionfuncMissingdragPreviewsFormationfuncMissingdraggablefuncMissingdrawingGroupfuncMissingdropConfigurationfuncMissingdropDestinationfuncMissingdropPreviewsFormationfuncMissingdynamicTypeSizefuncMissingedgesIgnoringSafeAreafuncMissingenvironmentfuncMissingenvironmentObjectfuncPartialequatablefuncMissingexportableToServicesfuncMissingexportsItemProvidersfuncMissingfileDialogBrowserOptionsfuncMissingfileDialogConfirmationLabelfuncMissingfileDialogCustomizationIDfuncMissingfileDialogDefaultDirectoryfuncMissingfileDialogImportsUnresolvedAliasesfuncMissingfileDialogMessagefuncMissingfileDialogURLEnabledfuncMissingfileExporterfuncMissingfileExporterFilenameLabelfuncMissingfileImporterfuncMissingfileMoverfuncMissingfindDisabledfuncMissingfindNavigatorfuncMissingfixedSizefuncPartialflipsForRightToLeftLayoutDirectionfuncMissingfocusEffectDisabledfuncMissingfocusScopefuncMissingfocusSectionfuncMissingfocusablefuncMissingfocusedfuncMissingfocusedObjectfuncMissingfocusedSceneObjectfuncMissingfocusedSceneValuefuncMissingfocusedValuefuncMissingfontfuncPartialfontDesignfuncMissingfontWeightfuncPartialfontWidthfuncMissingforegroundColorfuncPartialforegroundStylefuncPartialformStylefuncMissingframefuncPartialfullScreenCoverfuncMissinggaugeStylefuncMissinggeometryGroupfuncMissinggesturefuncPartialglassEffectfuncMissingglassEffectIDfuncMissingglassEffectTransitionfuncMissingglassEffectUnionfuncMissinggrayscalefuncMissinggridCellAnchorfuncMissinggridCellColumnsfuncMissinggridCellUnsizedAxesfuncMissinggridColumnAlignmentfuncMissinggroupBoxStylefuncMissinghandGestureShortcutfuncMissinghandlesExternalEventsfuncMissingheaderProminencefuncMissinghelpfuncMissinghiddenfuncMissinghighPriorityGesturefuncMissinghorizontalRadioGroupLayoutfuncMissinghoverEffectfuncMissinghoverEffectDisabledfuncMissinghoverEffectGroupfuncMissinghueRotationfuncMissingidfuncMissingignoresSafeAreafuncMissingimageScalefuncMissingimmersiveEnvironmentPickerfuncMissingimportableFromServicesfuncMissingimportsItemProvidersfuncMissingindexViewStylefuncMissinginspectorfuncMissinginspectorColumnWidthfuncMissinginteractionActivityTrackingTagfuncMissinginteractiveDismissDisabledfuncMissinginvalidatableContentfuncMissingitalicfuncPartialitemProviderfuncMissingkerningfuncMissingkeyboardShortcutfuncMissingkeyboardTypefuncMissingkeyframeAnimatorfuncMissinglabelIconToTitleSpacingfuncMissinglabelReservedIconWidthfuncMissinglabelStylefuncMissinglabeledContentStylefuncMissinglabelsHiddenfuncMissinglabelsVisibilityfuncMissinglayerEffectfuncMissinglayoutDirectionBehaviorfuncMissinglayoutPriorityfuncPartiallayoutValuefuncMissinglineHeightfuncMissinglineLimitfuncPartiallineSpacingfuncMissinglistItemTintfuncMissinglistRowBackgroundfuncMissinglistRowHoverEffectfuncMissinglistRowHoverEffectDisabledfuncMissinglistRowInsetsfuncMissinglistRowPlatterColorfuncMissinglistRowSeparatorfuncMissinglistRowSeparatorTintfuncMissinglistRowSpacingfuncMissinglistSectionIndexVisibilityfuncMissinglistSectionMarginsfuncMissinglistSectionSeparatorfuncMissinglistSectionSeparatorTintfuncMissinglistSectionSpacingfuncMissinglistStylefuncPartialluminanceToAlphafuncMissingmaskfuncMissingmatchedGeometryEffectfuncMissingmatchedTransitionSourcefuncMissingmaterialActiveAppearancefuncMissingmenuActionDismissBehaviorfuncMissingmenuButtonStylefuncMissingmenuIndicatorfuncMissingmenuOrderfuncMissingmenuStylefuncMissingminimumScaleFactorfuncMissingmodifierfuncMissingmodifierKeyAlternatefuncMissingmonospacedfuncMissingmonospacedDigitfuncMissingmoveDisabledfuncMissingmultilineTextAlignmentfuncPartialnavigationBarBackButtonHiddenfuncMissingnavigationBarHiddenfuncMissingnavigationBarItemsfuncMissingnavigationBarTitlefuncMissingnavigationBarTitleDisplayModefuncMissingnavigationDestinationfuncPartialnavigationDocumentfuncMissingnavigationLinkIndicatorVisibilityfuncMissingnavigationSplitViewColumnWidthfuncMissingnavigationSplitViewStylefuncMissingnavigationSubtitlefuncMissingnavigationTitlefuncPartialnavigationTransitionfuncMissingnavigationViewStylefuncMissingoffsetfuncPartialonAppearfuncPartialonChangefuncPartialonCommandfuncMissingonContinueUserActivityfuncMissingonContinuousHoverfuncMissingonCopyCommandfuncMissingonCutCommandfuncMissingonDeleteCommandfuncMissingonDisappearfuncPartialonDragfuncMissingonDragSessionUpdatedfuncMissingonDropfuncMissingonDropSessionUpdatedfuncMissingonExitCommandfuncMissingonGeometryChangefuncMissingonHoverfuncMissingonInteractiveResizeChangefuncMissingonKeyPressfuncMissingonLongPressGesturefuncPartialonLongTouchGesturefuncMissingonModifierKeysChangedfuncMissingonMoveCommandfuncMissingonOpenURLfuncMissingonPasteCommandfuncMissingonPencilDoubleTapfuncMissingonPencilSqueezefuncMissingonPlayPauseCommandfuncMissingonPreferenceChangefuncMissingonReceivefuncMissingonScrollGeometryChangefuncMissingonScrollPhaseChangefuncMissingonScrollTargetVisibilityChangefuncMissingonScrollVisibilityChangefuncMissingonSubmitfuncPartialonTapGesturefuncPartialonVolumeViewpointChangefuncMissingonWorldRecenterfuncMissingopacityfuncPartialornamentfuncMissingoverlayfuncPartialoverlayPreferenceValuefuncMissingpaddingfuncPartialpageCommandfuncMissingpaletteSelectionEffectfuncMissingpasteDestinationfuncMissingpersistentSystemOverlaysfuncMissingphaseAnimatorfuncMissingpickerStylefuncPartialpointerVisibilityfuncMissingpopoverfuncMissingpositionfuncMissingpreferencefuncMissingpreferredColorSchemefuncMissingprefersDefaultFocusfuncMissingpresentationBackgroundfuncMissingpresentationBackgroundInteractionfuncMissingpresentationCompactAdaptationfuncMissingpresentationContentInteractionfuncMissingpresentationCornerRadiusfuncMissingpresentationDetentsfuncMissingpresentationDragIndicatorfuncMissingpresentationPreventsAppTerminationfuncMissingpresentationSizingfuncMissingpresentedWindowStylefuncMissingpresentedWindowToolbarStylefuncMissingpreviewContextfuncMissingpreviewDevicefuncMissingpreviewDisplayNamefuncMissingpreviewInterfaceOrientationfuncMissingpreviewLayoutfuncMissingprivacySensitivefuncMissingprogressViewStylefuncMissingprojectionEffectfuncMissingredactedfuncMissingrefreshablefuncMissingrenameActionfuncMissingreplaceDisabledfuncMissingrotation3DEffectfuncMissingrotationEffectfuncMissingsafeAreaBarfuncMissingsafeAreaInsetfuncMissingsafeAreaPaddingfuncMissingsaturationfuncMissingscaleEffectfuncMissingscaledToFillfuncPartialscaledToFitfuncPartialscenePaddingfuncMissingscrollBounceBehaviorfuncMissingscrollClipDisabledfuncMissingscrollContentBackgroundfuncMissingscrollDisabledfuncMissingscrollDismissesKeyboardfuncMissingscrollEdgeEffectHiddenfuncMissingscrollEdgeEffectStylefuncMissingscrollIndicatorsfuncMissingscrollIndicatorsFlashfuncMissingscrollInputBehaviorfuncMissingscrollPositionfuncMissingscrollTargetBehaviorfuncMissingscrollTargetLayoutfuncMissingscrollTransitionfuncMissingsearchCompletionfuncMissingsearchDictationBehaviorfuncMissingsearchFocusedfuncMissingsearchPresentationToolbarBehaviorfuncMissingsearchScopesfuncMissingsearchSelectionfuncMissingsearchSuggestionsfuncMissingsearchToolbarBehaviorfuncMissingsearchablefuncMissingsectionActionsfuncMissingsectionIndexLabelfuncMissingselectionDisabledfuncMissingsensoryFeedbackfuncMissingshadowfuncPartialsheetfuncMissingsimultaneousGesturefuncMissingsliderThumbVisibilityfuncMissingspeechAdjustedPitchfuncMissingspeechAlwaysIncludesPunctuationfuncMissingspeechAnnouncementsQueuedfuncMissingspeechSpellsOutCharactersfuncMissingspringLoadingBehaviorfuncMissingstatusBarfuncMissingstatusBarHiddenfuncMissingstrikethroughfuncPartialsubmitLabelfuncMissingsubmitScopefuncMissingsupportedVolumeViewpointsfuncMissingswipeActionsfuncMissingsymbolColorRenderingModefuncMissingsymbolEffectfuncMissingsymbolEffectsRemovedfuncMissingsymbolRenderingModefuncMissingsymbolVariableValueModefuncMissingsymbolVariantfuncMissingtabBarMinimizeBehaviorfuncMissingtabItemfuncPartialtabViewBottomAccessoryfuncMissingtabViewCustomizationfuncMissingtabViewSearchActivationfuncMissingtabViewSidebarBottomBarfuncMissingtabViewSidebarFooterfuncMissingtabViewSidebarHeaderfuncMissingtabViewStylefuncMissingtableColumnHeadersfuncMissingtableStylefuncMissingtagfuncPartialtaskfuncPartialtextCasefuncPartialtextContentTypefuncMissingtextEditorStylefuncMissingtextFieldStylefuncPartialtextInputAutocapitalizationfuncMissingtextInputCompletionfuncMissingtextInputFormattingControlVisibilityfuncMissingtextInputSuggestionsfuncMissingtextRendererfuncMissingtextScalefuncMissingtextSelectionfuncMissingtextSelectionAffinityfuncMissingtintfuncPartialtoggleStylefuncMissingtoolbarfuncMissingtoolbarBackgroundfuncMissingtoolbarBackgroundVisibilityfuncMissingtoolbarColorSchemefuncMissingtoolbarForegroundStylefuncMissingtoolbarItemHiddenfuncMissingtoolbarRolefuncMissingtoolbarTitleDisplayModefuncMissingtoolbarTitleMenufuncMissingtoolbarVisibilityfuncMissingtouchBarfuncMissingtouchBarCustomizationLabelfuncMissingtouchBarItemPresencefuncMissingtouchBarItemPrincipalfuncMissingtrackingfuncMissingtransactionfuncMissingtransformAnchorPreferencefuncMissingtransformEffectfuncMissingtransformEnvironmentfuncMissingtransformPreferencefuncMissingtransitionfuncPartialtruncationModefuncMissingtypeSelectEquivalentfuncMissingtypesettingLanguagefuncMissingunderlinefuncPartialunredactedfuncMissinguserActivityfuncMissingvisualEffectfuncMissingwindowDismissBehaviorfuncMissingwindowFullScreenBehaviorfuncMissingwindowMinimizeBehaviorfuncMissingwindowResizeAnchorfuncMissingwindowResizeBehaviorfuncMissingwindowToolbarFullScreenVisibilityfuncMissingwritingDirectionfuncMissingwritingToolsAffordanceVisibilityfuncMissingwritingToolsBehaviorfuncMissingzIndexfuncPartial
State (3)
initinitMissingprojectedValuevarMissingwrappedValuevarMissing
Text (30)
+funcMissing==funcMissingaccessibilityHeadingfuncMissingaccessibilityLabelfuncMissingaccessibilityTextContentTypefuncMissingbaselineOffsetfuncMissingboldfuncMissingcustomAttributefuncMissingencodefuncMissingfontfuncMissingfontDesignfuncMissingfontWeightfuncMissingfontWidthfuncMissingforegroundColorfuncMissingforegroundStylefuncMissinginitinitPartialitalicfuncMissingkerningfuncMissingmonospacedfuncMissingmonospacedDigitfuncMissingspeechAdjustedPitchfuncMissingspeechAlwaysIncludesPunctuationfuncMissingspeechAnnouncementsQueuedfuncMissingspeechSpellsOutCharactersfuncMissingstrikethroughfuncMissingtextScalefuncMissingtextVariantfuncMissingtrackingfuncMissingtypesettingLanguagefuncMissingunderlinefuncMissing
Button (2)
bodyvarMissinginitinitPartial
VStack (1)
initinitPartial
HStack (1)
initinitPartial
Spacer (2)
initinitPartialminLengthvarMissing
Toggle (2)
bodyvarMissinginitinitPartial
ZStack (1)
initinitPartial
Color (35)
==funcMissingaccentColorvarMissinganimatableDatavarMissingblackletMissingblueletMissingbrownletMissingcgColorvarMissingclearletMissingcyanletMissingdescriptionvarMissingencodefuncMissingexposureAdjustfuncMissinggradientvarMissinggrayletMissinggreenletMissinghashfuncMissinghashValuevarMissingheadroomfuncMissingindigoletMissinginitinitMissingmintletMissingmixfuncMissingopacityfuncMissingorangeletMissingpinkletMissingprimaryletMissingpurpleletMissingredletMissingresolvefuncMissingresolveHDRfuncMissingsecondaryletMissingtealletMissingtransferRepresentationvarMissingwhiteletMissingyellowletMissing
Circle (6)
cornersfuncMissinginitinitPartialinsetfuncMissinglayoutDirectionBehaviorvarMissingpathfuncMissingsizeThatFitsfuncMissing
RoundedRectangle (8)
animatableDatavarMissingcornerSizevarMissingcornersfuncMissinginitinitPartialinsetfuncMissinglayoutDirectionBehaviorvarMissingpathfuncMissingstylevarMissing
Rectangle (5)
cornersfuncMissinginitinitPartialinsetfuncMissinglayoutDirectionBehaviorvarMissingpathfuncMissing
Capsule (6)
cornersfuncMissinginitinitPartialinsetfuncMissinglayoutDirectionBehaviorvarMissingpathfuncMissingstylevarMissing
Ellipse (4)
initinitPartialinsetfuncMissinglayoutDirectionBehaviorvarMissingpathfuncMissing
ForEach (4)
bodyvarMissingcontentvarMissingdatavarMissinginitinitPartial
List (2)
bodyvarMissinginitinitPartial
Section (1)
initinitPartial
Binding (13)
animationfuncMissingconstantfuncMissingendIndexvarMissingformIndexfuncMissingidvarMissingindexfuncMissingindicesvarMissinginitinitMissingprojectedValuevarMissingstartIndexvarMissingsubscriptsubscriptMissingtransactionfuncMissingwrappedValuevarMissing
TextField (2)
bodyvarMissinginitinitPartial
SecureField (2)
bodyvarMissinginitinitPartial
Slider (2)
bodyvarMissinginitinitPartial
Stepper (2)
bodyvarMissinginitinitPartial
Picker (2)
bodyvarMissinginitinitPartial
StateObject (3)
initinitMissingprojectedValuevarMissingwrappedValuevarMissing
ObservedObject (3)
initinitMissingprojectedValuevarMissingwrappedValuevarMissing
EnvironmentObject (3)
initinitMissingprojectedValuevarMissingwrappedValuevarMissing
Environment (2)
initinitMissingwrappedValuevarMissing
ProgressView (2)
bodyvarMissinginitinitPartial
AsyncImage (2)
bodyvarMissinginitinitPartial
ScrollView (5)
axesvarMissingbodyvarMissingcontentvarMissinginitinitPartialshowsIndicatorsvarMissing
LazyVStack (1)
initinitPartial
LazyHStack (1)
initinitPartial
Grid (1)
initinitPartial
LazyVGrid (1)
initinitPartial
LazyHGrid (1)
initinitPartial
GeometryReader (2)
contentvarMissinginitinitMissing
GeometryProxy (6)
boundsfuncMissingcontainerCornerInsetsvarMissingframefuncMissingsafeAreaInsetsvarMissingsizevarMissingsubscriptsubscriptMissing
ViewThatFits (1)
initinitMissing
NavigationStack (2)
bodyvarMissinginitinitPartial
NavigationLink (3)
bodyvarMissinginitinitPartialisDetailLinkfuncMissing
NavigationSplitView (2)
bodyvarMissinginitinitMissing
NavigationPath (7)
==funcMissingappendfuncPartialcodablevarMissingcountvarPartialinitinitPartialisEmptyvarPartialremoveLastfuncPartial
TabView (2)
bodyvarMissinginitinitPartial
Form (2)
bodyvarMissinginitinitPartial
Group (2)
bodyvarMissinginitinitPartial
Animation (32)
==funcMissinganimatefuncMissingbasevarMissingbouncyfuncPartialcustomMirrorvarMissingdebugDescriptionvarMissingdefaultletMissingdelayfuncPartialdescriptionvarMissingeaseInfuncPartialeaseInOutfuncPartialeaseOutfuncPartialhashfuncMissinghashValuevarMissinginitinitMissinginteractiveSpringfuncMissinginterpolatingSpringfuncMissinglinearfuncPartiallogicallyCompletefuncMissingrepeatCountfuncPartialrepeatForeverfuncPartialshouldMergefuncMissingsmoothfuncPartialsnappyfuncPartialspeedfuncPartialspringfuncPartialsystemOverlayAppearancevarMissingsystemOverlayDelayedDisappearancevarMissingsystemOverlayDisappearancevarMissingsystemOverlayDisappearanceDelayvarMissingtimingCurvefuncMissingvelocityfuncMissing
AnyTransition (12)
animationfuncMissingasymmetricfuncPartialcombinedfuncPartialidentityvarPartialinitinitMissingmodifierfuncMissingmovefuncPartialoffsetfuncPartialopacityletPartialpushfuncPartialscalefuncPartialslidevarPartial
No members match your filters.
How it renders
flowchart LR
src["Swift View\nsource"]
interp["Interpreter\n+ tswift-swiftui\nbuiltins"]
tree["Render-node tree\n(owns @State,\nkeyed identity)"]
uiir["UIIR\nview tree"]
diff["Rust diff\nengine"]
host["Host applier\n(web + iOS)"]
src --> interp --> tree --> uiir --> diff --> host
host -- "events" --> interp
style src fill:#1a0d2e,stroke:#a855f7,color:#eeeef5
style host fill:#0d2e1a,stroke:#34c759,color:#eeeef5
The same patch protocol drives two hosts: the web <swiftui-canvas> custom
element, and a native iOS SwiftUI applier used for screenshot verification.
Tier roadmap
| Tier | Mechanism | Status |
|---|---|---|
| v1 | Counter slice — VStack/Text/Button, @State, modifiers, full render→diff→patch loop |
✅ |
| Tier 2 | View composition & demo tabs (Greeting/Stack/Profile) — HStack/ZStack/Spacer, shapes, Toggle |
✅ |
| Tier 3 | Dynamic collections & identity — List/Section/ForEach, keyed diff with move/insert/remove |
✅ |
| Tier 4 | Bindings & input controls — TextField/SecureField/Slider/Stepper/Picker |
✅ |
| Tier 5 | Observation & shared model — ObservableObject/@Published/@StateObject/@EnvironmentObject |
🟡 |
| Tier 6 | Task & async push channel |
⬜ |
| Tier 7 | Layout & geometry — GeometryReader, alignment |
⬜ |
| Tier 8 | Navigation & presentation — NavigationStack, sheets |
⬜ |
Tier 5 is partial: observation is implemented; @Environment(\.keyPath) is the
one deferred item.
Verification
Every slice is checked by an autonomous loop — no Apple toolchain required to gate a change.
| Layer | What it checks | Status |
|---|---|---|
| A — Surface | API inventory vs the iOS SDK SwiftUI interface | ✅ |
| B — UIIR goldens | initial render produces the exact expected view tree | ✅ |
| C — Interaction goldens | events produce the exact expected patch stream | ✅ |
| D — Screenshot diff | render UIIR to real SwiftUI (iOS) and the web host, screenshot both | 🟡 |
Layer D runs both halves locally today: a native UiirRenderer SwiftPM
package builds real SwiftUI from the UIIR fixtures and snapshots them, and a
Playwright harness drives the <swiftui-canvas> element through the same
mount → applyPatches loop. Both capture a device × appearance matrix
(iPhone + iPad, light + dark), so token/CSS drift between the web and native
renderers is surfaced side by side. Perceptual-diff tooling and a CI job are the
remaining pieces.
What you can run now
- SwiftUI
Views built from the implemented views, controls, and shapes above @State-driven interaction (the Counter and demo tabs)ObservableObject/@StateObjectshared model state- Dynamic
List/ForEachwith add/remove/reorder
Try it in the Playground →