Kuikly 是基于Kotlin Multiplatform的UI与逻辑全面跨端综合解决方案,由腾讯大前端领域Oteam(公司级)推出,旨在提供一套一码多端、极致易用、动态灵活的全平台高性能开发框架。目前已支持平台:
- Android
- iOS
- 鸿蒙
- Web(beta)
- 小程序(beta)
- macOS(Alpha)
Kuikly 推出后受到业务广泛认可,已应用于 QQ、QQ 音乐、QQ 浏览器、腾讯新闻、搜狗输入法、应用宝、全民K歌、酷狗音乐、酷我音乐、自选股、ima.copilot、微视等多款产品。
- 跨平台:基于 Kotlin 跨平台实现多平台一致运行,一码六端
- 原生性能:运行平台原生编译产物(.aar/.framework/.so)
- 原生开发体验:原生 UI 渲染、原生开发工具链、Kotlin 原生开发语言
- 轻量:SDK 增量小(AOT模式下,Android:约 300 KB,iOS:约 1.2 MB)
- 动态化:支持编译成动态化产物
- 多开发范式:声明式&响应式开发范式,支持自研 DSL 和 Compose DSL
.
├── core # 跨平台模块,实现各个平台响应式 UI、布局算法、Bridge 通信等核心能力
├── src
├── commonMain # 跨平台共享代码、定义跨平台接口
├── androidMain # Android 平台实现代码 (aar)
├── jvmMain # 泛 JVM 平台代码(不涉及 Android API)(jar)
├── appleMain # Apple (iOS & macOS) 平台实现代码(framework)
├── ohosArm64Main # Ohos 平台实现代码(so)
├── jsMain # H5 和 微信小程序 平台实现代码(so)
├── core-render-android # android 平台的渲染器模块
├── core-render-ios # iOS 平台的渲染器模块
├── core-render-ohos # Ohos 平台的渲染模块
├── core-render-web # Web 平台的渲染模块
├── core-annotations # 注解模块,定义业务注解 @Page
├── core-ksp # 注解处理模块,生成 Core 入口文件
├── buildSrc # 编译脚本,用于编译、打包、分包产物相关脚本
├── demo # DSL 示例代码
├── androidApp # Android 宿主壳工程
├── iosApp # iOS 宿主壳工程
├── macApp # macOS 宿主壳工程
├── miniApp # 微信小程序 宿主壳工程
├── h5App # H5 宿主壳工程
├── ohosApp # Ohos 宿主壳工程
├── compose # 跨平台模块,实现Compose UI、布局,桥接Kuikly等核心能力
├── src
├── commonMain # 跨平台共享代码,包含 Compose UI 组件、布局和事件处理
├── androidMain # Android 平台特定实现
└── nativeMain # iOS 和鸿蒙平台特定实现
└── jsMain # H5 和小程序平台特定实现注: Compose 目录包含基于 Jetpack Compose 1.7.3 版本的跨平台源代码。我们对原始 Compose 代码进行了必要的修改和适配,以支持 Kuikly 框架的渲染需求。为了便于后续升级,我们注释掉了一些不必要的功能。为了确保功能稳定支持并避免与官方代码冲突,我们将包名从
androidx.compose改为com.tencent.kuikly.compose。原始 Compose 代码来自 JetBrains Compose Multiplatform。
- iOS 12.0版本及以上
- macOS 10.13版本及以上
- Android 5.0版本及以上
- HarmonyOS Next 5.0.0(12) 版本及以上
- Kotlin版本 1.3.10 版本及以上
参照环境搭建进行配置
-
如果你的 Android Studio 版本大于等于 (2024.2.1),请将 Gradle JDK 版本切换为 JDK17 (该版本默认 Gradle JDK 为 21,与项目使用的配置不兼容)
切换方式: Android Studio -> Settings -> Build,Execution,Deployment -> Build Tools -> Gradle -> Gradle JDK
-
DevEco Studio 5.1.0 或者更新版本(API Version >= 18) (你可以通过【 DevECo Studio -> Help -> About HarmonyOS SDK 】查看API Version)
-
JDK17
在构建 Android App 之前,请确保完成了环境准备
- 使用
Android Studio打开KuiklyUI项目根目录,完成 sync - Configuration 选择 androidApp,Run 'androidApp'
在构建 iOS App 之前,请确保完成了环境准备
cd到iosApp- 执行
pod install --repo-update - 使用
Android Studio打开KuiklyUI项目根目录,完成sync - Configuration 选择 iOSApp,Run 'iOSApp'
或者使用 XCode 打开 KuiklyUI/iosApp 目录,Run
注意:源码iosApp工程在编译时会执行KMP脚本,如果遇到脚本读写文件权限报错,需要在
Xcode -> Build Setting中将User Script Sandboxing设置为No
在构建 Ohos App 之前,请确保完成了环境准备
- 在
KuiklyUI根目录执行鸿蒙跨端产物编译脚本:./2.0_ohos_demo_build.sh
- 使用 DevEco Studio 打开
KuiklyUI/ohosApp项目目录,完成sync - 连接真机或启动鸿蒙模拟器,并执行签名操作
File -> Project Structure -> Signing Configs - 使用DevEco Studio, Run
entry, 运行Ohos App
-
配置环境变量
OHOS_SDK_HOME,指向鸿蒙 SDK 路径:变量名: OHOS_SDK_HOME 路径: %TOOL_HOME%\sdk 变量名: TOOL_HOME 路径: D:\DevEcoStudio注意:“D:\DevEcoStudio”中D盘为示例演示,实则除C盘以外任何盘都可以
-
在
KuiklyUI根目录执行 Windows 编译脚本:2.0_ohos_demo_build.bat
或手动执行:
set KUIKLY_AGP_VERSION=7.4.2 set KUIKLY_KOTLIN_VERSION=2.0.21-KBA-010 gradlew.bat -c settings.2.0.ohos.gradle.kts :demo:linkSharedDebugSharedOhosArm64
-
拷贝产物到 ohosApp(bat 脚本会自动完成):
demo\build\bin\ohosArm64\sharedDebugShared\libshared.so→ohosApp\entry\libs\arm64-v8a\demo\build\bin\ohosArm64\sharedDebugShared\libshared_api.h→ohosApp\entry\src\main\cpp\thirdparty\biz_entry\
-
使用 DevEco Studio 打开
KuiklyUI/ohosApp项目目录,完成sync -
连接真机或启动鸿蒙模拟器,并执行签名操作
File -> Project Structure -> Signing Configs -
使用DevEco Studio, Run
entry, 运行Ohos App
注: Windows 编译需要使用 Kotlin 工具链版本
2.0.21-KBA-010,该版本支持 Windows/Linux 平台。
KuiklyUI目录下有各个Kotlin版本的gradle配置项
命名规则为 x.x.xx.gradle.kts,其中默认使用的是Kotlin: 2.1.21
同时,也提供各个版本的测试发布脚本,你可以运行publish目录下的x.x.xx_publish.sh构建kuikly的本地产物。
Kotlin: 1.3.10/1.4.20需要切换jdk11
上述任一平台构建成功后,即可通过修改Core、Render、Demo,体验Kuikly开发。
安卓手机扫码快速体验。iPhone和鸿蒙手机请按上述步骤源码编译Demo APP体验。
欢迎各位开发者为 Kuikly 提出问题或发起 PR,建议你在为 Kuikly 贡献代码先阅读 贡献指引。
请注意,本项目的所有参与者都应遵守我们的行为准则。参与即表示您同意遵守其条款。
- 特别感谢首批贡献者tom(邱良雄)kam(林锦涛)watson(金盎),不仅在大前端领域主导
Kuikly跨端方案孵化探索,而且率先在QQ业务落地。 - 感谢以下核心贡献者对
Kuikly持续建设维护与发展优化:
tom kam watson rocky jonas ruifan pel layen bird zealot zhenhua vinney xuanxi ray arnon alexa allens eason - 同时感谢每一位参与
Kuikly建设的社区贡献者,正是大家的共同努力,让Kuikly得以不断成长。
在腾讯,Kuikly 已有20+应用深度使用,页面数1000+,日活用户5亿+,满足了这些业务众多场景下的各类复杂需求。
业务典型应用场景,请参考:应用场景案例
欢迎扫码下方二维码关注最新动态或咨询交流。
The copyright notice pertaining to the Tencent code in this repo was previously in the name of “THL A29 Limited.” That entity has now been de-registered. You should treat all previously distributed copies of the code as if the copyright notice was in the name of “Tencent.”




