AI编程实战:Cursor+Claude4,一口气生成uniapp小程序

404 阅读6分钟

前言

年前介绍过 Cursor 助力小程序的开发实践,但那次分享细节不是太多,并且时间也有点久了。

正好,前几天 Claude 4 发布了,官网提到的 “7 个小时超长任务”还是很吸引人的。

今天,我们就通过一个实际案例,带大家看看现在的 Cursor + Claude 4 在 uniapp 开发中究竟能实现到什么程度。

项目介绍

这个应用主要是个人用于平时碎片化信息的记录,方便后续总结、整理成相关的文章、笔记。

同时,结合 AI 能力,将以上普通的功能进行升级改造,简化用户体验,提升应用智能化程度。

为了简化效果,不接入 API,直接使用小程序的本地存储。

项目环境初始化

项目基于 uniapp + uView2.0,所以需要分别进行配置。

uniapp 项目创建

HBuilderX 是 uniapp 团队开发的,支持肯定最好,我们直接使用图形化界面进行新项目创建。

注意选择合适的 Vue 版本,我们采用的 2.0。

引入uView2.0

1、依然采用 HBuilderX 的方式引入 uView2.0,直接在 DCloud 插件市场点击“下载插件并导入HBuilderX”即可。

需要注意,弹窗选择项目的时候,需要手动选择我们新建的项目。

2、引入uView主JS库。

在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。

// main.js
import uView from '@/uni_modules/uview-ui'
Vue.use(uView)

3、引入uView的全局SCSS主题文件。

在项目根目录的uni.scss中引入此文件。

/* uni.scss */
@import '@/uni_modules/uview-ui/theme.scss';

4、引入uView基础样式。

在App.vue中首行的位置引入,注意给style标签加入lang="scss"属性。

<style lang="scss">
	/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
</style>

到此,已经完成新项目的初始化。

我们可以运行到“微信开发者工具”上确认下。

应用生成

接下来就到了 AI 协同编程的重头戏了,之前的分享大多是生成单个页面或者单个模块,中间还需要我们进行连接,这一点都不够智能。

今天,借助 Cursor + Claude 4 的能力,我们来一次大胆的尝试。

提示词

你是一个专业的uniapp+uview2.0开发专家。我正在开发一个名为"SelfGrowth"的跨平台应用,主要支持微信小程序。

业务功能:
应用的一个核心功能是一个类似待办的速记功能,每个速记包括内容、优先级、截止时间、重要程度,同时支持打标签,支持定时重复提醒。
另一个核心功能是AI对话,可以选择不同标签下的速记作为知识库建立对应的助手,并进行对话。各个助手除了被动进行对话外,支持定时设置,主动发送消息给用户。

界面布局:
参考截图样式,底部tab包括首页、事项、速记、助手、我的。
首页:
- 上部是助手头像列表,横向排布,头像右上角有消息小红点,头像下面有最新的一条消息。
- 下部是速记内容列表,展示内容、优先级、重要程度、截止时间、标签。
事项:
速记内容列表,支持搜索、下拉刷新、上拉加载更多。
速记:
该图标为快捷入口,点击后直接通过语音录入速记内容。
助手:
助手列表,类似微信对话列表,右上角是新增按钮,点击可以新增助手。
列表中的任一助手点击后进入助手的对话界面,右上角有设置按钮,点击可设置助手相关属性(提示词、配置等)。
我的:
个人中心页面,包括常见的头像、个人信息、设置、关于我们等入口。

技术要求:
- 暂时采用小程序本地存储数据的方式,不采用网络接口,但存储逻辑需要独立封装,方便后续切换后台API。
- 所有图标优先采用uView内置图标。
- 图片使用upsplash api获取合适图片。
- 整个项目采用vue2,禁止使用vue3的特性。

我们通过提示词将想要实现的功能和大体的布局一起告诉 AI,让它直出应用,看看效果如何。

结果

整个过程耗时大概10多分钟。

由于我没有采用 yolo 模式,中间弹出了几次确认。

另外就是中间超出阈值一次,通过录入“继续”完成了输出。

可以说是几乎不需要人为参与。

为了更好的展示,我截了一个完整的长图。

生成后的微调

由于 Cursor 在图标处理上还是不太灵光,所以,底部的tabbar和一些图标出现错误,为了不影响观感,简单修复一下。

生成 SVG 图标转为 PNG

由于 Cursor 生成的占位图标是 PNG 格式,就尝试让 Cursor 直接找图片替换下,结果不大如意。

后来,采用了一个折中的方法,让 Cursor 根据需要生成对应图标的 SVG,然后,手动进行了格式转换。

更改错误图标 name

生成时已经指定了使用 uView2.0 图标,但是依然存在三处引用不存在图标的情况。

  • 首页助手采用了name=robot,手动更改为share-fill。
  • 速记页面的录音图标采用了name=mic-fill,手动更改为mic,同样暂停的图标由name=pause-circle-fill更改为pause。
  • 速记的优先级图标采用了name=flag,手动更改为list-dot。

效果展示

为了更好的呈现 Cursor + Claude 4的能力,本次分享不再进一步优化,仅限于以上两步微调,下面给大家看下生成效果。

首页

事项

速记

助手

我的

UI 效果只展示出能力的一部分,经过初步测试,速记的保存、搜索功能,助手的新增、对话功能,都已经一次性实现。

首页的那条“测试”速记,就是通过功能新增的。

结语

说实话,结果出来后,有点吃惊。

虽然由于 UI 方面提示词没有特别详尽导致界面不太美观,但应用的整体完成度已经非常高了。

而这,仅仅是今天想起来这个点子,花费了3个小时初次尝试的结果。

强烈建议大家试试去,能力提升真的不是一点半点~

最后加一句,针对 uniapp + uview2.0 等初始化的步骤,不建议使用 Cursor 进行生成。我之前尝试过好几次,这种涉及面广,文件操作较多的步骤,AI 处理还是比较弱,还是直接人工比较快。