Kuikly
is a pure native cross-platform UI framework based on Kotlin. Utilizing Kotlin Multiplatform technology with a custom DSL, it enables developers to build UI interfaces in a simple, declarative manner that runs across multiple platforms. Currently supported platforms:
- Android
- iOS
- HarmonyOS
- Web
- Mini Programs
As a pioneer in KMP technology for cross-platform solutions, Kuikly
was initially incubated by the QQ team and further developed through collaboration with multiple Tencent teams. It aims to provide client-side developers with a "write once, run anywhere" framework that is extremely developer-friendly, dynamically flexible, and delivers high performance across all platforms
. Currently, Kuikly
has been successfully implemented in products including QQ, QQ Music, QQ Browser, and Tencent News.
- Cross-platform: Kotlin-based implementation ensuring consistent operation across multiple platforms - one codebase, five platforms
- Native performance: Generates platform-native binaries (.aar/.framework)
- Native development experience: Native UI rendering, native toolchain support, Kotlin as primary language
- Lightweight: Minimal SDK footprint (AOT mode: ~300KB for Android, ~1.2MB for iOS)
- Dynamic capability: Supports compilation into dynamic deliverables
- Multiple paradigms: Supports both declarative & traditional imperative development approaches
.
├── core # Cross-platform module implementing core capabilities like responsive UI, layout algorithms, Bridge communication, etc.
├── src
├── commanMain # Shared cross-platform code, defining cross-platform interfaces
├── androidMain # Android platform implementation (outputs aar)
├── jvmMain # Generic JVM platform code (no Android APIs, outputs jar)
├── iosMain # iOS platform implementation (outputs framework)
├── core-render-android # Android platform renderer module
├── core-render-ios # iOS platform renderer module
├── core-annotations # Annotations module, defining business annotations like @Page
├── core-ksp # Annotation processing module, generates Core entry files
├── buildSrc # Build scripts for compilation, packaging, and artifact splitting
├── demo # DSL example code
├── androidApp # Android host shell project
└── iosApp # iOS host shell project
- iOS 12.0+
- Android 5.0+
- HarmonyOS Next 5.0.0(12)+
- Kotlin 1.3.10+
Refer to Environment Configuration
Ensure environment preparation is complete before building:
- Open
KuiklyUI
root directory inAndroid Studio
and sync project - Select androidApp configuration, then Run 'androidApp'
Ensure environment preparation is complete before building:
-
Navigate to
iosApp
directory -
Execute
pod install --repo-update
-
Open
KuiklyUI
root directory in Android Studio and sync project -
Select iOSApp configuration, then Run 'iOSApp'
Alternatively, open KuiklyUI/iosApp in Xcode and Run
The KuiklyUI directory contains Gradle configurations for various Kotlin versions
:
Naming convention: x.x.xx.gradle.kts
(default uses Kotlin 1.7.20)
Test publishing scripts for each version are available as x.x.xx_test_publish.sh
for building local artifacts.
Note: Kotlin 1.3.10/1.4.20 require JDK11
After successful build on any platform, you can modify Core, Render, and Demo to experience Kuikly
development.
We welcome all developers to submit issues or MRs for Kuikly
. Please review our Contribution Guide before contributing.
All project participants are expected to adhere to our Code of Conduct. Participation constitutes agreement to these terms.
Kuikly
is made possible through the efforts of our core team members and contributors.
- Special thanks to tom(邱良雄) kam(林锦涛) watson(金盎) for their outstanding contributions in taking Kuikly from 0 to 1.
- We also extend our gratitude to the core team members for their ongoing contributions to the continuous improvement of Kuikly:
tom kam watson rocky jonas ruifan pel layen bird zealot zhenhua vinney xuanxi arnon alexa allens
For questions or suggestions, please submit via GitHub issues or scan the QR code below to join our WeChat user group.