https://github.com/lkzhao/uicomponent
A modern, declarative approach to building user interfaces with UIKit.
https://github.com/lkzhao/uicomponent
declarative-ui swiftui ui uicollectionview uikit unidirectional-data-flow
Last synced: 24 days ago
JSON representation
A modern, declarative approach to building user interfaces with UIKit.
- Host: GitHub
- URL: https://github.com/lkzhao/uicomponent
- Owner: lkzhao
- License: mit
- Created: 2019-01-25T02:08:32.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2026-05-07T00:38:34.000Z (26 days ago)
- Last Synced: 2026-05-07T02:11:28.906Z (26 days ago)
- Topics: declarative-ui, swiftui, ui, uicollectionview, uikit, unidirectional-data-flow
- Language: Swift
- Homepage:
- Size: 8.37 MB
- Stars: 421
- Watchers: 14
- Forks: 35
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# UIComponent
UIComponent is a declarative and modern framework to build user interfaces with UIKit. With the power of `@resultBuilder` and `@dynamicMemberLookup`, your UIKit interface can be easily constructed with a syntax similar to SwiftUI. UIComponent also embraces unidirectional data flow instead of two way binding, and offers great performance and optimization opportunities.
In version 5.0, UIComponent can also easily render SwiftUI View alongside UIViews and other components.
## Documentation
### Getting Started
#### The best way to learn the project is to download or clone the repo, then open the `UIComponentExample.xcodeproj` and run it on your mac or an iPad simulator!
- [Installation](https://lkzhao.com/UIComponent/documentation/uicomponent/installation)
- [Component Basics](https://lkzhao.com/UIComponent/documentation/uicomponent/componentbasics)
- [Custom View](https://lkzhao.com/UIComponent/documentation/uicomponent/customview)
- [State Management](https://lkzhao.com/UIComponent/documentation/uicomponent/statemanagement)
### Advanced Topics
- [Custom Component](https://lkzhao.com/UIComponent/documentation/uicomponent/customcomponent)
- [Animation](https://lkzhao.com/UIComponent/documentation/uicomponent/animation)
- [Modifier List](https://lkzhao.com/UIComponent/documentation/uicomponent/component#instance-methods)
- [Internal Architecture](https://lkzhao.com/UIComponent/documentation/uicomponent/architecture)
- [Compare to SwiftUI](https://lkzhao.com/UIComponent/documentation/uicomponent/swiftuicompare)
- [Full API Reference](https://lkzhao.com/UIComponent/documentation/uicomponent)
- [2.0 Changes](https://lkzhao.com/UIComponent/documentation/uicomponent/version2migrationguide)
- [4.0 Changes](https://lkzhao.com/UIComponent/documentation/uicomponent/version4migrationguide)
- [5.0 Changes](https://lkzhao.com/UIComponent/documentation/uicomponent/version5migrationguide)
> Checkout the [UIComponentExample/Chapters](https://github.com/lkzhao/UIComponent/tree/main/UIComponentExample/Chapters) folder for code examples.