腾讯正式开源跨端框架 Kuikly

腾讯于 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 等产物,实现代码动态更新能力。

### Kuikly 框架介绍 Kuikly腾讯开源的一个开发框架,基于 Kotlin Multiplatform(KMP)技术构建。该框架旨在解决多平台应用开发中的统一性和高效性问题,尤其适用于需要在 Android、iOS 以及其他可能的终平台上实现一致功能和用户体验的场景。使用 Kotlin 作为核心开发语言,不仅能够无缝集成 Android 生态系统,还能利用 KMP 的平台编译能力,将代码编译为各平台的原生代码[^2]。 Kuikly 的一大优势在于其高性能表现和灵活的动态更新能力。通过编译成 JS/Wasm 等形式,Kuikly 可以支持热更新,从而快速响应业务需求的变化,减少用户的更新成本。这一特性对于需要频繁迭代的应用场景尤为重要。 ### Kuikly 的使用指南 #### 开发环境搭建 - **安装 Kotlin**:确保你的开发环境中已安装 Kotlin 编程语言,并配置好相关的开发工具链。 - **集成 Kuikly SDK**:根据官方文档下载并集成 Kuikly SDK 到项目中,通常涉及添加必要的依赖项到项目的 `build.gradle` 文件中。 - **选择 IDE**:推荐使用支持 Kotlin 的 IDE,如 IntelliJ IDEA 或 Android Studio,以便更好地进行代码编写和调试。 #### 核心组件与架构 - **共享逻辑层**:利用 Kotlin Multiplatform 的能力,将业务逻辑写入共享模块,该模块可以被多个平台调用,减少重复开发工作。 - **平台特定代码**:对于某些特定于平台的功能(如相机访问或推送通知),需要编写相应的适配代码以满足不同平台的需求。 - **UI 层处理**:虽然 Kuikly 支持部分 UI 的共享,但为了提供最佳的用户体验,建议针对每个平台单独设计 UI 组件。 #### 示例代码 以下是一个简单的示例,展示如何使用 Kuikly 创建一个基本的平台应用: ```kotlin // 共享模块中的业务逻辑 expect class Platform() { fun platformName(): String } class Greeting { fun greet(): String { return "Hello, ${Platform().platformName()}!" } } ``` 在 Android 平台上的具体实现: ```kotlin actual class Platform actual constructor() { actual fun platformName(): String { return "Android" } } ``` 在 iOS 平台上的具体实现: ```kotlin actual class Platform actual constructor() { actual fun platformName(): String { return "iOS" } } ``` #### 调试与测试 - **单元测试**:为共享逻辑编写单元测试,确保其在所有目标平台上都能正确运行。 - **集成测试**:在各个平台上执行集成测试,验证整个应用程序的功能是否符合预期。 - **性能优化**:监控应用的性能表现,特别是关注平台代码对性能的影响,并进行必要的优化。 #### 动态更新 Kuikly 支持动态更新功能,允许开发者在不发布新版本的情况下更新应用的部分代码。这通常涉及以下几个步骤: 1. **打包更新内容**:将需要更新的代码打包成 JS 或 Wasm 文件。 2. **上传至服务器**:将打包好的文件上传到服务器,供客户下载。 3. **客户加载**:在客户应用中加载并执行这些更新文件,实现功能的即时更新。 ### 总结 Kuikly 提供了一个强大的平台开发解决方案,尤其适合那些希望在多个平台上保持一致功能和用户体验的应用。通过合理的架构设计和技术选型,可以充分利用 Kuikly 的优势,提高开发效率并降低维护成本。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值