掘金 人工智能 04月02日 16:35
一名Android开发者使用Cursor 打造了一款记账APP
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文分享了使用AI编程助手Cursor快速开发安卓记账App的实践过程。通过向Cursor输入需求,它自动生成代码并解决了编译错误。最终,在短短一小时内,一个功能完备的记账App得以实现,包括消费记录、统计分析和美观的UI界面,展现了AI辅助编程的强大潜力。

💡Cursor是一款基于AI的编程助手,通过Agent模式和claude-3.7-sonnet模型,能够根据用户提供的需求自动生成安卓App代码。

📱作者使用Cursor开发了一款记账App,该App具备消费记录、分类、统计、图表展示等功能,并采用了Material Design风格和MVVM架构。

🛠️在开发过程中,Cursor不仅生成了大量代码,还解决了编译错误,经过多次迭代,最终实现了App的完整功能。

⏱️整个开发过程耗时不到一小时,展示了AI辅助编程在提高开发效率方面的巨大潜力。

🤔作者认为,虽然AI能替代部分工作,但开发者仍需提升架构、沟通和业务能力,以应对未来的挑战。

最近AI辅助编程很火, 有以插件形式存在的Github Copilot, 阿里的通义零码, 字节的MarsCode等, 还有自带AI的集成开发环境,如国外的Cursor和字节推出的Trae等。

自带的AI集成开发环境, 优点是上下文基于整个工程, 可以基于整个工程的业务逻辑, 代码风格。给出合适的提示, 并能根据需求找出需要修改的位置并作出合理的修改。

作为一名Android开发者,我们本次来使用 Cursor来帮我们生成一款记账的APP, 来探索Cursor的能力和边界。

先来看看最终的效果:

www.bilibili.com/video/BV1qS…

附上源码:

github.com/stevenwsg/C…

好了,让我们开始动手吧

1、Prompt 编写

#设计实现一个记账app#设计一款记账APP, 可以针对日常的消费支出进行记录, 当用户发生消费时, 可以用我们的APP进行记录, 然后我们的APP 可以针对 用户的 消费记录 进行按照日,星期, 月度, 年度的统计功能。#1. 使用 Google Material Design 风格2. 颜色搭配柔和,美观3、可以适当加入一些动画#1.支持记录消费支出, 比提供几种消费类型供用户选择, 比如住房,数码, 餐饮, 教育,购物等2.支持统计功能, 支持用户选择某一天, 某一星期, 某一个月的消费记录进行查看。 并做出统计图标或者圆形图标机型直观展示#1. 使用Kotlin语言2、使用JetPak Room 数据库进行存储消费记录3、可以引入一些图表库进行展示统计的消费记录4、可以适当增加一些动画5、生成的代码能够正常运行#1. 你是一个安卓专家、精通app的设计实现, 同时你对UI有高深的造诣,能够画出让大多数满意舒服的UI2. 可以自主根据需求设计实现精美的app的能力

最新版的Cursor, 我们选择Agent 模式, 模型我们选择 claude-3.7-sonnet。 我们将上述的prompt 投喂给Cursor, 让Cursor 帮我们生成代码。

2、 生成源码

经过一段时间等待, Cursor APP 帮我们生成了。

可以看到Cursor帮我们出了一些处理:

    使用了Google Material UI 风格设计使用Room 数据库来进行存储账单可以支持对账单的 增删改查可以设置这笔消费账单关联的类型可以针对日,周, 月,年 进行统计使用图表对账单数据进行统计可以查看每笔账单的详情使用 MVVM 结构模式 构建使用kotlin 协程来处理异步操作使用 Navcation来进行导航

可以看出新增了 54个文件 2643行代码 , 减少了83行代码。 我们点击 Accet all按钮, 将所有的更改应用到项目中。 在切换到 Android Studio中 试着运行一下。

首先 Android Studio 提示报错,可以看出是ViewBinding 导致的, 我们先sync 一下试试

Sync完成后, 没有了报错。 我们运行一下试试

Android Studio 遇到了运行报错, 我们先试试将错误信息扔给Cursor, 看看 Cursor能不能帮我们解决。

好了 , 解决完了, 这次看我们能不能运行成功。 不出意外 又有一些新的报错, 我们扔给Cursor

Cursor 又修改了一版, 我们再试试

这次运行起来了, 让我们看看结果

3、 运行结果

3.1 记账页面

首先是记账页面, 可以选择金额, 消费类型, 描述 和日期选择

3.2 首页

然后是首页, 以列表的形式 展示 最近的消费记录. 不过列表好像没有展示出来

3.3 消费统计页面

可以看出,可以根据, 今天,这周,这个月,今年来列出消费统计, 并按照圆形图标的方式展示出每种消费所对应的比例

4、优化

目前可以明显看出, 存在两个问题

    三个页面的沉浸式状态栏处理的不太好, 页面的Title 距离顶部的时间太近了按照设计和源码来看, 首页的消费列表 RecyclerView没有显示出UI

我们根据这两个问题, 让Cursor 在帮我们在修改一下。

经过和Cursor的几次沟通 改好了。

首页也显示出来了账单列表。 点击账单列表的Item。 可以进入账单编辑页面。可以对账单进行编辑 和删除

好了, 到这里,我全程一行代码度没有写, 体会到Cursor的强大之处了嘛

可以查看视频 看看最终效果: www.bilibili.com/video/BV1qS…

5、源码分析

我没有写一行代码, Cursor 开发加调试 不到一个小时生成的。 速度是已经很快了, 让我们简单的看看部分代码, 看下代码质量,代码风格, 以及Cursor到底怎么做到的

首先看下Cursor 帮我们引入了那些库

dependencies {        implementation(libs.androidx.core.ktx)    implementation(libs.androidx.appcompat)    implementation(libs.material)    implementation(libs.androidx.activity)    implementation(libs.androidx.constraintlayout)            implementation("androidx.navigation:navigation-fragment-ktx:2.7.7")    implementation("androidx.navigation:navigation-ui-ktx:2.7.7")            implementation("androidx.room:room-runtime:2.6.1")    implementation("androidx.room:room-ktx:2.6.1")    kapt("androidx.room:room-compiler:2.6.1")            implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")            implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")    implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0")            implementation("com.google.android.material:material:1.11.0")            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")            testImplementation(libs.junit)    androidTestImplementation(libs.androidx.junit)    androidTestImplementation(libs.androidx.espresso.core)}

引入 了

    navigation 导航room 实现数据库MPAndroidChart 实现图标material 实现md风格lifecycle viewmodel livedata 实现MMVM框架kotlinx-coroutines-android Kotlin 协程

可以看出 Cursor 是用MMVM 模式帮我们写的。

项目结构其实也是蛮清晰的

具体的源码不带大家看了, 我上传到Github, 大家如果感兴趣的话, 可以拉下来看看:github.com/stevenwsg/C…

7、总结

用Cursor 不到一个小时生成的APP, 虽然是一个很简单的APP, 我觉得已经很厉害,效率很高了。 至此, 我们看到了Cursor的能力, 至于上限和边界还远远没有触及到。我是被震撼到了, 可以看到这个模型一直在进化, 以后进化的会更厉害。

我觉得, 对于我们普通的开发者, 不仅要借助这些AI辅助编程工具, 提升我们的工作效率, 还是要在提高自己的架构能力,沟通能力, 业务需求能力。 现在的AI确实是可以替代一些工作量的,但总有些东西是AI代替不了的

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI编程 Cursor 安卓开发 记账App 代码生成
相关文章