来自云龙湖轮廓分明的月亮 发表于 2025-4-2 13:27:22

腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台

今天,在腾讯的 Shiply 平台看 Flutter 动态化自研框架 Conch 时,在侧边栏看到了有「跨端开辟框架」的介绍,点开辟现有两个产品:


[*]Hippy:面向前端技能栈的跨端开辟框架,Web原生开辟体验,支持 React 和 Vue 开辟框架。
[*]Kuikly:面向终端技能栈的跨端开辟框架,完全基于kotlin语言开辟,原生的性能和体验。
关于 Hippy 在之前就大概相识过,属于 Web 开辟体验的开源的跨端开辟框架,但是 Kuikly 又是什么?
通过查找,在 openhippy 的官网可以看到,原来 Kuikly 是基于 Kotlin KMM(Kotlin Multiplatform Mobile) 技能实现的客户端友好跨端方案,可以利用 Kotlin 原生开辟语言创建 Android 、iOS、、H5、小程序和 PC 应用,属于 TDF (Tencent Device-oriented Framework)的全新跨平台方案。
https://i-blog.csdnimg.cn/img_convert/b4b698d0cba4149e1ccbdd393353ed2e.png
而从现在已有的产品介绍看,Kuikly 是采用类 Compose 和 SwiftUI 的声明式+响应式的开辟模式,框架输出的产物有:


[*]Android 产物为 AAR/Dex
[*]iOS 产物为 .framework/JS
运行时会映射到体系原生控件渲染,跟体系原生控件体验完全一致,最告急的是,Android 平台实现了基于dex 动态下发支持,iOS平台基于 JS 动态下发,也就是完全支持热更新,动态话能力可以依托腾讯自家的 Shiply 。
   看起来为了实现动态,在 iOS 平台利用的是 Kotlin/JS 。
同时,App 极度的轻量化,利用 Kuikly 的安装包增量仅 300K,运行时额外的内存占用险些为零,从这点看大小和内存基本不会是 Kuikly 的门槛。
在查阅资料后才发现,2023 年的时候,「腾讯技能工程」团队就在知乎分享过 Kuikly 的实现,Kuikly(Kotlin UI Kit,发音同 quickly),项目就是利用 Kotlin 开辟了自己的一套声明式 UI 框架,同时映射到体系原生控件做渲染,最终用 KMM(Kotlin Multiplatform Mobile)实现跨端。
https://i-blog.csdnimg.cn/img_convert/a4018acde23b294d4edae7e3ae26dc1d.png
而对于 Kuikly ,它从业务代码、UI 框架、布局层以及渲染层全部利用 Kotlin 语言(iOS 渲染层是 OC),其中Android 端通过 KMM 编译成 SO 文件,而,iOS 端可以编译成 JS,不过那也是两年前的情况。
   可以看到当时腾讯险些是用了自己的 UI 框架实现而非直接利用了 Compose MultiPlatform,不知道如今是否还是如此?
而从如今看来,依托 KMP 项目的成熟,现在 Kuikly 很大大概已经支持可 Kotlin Native? 并且从预报看,已经支持了鸿蒙平台,那么大概率不是 Kotlin/JS 就是 Kotlin Native 。
   假如是为了动态化,大概还是 Kotlin/JS 的概率大一些?
如下图所示,是已往 Kuikly 已往在知乎发过的代码编写情况,看起来基本上有着浓浓的 Compose 的熟悉味道:
https://i-blog.csdnimg.cn/img_convert/8ed3bffdc0cb23c172110c85e06c5fb4.gif
https://i-blog.csdnimg.cn/img_convert/45d6ddf11560e41c24c6f692d885b00b.gif
https://i-blog.csdnimg.cn/img_convert/1ccf1394164eb4529498225b31a51ef4.gif
   这时候大概路过的 iOS 表示:为什么大厂弄跨平台甚至直至鸿蒙都是 Kotlin 不是 Swift ?
而 Kuikly 表示,其焦点的设计思路是让 native 的渲染层只管的薄,以是他们把布局和复杂 UI 控件封装都放在了跨端的 Kotlin 侧,native 层只有对原生基础控件的简单映射,如许也能只管减少因为两端代码不一致导致的功能和体验不一致问题。
这是两年前 Kuikly 提供的数据对比,基本和原始开辟保持一致:
https://i-blog.csdnimg.cn/img_convert/25a16110e1e936802f9441ec2e7baa2f.png
另外,通过代码量对比,腾讯技能工程团队表示:同一个页面利用 Kotlin 和 OC 开辟两端的代码量,是利用 Kuikly 跨端开辟的代码量的 3 倍,同时腾讯还发布了 Kuikly 与类 RN 和 Flutter 的对比:
https://i-blog.csdnimg.cn/img_convert/29fb65354685325c2848c2d8c02e7012.png
那么 2025 年的今天,Kuikly 是否还是利用全自研发的 UI 框层?还是已经接入 Compose MultiPlatform ? 从渲染实现上考虑,看起来还是映射的大概性更大?毕竟还有考虑动态化支持,具体还是要等项目正式开源后才知道了。


[*] 文档可见:https://shiply.tds.qq.com/docs/doc?id=4012359584
[*] Kuikly 入口可见:https://openhippy.com/
[*] 2023 原文可见:https://zhuanlan.zhihu.com/p/622485633

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台