腾讯 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)的全新跨平台方案。

而从目前已有的产品介绍看,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)实现跨端。

而对于 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 的熟悉味道:

这时候可能路过的 iOS 表示:为什么大厂弄跨平台甚至直至鸿蒙都是 Kotlin 不是 Swift

而 Kuikly 表示,其核心的设计思路是让 native 的渲染层尽量的薄,所以他们把布局和复杂 UI 控件封装都放在了跨端的 Kotlin 侧,native 层只有对原生基础控件的简单映射,这样也能尽量减少因为两端代码不一致导致的功能和体验不一致问题。

这是两年前 Kuikly 提供的数据对比,基本和原始开发保持一致:

另外,通过代码量对比,腾讯技术工程团队表示:同一个页面使用 Kotlin 和 OC 开发两端的代码量,是使用 Kuikly 跨端开发的代码量的 3 倍,同时腾讯还发布了 Kuikly 与类 RN 和 Flutter 的对比:

那么 2025 年的今天,Kuikly 是否还是使用全自研发的 UI 框层?还是已经接入 Compose MultiPlatform ? 从渲染实现上考虑,看起来还是映射的可能性更大?毕竟还有考虑动态化支持,具体还是要等项目正式开源后才知道了。

相关推荐
风华圆舞12 小时前
鸿蒙 + Flutter 下 AI 助手为什么要支持流式输出
人工智能·flutter·harmonyos
游戏开发爱好者812 小时前
iPhone真机调试有哪些方法?一次定位推送权限问题时整理出来的几种方案
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
Jinkxs12 小时前
Python基础 - 初识内置函数 Python自带的便捷工具
android·java·python
私人珍藏库13 小时前
【Android】VLLO-韩国热门手机剪辑APP
android·app·工具·软件·多功能
Cloud_Shy61813 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第六章 Item 40 - 43)
android·开发语言·人工智能·笔记·python·学习方法
AFinalStone14 小时前
Android12 U盘插拔链路源码全解析(五):Framework层(下) StorageManagerService
android·frameworks
风华圆舞15 小时前
鸿蒙 + Flutter 下 AI 页面的状态协同设计
人工智能·flutter·harmonyos
林九生16 小时前
【实用技巧】MySQL 绿色版一键路径更新脚本详解 —— update_path.bat 深度解析
android·数据库·mysql
故渊at17 小时前
第十三板块:Android 综合架构与未来演进 | 第三十一篇:Android 架构演进与 Fuchsia OS 的挑战
android·架构·宏内核·微内核·fuchsia·ipc 性能博弈
aqi0017 小时前
一文速览 HarmonyOS 6.1.1 推出的十个新特性
android·华为·harmonyos·鸿蒙·harmony