首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 AI 写 Kuikly 代码,效率翻倍?我们做了一次真实评测

用 AI 写 Kuikly 代码,效率翻倍?我们做了一次真实评测

原创
作者头像
墨雨
修改2026-05-26 15:50:14
修改2026-05-26 15:50:14
120
举报

一、背景:当 AI 遇上 Kuikly 的“方言”

关注 Kuikly 有一阵子了。原生渲染 + KMM、一套代码跑多端、还支持动态下发,这配置非常对我的胃口。

但在实际开发中,我一直有一个痛点:想用 Cursor 或 CodeBuddy 来提效,结果 AI 总是产生严重的“幻觉”。

根本原因在于:Kuikly 是一套拥有独特 DSL 的框架,而通用大模型对它几乎一无所知。​ 在没有上下文的情况下,AI 只能靠猜,结果就是:代码看着像,实则编译过不了。

直到 Kuikly 开源了 Rules​ 和 Skills,情况才发生了大逆转。


二、解法:Rules 定规矩,Skills 补知识

2.1 Rules —— AI 的行为准则

Rules 是写给 AI 的“编码规范文件”。只需将其放置在项目根目录,AI 每次生成代码时都会严格遵循这套规范。

配置后,能从根源上避免“风格跑偏”和“语法乱入”,确保代码符合 Kuikly 的架构要求。

2.2 Skills —— 按需加载的专项知识包

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 消耗。


三、如何使用

代码语言:javascript
复制
# 安装 Skills
npx skills add Tencent-TDS/KuiklyUI-AI/skills

# 更新到最新版本
npx skills update Tencent-TDS/KuiklyUI-AI/skill

init命令会自动完成项目配置。如果后续 Skills 有更新,只需执行 kuikly-ai update即可同步到最新版本。


四、实战:写一个带状态管理的列表页

配置完成后,我们用一个真实的业务场景来测试效果:实现一个带下拉刷新、上拉加载更多的动态列表页。

4.1 未配置 Rules/Skills 时(对照组)

直接在 AI 中输入:“写一个动态列表页”

AI 给出的代码(节选):

代码语言:javascript
复制
// ❌ AI 生成的错误代码:典型的 Jetpack Compose 风格,完全不是 Kuikly DSL
@Composable
fun FeedList() {
    LazyColumn {
        items(dataList) { item ->
            Text(text = item.title)
        }
    }
    // 下拉刷新用 SwipeRefresh...
}

问题一目了然:AI 使用了 @ComposableLazyColumn,这是 Android 的 Jetpack Compose 写法,在 Kuikly 项目中会直接报错。

4.2 配置 Rules + Skills 后(实验组)

同样的 Prompt,AI 这次给出了完全不同的结果:

代码语言:javascript
复制
// ✅ 配置后 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进行响应式状态管理。
  • 使用了 Listvfor等 Kuikly 特有 DSL。
  • 网络请求调用了 NetworkModule

几乎不需要修改,直接就可以运行。


五、评测数据:Rules 必配,Skills 提升显著

根据 Kuikly 团队的官方评测(覆盖组件使用、Module 调用、状态管理、工程规范四大场景):

配置组合

代码正确率

Token 消耗

综合评分

无配置​

⭐⭐

仅 Rules​

⭐⭐⭐

Rules + Skills​

高​

⭐⭐⭐⭐⭐

核心发现:

  1. Rules 是底线:没有 Rules,AI 会自由发挥,产出大量无效代码。
  2. Skills 是杠杆:在 Rules 的基础上叠加 Skills,代码准确率大幅提升,且能处理更复杂的业务逻辑。
  3. 性价比极高:仅需少量 Token 消耗,就能换来极高的代码可用性。

六、小结

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、背景:当 AI 遇上 Kuikly 的“方言”
  • 二、解法:Rules 定规矩,Skills 补知识
    • 2.1 Rules —— AI 的行为准则
    • 2.2 Skills —— 按需加载的专项知识包
  • 三、如何使用
  • 四、实战:写一个带状态管理的列表页
    • 4.1 未配置 Rules/Skills 时(对照组)
    • 4.2 配置 Rules + Skills 后(实验组)
  • 五、评测数据:Rules 必配,Skills 提升显著
  • 六、小结
  • 七、你可以怎么试一试?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档