
关注 Kuikly 有一阵子了。原生渲染 + KMM、一套代码跑多端、还支持动态下发,这配置非常对我的胃口。
但在实际开发中,我一直有一个痛点:想用 Cursor 或 CodeBuddy 来提效,结果 AI 总是产生严重的“幻觉”。
根本原因在于:Kuikly 是一套拥有独特 DSL 的框架,而通用大模型对它几乎一无所知。 在没有上下文的情况下,AI 只能靠猜,结果就是:代码看着像,实则编译过不了。
直到 Kuikly 开源了 Rules 和 Skills,情况才发生了大逆转。
Rules 是写给 AI 的“编码规范文件”。只需将其放置在项目根目录,AI 每次生成代码时都会严格遵循这套规范。
配置后,能从根源上避免“风格跑偏”和“语法乱入”,确保代码符合 Kuikly 的架构要求。
Skills 是一组可按需挂载的“专家知识包”。目前开源版本包含 11 个核心技能:
Skill 名称 | 简介 | ||
|---|---|---|---|
1 | kuikly-ui-framework | Kuikly UI 框架开发指南,涵盖 View、Text、Button、List、Image 等组件,以及 Router、Network、SP 等模块的使用方法 | |
2 | kuikly-animation | Kuikly DSL 动画实现,支持声明式(animate+ 响应式变量)和命令式(animateToAttr+ ViewRef)两种范式 | |
3 | kuikly-expand-view | 创建自定义 UI 组件,将原生 View 暴露给 Kuikly 侧,支持 Android、iOS、HarmonyOS、H5、小程序五端渲染 | |
4 | kuikly-expand-api | 创建自定义 Module,扩展原生 API,实现 Kuikly 与原生平台的双向通信 | |
5 | kuikly-network-and-json | HTTP 请求与 JSON 数据处理,基于 Kuikly NetworkModule,支持网络请求、JSON 解析及二进制数据上传下载 | |
6 | kuikly-reactive-observer | 响应式状态管理与模板指令(vfor、vif、vbind等),用于实现数据驱动的 UI 更新 | |
7 | kuikly-coroutines-threading | 异步编程与多线程管理,覆盖 Kuikly 内置协程、kotlinx-coroutines及 kuiklyx协程库 | |
8 | kuikly-assets-resource | 资源管理,处理各平台(Android/iOS/HarmonyOS/H5/小程序)的资源文件加载与打包 | |
9 | kuikly-visibility-exposure | 可见性事件实现(didAppear/didDisappear/willAppear/willDisappear/appearPercentage),用于曝光上报 | |
10 | kuikly-multi-module-config | 多模块 Kuikly 项目配置,支持创建子模块、配置多模块参数、解决 KuiklyCoreEntry冲突 | |
11 | kuikly-compose-interop-dsl | Compose DSL 中使用 Kuikly DSL 组件,支持在 Compose 中嵌入 DeclarativeBaseView/ViewContainer,或从 Compose 调用 Kuikly Modules |
Skills 的核心价值在于“精准注入”:它不会把所有文档一股脑塞给 AI,而是在你提问具体问题时,自动加载对应的知识包。这样既保证了准确性,又有效控制了 Token 消耗。
# 安装 Skills
npx skills add Tencent-TDS/KuiklyUI-AI/skills
# 更新到最新版本
npx skills update Tencent-TDS/KuiklyUI-AI/skillinit命令会自动完成项目配置。如果后续 Skills 有更新,只需执行 kuikly-ai update即可同步到最新版本。
配置完成后,我们用一个真实的业务场景来测试效果:实现一个带下拉刷新、上拉加载更多的动态列表页。
直接在 AI 中输入:“写一个动态列表页”。
AI 给出的代码(节选):
// ❌ AI 生成的错误代码:典型的 Jetpack Compose 风格,完全不是 Kuikly DSL
@Composable
fun FeedList() {
LazyColumn {
items(dataList) { item ->
Text(text = item.title)
}
}
// 下拉刷新用 SwipeRefresh...
}问题一目了然:AI 使用了 @Composable和 LazyColumn,这是 Android 的 Jetpack Compose 写法,在 Kuikly 项目中会直接报错。
同样的 Prompt,AI 这次给出了完全不同的结果:
// ✅ 配置后 AI 生成的正确代码(标准 Kuikly DSL)
@Page("FeedPage")
internal class FeedPage : Pager() {
private var dataList by observable(mutableListOf<FeedItem>())
private var isRefreshing by observable(false)
private var page by observable(1)
override fun body(): ViewBuilder {
val ctx = this
return {
List {
attr {
flex(1f)
refreshEnable(true)
refreshing(ctx.isRefreshing)
}
event {
refreshEvent { ctx.loadData(refresh = true) }
reachBottomEvent { ctx.loadData(refresh = false) }
}
vfor({ ctx.dataList }) { item ->
FeedItemView(item)
}
}
}
}
private fun loadData(refresh: Boolean) {
if (refresh) {
page = 1
isRefreshing = true
}
acquireModule<NetworkModule>(NetworkModule.MODULE_NAME)
?.requestGet(API_URL, JSONObject().apply {
put("page", page)
}) { data, success, _, _ ->
isRefreshing = false
if (success) {
val newItems = parseItems(data)
if (refresh) dataList = newItems.toMutableList()
else dataList.addAll(newItems)
page++
}
}
}
}这次的代码:
@Page注解和 Pager基类。
observable进行响应式状态管理。
List、vfor等 Kuikly 特有 DSL。
NetworkModule。
几乎不需要修改,直接就可以运行。
根据 Kuikly 团队的官方评测(覆盖组件使用、Module 调用、状态管理、工程规范四大场景):
配置组合 | 代码正确率 | Token 消耗 | 综合评分 |
|---|---|---|---|
无配置 | 低 | 低 | ⭐⭐ |
仅 Rules | 中 | 低 | ⭐⭐⭐ |
Rules + Skills | 高 | 中 | ⭐⭐⭐⭐⭐ |
核心发现:
Kuikly 只开源了 Rules 和 Skills,就已经让我把 AI 从“乱写 Kuikly”变成了“能写可用 Kuikly”。
对我来说,这不仅仅是省了几行代码,而是彻底改变了工作方式:
少抠语法细节,多看设计、结构和产品逻辑。
更值得期待的是,根据 Kuikly 2026 Roadmap,框架将围绕"AI 驱动开发"这一核心方向持续发力。像视觉稿转码、预览、转码 Agent、AI Chat 组件等将陆续上线,届时,AI 将不再只是"能写代码",而是能参与完整开发流程,期待早上上线
如果你也想体验 AI 驱动的 Kuikly 开发,可以从以下几个步骤开始:
1. 根据 Kuikly 官网 搭建环境,包括 JDK、IDE、SDK 等基础依赖,
2. 参考 KuiklyUI 仓库 获取源码和 Demo,
3. 根据 KuiklyUI-AI 仓库 README 指引配置 Rules 和 Skills,让你的 AI 工具具备 Kuikly 开发能力。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。