腾讯于 2025 年 4 月正式开源跨端框架 Kuikly,以下是对它的详细介绍:
- 背景与推出目的:Kuikly 由腾讯大前端领域 Oteam 推出,是基于 Kotlin Multiplatform 的 UI 与逻辑全面跨端综合解决方案,旨在提供一套一码多端、极致易用、动态灵活的全平台高性能开发框架。
- 技术基础:基于 Kotlin Multiplatform(KMP)技术,利用 KMP 逻辑跨平台的能力,抽象出通用的跨平台 UI 渲染接口,复用平台的 UI 组件以达到 UI 跨平台,具有轻量、高性能、可动态化等优点。
- 支持平台:目前已开源 Android 和 iOS 平台,计划 5 月份开源鸿蒙支持,Q2 开源 Web 和小程序支持。
- 功能特性:
- 原生级性能体验:得益于 KMP 跨平台能力,将 Kotlin 代码编译成各个平台原生产物,如 Android 的 JVM/ART 字节码、iOS 的 Native 二进制等,从而获得接近原生平台的执行性能。在内存方面,基于 KMP 编译及原生渲染,无额外引擎引入,内存增量与原生相差不大。
- 原生技术栈开发体验:使用 Kotlin 作为开发语言,可使用原生 IDE(Android Studio/VS Code)和原生性能分析工具,从业务代码到框架代码层,使用统一技术栈完成开发、调试和性能分析,实现框架开发技术栈自闭环。
- 自研声明式 + 响应式 DSL:提升 UI 开发效率,同时,Compose DSL 正在支持中,计划 Q2 正式开源。
- 动态化能力:支持内置和动态化按需切换,具有页面维度更新、无 hook 稳定性高等优势。Android 动态化采用平台产物,性能几乎没有损耗,即便在中低端机仍有接近原生表现;iOS、鸿蒙动态化产物采用 JS,与其它类 RN 框架在同一水平,甚至更好(由于更轻量的 DSL 设计)。
- 代码编译与渲染:采用跨平台 DSL 树直接映射生成 Native 渲染树的方案,实现了更轻量的渲染机制,进一步提升性能表现。通过轻原生层的设计,原生 UI 仅提供最少量的原子组件,大量高阶组件则通过拼积木的方式,在 Kotlin 跨平台层实现,从而实现组件逻辑的高一致性。
- 应用情况:Kuikly 是腾讯广泛使用的跨端开发框架,已在 QQ、腾讯新闻、QQ 音乐、搜狗输入法、QQ 浏览器等 15 + 款 APP 落地 500 + 页面,日均 PV 达亿级,部分业务在鸿蒙端完全采用 Kuikly 进行开发,显著提升了跨端开发效率
Kuikly 是基于 Kotlin Multiplatform(KMP)技术的跨端开发框架,使用 Kotlin 作为开发语言具有诸多优势。例如,Kotlin 是 Android 官方开发语言,天然兼容 Android 工具链和生态,终端开发者上手成本低;KMP 的跨平台编译能力可将 Kotlin 代码编译为各平台原生产物,能支持多端高性能运行,也可编译成 JS/Wasm 等产物,实现代码动态更新能力。