This roadmap describes areas to explore before 1.0. It is directional rather than a delivery promise; real-world UIKit and SnapKit feedback determines priority.
- Preserve progressive adoption in existing UIKit/SnapKit projects.
- Keep the core Package dependency-free.
- Do not create layout-only container UIViews.
- Continue emitting native Auto Layout constraints.
- Keep behavior understandable under Instruments and Xcode's constraint debugger.
- Row / Column
- HStack / VStack aliases
- ZStack / Spacer
- Padding and dimension modifiers
- Expansion and equal-size distribution
- Safe Area and custom layout targets
- LayoutHandle lifecycle
- Conditional and collection Result Builder support
- SnapKit code-size and performance comparisons
- Document a recommended layout-state transition pattern.
- Explore constraint handles for targeted constant and priority updates.
- Add examples for UIView constraint animations.
- Define reinstall and replacement behavior for responsive layouts.
- Preserve business UIViews while replacing layout constraints.
StructuredLayout does not plan to reproduce SwiftUI's full render/diff runtime. Updates should remain explicit and UIKit-native.
- Evaluate a Grid API for fixed and proportional columns.
- Explore flow/wrapping layouts for tags and chips.
- Define overflow and intrinsic-size behavior.
- Benchmark large grids against UICollectionView and UIStackView alternatives.
- Publish UITableViewCell and UICollectionViewCell examples.
- Install the layout once in init/setupUI, never on every configure call.
- Document content updates that do not reinstall constraints.
- Add reuse stress tests and scrolling measurements.
- Cover self-sizing cells and estimated dimensions.
Please open a GitHub issue with:
- the UIKit screen structure you are trying to express;
- the equivalent SnapKit code;
- the missing API or unexpected constraint behavior;
- whether the layout is static, animated, responsive, or cell-based.