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

4,782 阅读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 处理还是比较弱,还是直接人工比较快。