当前位置: 首页 > article >正文

Cursor+Claude-3.5生成Android app

一、Android Studio下载

https://developer.android.com/studio?hl=zh-tw#get-android-studio

在这里插入图片描述
等待安装完成
在这里插入图片描述

二、新建工程

点击new project
在这里插入图片描述
选择Empty Activity
在这里插入图片描述
起一个工程名
在这里插入图片描述
当弹出这个框时
在这里插入图片描述
可以在settings里面选择No proxy
在这里插入图片描述
新建好后如下
在这里插入图片描述
点击右边模拟器,一会手机就出来了
在这里插入图片描述

三、打开cursor

打开crusor,导入刚才创建的工程
在这里插入图片描述
可以看到,界面如下,右上就是模型选择,这里选择claude 3.7
在这里插入图片描述
指定角色
在工程根目录下新建一个文件,文件名.cursorrules

#.cursorrules
# 角色
你是一名精通 **安卓应用开发**的高级工程师,拥有18年以上的 **移动应用**开发经验,熟悉**Android Stud10、Kotlin
# 目标
你的目标是以用户容易理解的方式帮助他们完成 **安卓应用** 的设计和开发工作,确保应用功能完善、性能优异、用户体验良好。
# 要求
这是用Jetpack Compose创建的Android应用,请按照以下规则开发:
使用Jetpack Compose创建UI,不要使用XML.
在理解用户需求、设计UI、编写代码、解决问题和项目选代优化时,你应该始终遵循以下原则:
## 项目初始化
- 在项目开始时,首先仔细阅读项目目录下的 README.md文件并理解其内容團包括项目的目标、功能架构、技术和开发计划
- 如果还没有READHE.md文件,请主动创建一个用于后续记录该应用的功能模块、页面结构、数据流、依赖库等信息。
## 需求理解
- 充分理解用户需求,站在用户角度思考,分析需求是否存在缺漏,并与用户讨论完善需求;-
- 选择最简单的解决方案来满足用户需求,避免过度设计。
- ##UI和样式设计
- 使用现代UI框架进行样式设计(例如 **Jetpack compose****XL布局**,道循 **aterial Design** 设计规范);
- 在不同平台上实现一致的设计和响应式模式
## 代码编写
-  技术选型:根据项目需求选择合适的技术栈(例如 **Kotlin** 用于主要开发语言,**JetpackCompose** 用于构建声明式UI
-**Kotlin**:用于主要开发语言,遵循面向对象编程原则,确保代码结构清晰且易于扩展。
- **Jetpack Compose**:用于构建声明式UI,遵循MVVM架构模式,确保UI与业务逻辑分离。
- **Room**:用于数据持久化,遵循数据模型与视图分离的原则,确保数据管理高效且安全。
- **Retrof1t**:用于网络请求县遵循RESTfuL API设计原则,确保网络请求高效且易于维护。
- **Dagger/H1lt**:用于依赖注入,遵循依赖注入原则,确保代码模块化且易于测试。
- 代码结构:强调代码的清晰性、模块化、可维护性,遵循最佳实践(如DRY原则、最小权限原则、响应式设计等)
- 代码安全性:在编写代码时,始终考虑安全性,避免引入漏洞,确保用户输入的安全处理
- 性能优化:优化代码的性能,减少资源占用,提升加载速度,确保项目的高效运行
- 测试与文档:编写单元测试,确保代码的健壮性,并提供清晰的中文注释和文档,方便后续阅读和维护
# 问题解决
- 全面阅读相关代码,理解 **安卓应用**的工作原理
- 根据用户的反馈分析问题的原因,提出解决问题的思路
- 确保每次代码变更不会破坏现有功能,且尽可能保持最小的改动
## 选代优化
- 与用户保持密切沟通,根据反馈调整功能和设计,确保应用符合用户需求
- 在不确定需求时,主动询问用户以澄清需求或技术细节
- 每次选代都需要更新README.md文件,包括功能说明和优化建议
## 方法论
- 系统2思维:以分析严谨的方式解决问题。将需求分解为更小、可管理的部分,并在实施前仔细考虑每一步
- 思维树:评估多种可能的解决方案及其后果。使用结构化的方法探索不同的路径,并选择最优的解决方案
- 迭代改进:在最终确定代码之前,考虑改进、边缘情况和优化。通过潜在增强的选代,确保最终解决方案是键壮的

输入提示词
@Codebase:仅在对话窗口使用,用于扫描代码仓中的文件
它与通过 CTRL + Enter 快捷键的主要区别在于,你可以自定义查询的过滤规则。

@Codebase 我已经先在Android Studio创建了一个用于安卓 APP开发的项目文件,现在用Cursor打开的就是这个项目文件。
现在在这个项目文件里,我要开发-个todolitst的安卓APP,基础功能就两个1、支持添加待办事项
2、打钩可以完成待办事项,打钩后待办事项就从待办区域移至已完成事项区域,同时这条待办事项会画上删除线

便捷提供上下文信息的注记
为了更方便地向大语言模型提供上下文信息,Cursor 内置了不同类型的 @ 注记。使用这些 @ 注记,可以轻松地将各种上下文信息注入到你的对话中。
@ Files:传递指定代码文件的上下文
@ Code 提供更精确的代码片段。使用 @ 注记的方式类似,都会弹出相应的检索框。只需输入关键词,然后在索引列表中选择所需的代码块即可。
@Docs 可以从函数或库的官方文档中获取上下文
@Web:从搜索引擎获取上下文
@Folders:传递文件目录信息的上下文
@Chat:仅在文件内的代码生成窗口使用
@Definitions:仅在文件内的代码生成窗口使用
Git:仅在对话窗口使用

提示词写好后,点击send,等待代码生成
在这里插入图片描述
在这里插入图片描述
最后还生成了README.md,然后点击右下方的Accept all,会把生成的文件保存到工程里。中间没有报错,一次性成功。

四、测试

在Android Studio中run
在这里插入图片描述
把gradle库更新下
在这里插入图片描述
run的时候有报错
在这里插入图片描述
直接把错误复制给cursor,它会自动去纠错,后面要是还报错,就继续重复这个步骤。
在这里插入图片描述
再次运行,一个android app生成了。
在这里插入图片描述
如果不想用模拟器,在手机上体验一下,可以直接生成apk
在这里插入图片描述
apk生成
在这里插入图片描述
安装手机测试
在这里插入图片描述
流程都跑通了,功能上可以修改提示词,不断的优化。

五、项目二五子棋

告诉deepseek要开发一个五子棋,然后把内容给都cursor。

. 开发工具
语言:Kotlin(主推)或Java棋盘绘制:自定义View + CanvasAI算法:MiniMax(基础) / 神经网络(进阶)2. 网络架构(联网功能)
通信协议:WebSocket(实时性高)后端框架:Node.js + Socket.IO数据库:Firebase实时数据库或MongoDB3. 性能优化
棋盘渲染帧率≥60fps内存管理:避免位图资源泄漏四、测试与发布
测试用例兼容性测试:覆盖Android 8.0及以上版本。压力测试:模拟1000并发在线对战。发布渠道Google Play Store,符合隐私政策(如GDPR)。五、扩展功能(可选)
AR模式:通过摄像头识别实体棋盘并同步落子。观战模式:允许用户观看他人对战并评论。AI教学:分析用户棋局并提供策略建议。六、开发周期建议
MVP版本(6周):单机双人+简单AI+基础界面。V1.0完整版(12周):联网对战+高级AI+用户系统。此文档可作为开发团队的基线需求,根据实际资源调整优先级。

复制进去以后就等待生成
在这里插入图片描述
等待一会完成了,非常友好,还写了README
在这里插入图片描述
直接在Android Studio这面点击build就可以了。
这次没报任何错,从cursor代码生成,到studio run模拟器的开启,这次是首先让deepseek给了更加明确的提示词。整个app开发,有了第一个todolist,第二个总共也就不到10分钟完成。后面可以放到手机,玩的时候发现问题可以继续优化。
在这里插入图片描述
点击settings,里面还有很多选项
在这里插入图片描述
可以根据自己喜好进行体验修改

生成apk后,在手机上安装,可以玩,三种模式可供选择,人和人,人和机,机和机,难度有简单,中等,困难
在这里插入图片描述

相关文章:

Cursor+Claude-3.5生成Android app

一、Android Studio下载 https://developer.android.com/studio?hlzh-tw#get-android-studio 等待安装完成 二、新建工程 点击new project 选择Empty Activity 起一个工程名 当弹出这个框时 可以在settings里面选择No proxy 新建好后如下 点击右边模拟器&#xff0c…...

NLP高频面试题(九)——大模型常见的几种解码方案

大模型常见的几种解码方案 在自然语言生成任务中,如何从模型生成的概率分布中选择合适的词汇,是影响文本质量的关键问题。常见的解码方法包括贪心搜索(Greedy Search)、束搜索(Beam Search)、随机采样&…...

QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)

目录 1. 修改程序界面尺寸和标题 2. 窗体图标 3. 修改可执行程序图标 上一章创建好了一个初始Qt Quick项目。本章介绍基本的项目修改方法。 1. 修改程序界面尺寸和标题 修改Main.qml文件,将程序宽度设置为1200,程序高度设置为800。同时修改程序标题…...

Transformers x SwanLab:可视化NLP模型训练(2025最新版)

HuggingFace 的 Transformers 是目前最流行的深度学习训框架之一(100k Star),现在主流的大语言模型(LLaMa系列、Qwen系列、ChatGLM系列等)、自然语言处理模型(Bert系列)等,都在使用T…...

VSCode 抽风之 两个conda环境同时在被激活

出现了神奇的(toolsZCH)(base) 提示符,如下图所示: 原因大概是:conda 环境的双重激活:可能是 conda 环境没有被正确清理或初始化,导致 base 和 toolsZCH 同时被激活。 解决办法就是 :conda deactivate 两次…...

Android项目实战搭建 MVVM架构

View层 具体代码&#xff1a; activity: /*** description:* 普通Activity基类&#xff0c;不带ViewModel,显示基本加载状态* 需要获取到子类的布局id用于databinding的绑定* author YL Chen* date 2024/9/4 21:34* version 1.0*/ abstract class BaseActivity<VB : ViewD…...

Mybatis的基础操作——03

写mybatis代码的方法有两种&#xff1a; 注解xml方式 本篇就介绍XML的方式 使用XML来配置映射语句能够实现复杂的SQL功能&#xff0c;也就是将sql语句写到XML配置文件中。 目录 一、配置XML文件的路径&#xff0c;在resources/mapper 的目录下 二、写持久层代码 1.添加mappe…...

React:React主流组件库对比

1、Material-UI | 官网 | GitHub | GitHub Star: 94.8k Material-UI 是一个实现了 Google Material Design 规范的 React 组件库。 Material UI 包含了大量预构建的 Material Design 组件&#xff0c;覆盖导航、滑块、下拉菜单等各种常用组件&#xff0c;并都提供了高度的可定制…...

奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究

一、引言 本文研究了福建奇迹运动体育科技有限公司&#xff08;简称‘奇迹科技’&#xff09;如何利用其创新产品体系和桂花网蓝牙网关M1500&#xff0c;与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效&#xff0c;为…...

分享最近前端面试遇到的一些问题

前情提要&#xff08;分享个人情况&#xff0c;可以直接跳过&#xff09; 先说一下我的个人情况&#xff0c;我是2026届的&#xff0c;目前是在找前端实习。 3月初&#xff0c;从3月3日开始在Boss上投简历。 分享我的个人故事&#xff0c;不想看可以直接滑到下面&#xff0c;…...

嵌入式基础知识学习:SPI通信协议是什么?

SPI&#xff08;Serial Peripheral Interface&#xff09;是串行外设接口的缩写&#xff0c;是一种广泛应用于嵌入式系统的高速同步串行通信协议&#xff0c;由摩托罗拉公司于20世纪80年代提出。以下是其核心要点&#xff1a; 一、SPI的核心定义与特点 基本特性 全双工同步通信…...

python每日十题(6)

】函数定义&#xff1a;函数是指一组语句的集合通过一个名字&#xff08;函数名&#xff09;封装起来&#xff0c;要想执行这个函数&#xff0c;只需要调用其函数名即可。函数能提高应用的模块性和代码的重复利用率 在Python语言中&#xff0c;用关键字class来定义类 在Python语…...

1.Go - Hello World

1.安装Go依赖 https://go.dev/dl/ 根据操作系统选择适合的依赖&#xff0c;比如windows&#xff1a; 2.配置环境变量 右键此电脑 - 属性 - 环境变量 PS&#xff1a; GOROOT&#xff1a;Go依赖路径&#xff1b; GOPATH&#xff1a;Go项目路径&#xff1b; …...

优先队列 priority_queue详解

说到&#xff0c;priority_queue优先队列。必须先要了解啥是堆与运算符重载(我在下方有解释)。 否则只知皮毛&#xff0c;极易忘记寸步难行。 但在开头&#xff0c;还是简单的说下怎么用 首先&#xff0c;你需要调用 #include <queue> 在main函数中&#xff0c;声明…...

《信息系统安全》(第一次上机实验报告)

实验一 &#xff1a;网络协议分析工具Wireshark 一 实验目的 学习使用网络协议分析工具Wireshark的方法&#xff0c;并用它来分析一些协议。 二实验原理 TCP/IP协议族中网络层、传输层、应用层相关重要协议原理。网络协议分析工具Wireshark的工作原理和基本使用规则。 三 实…...

C++实现求解24点游戏

力扣原题&#xff1a;679. 24 点游戏 - 力扣&#xff08;LeetCode&#xff09; 判断四个数字能否通过加减乘除得到24点 使用回溯遍历四个数字的每一种组合&#xff0c;具体来说&#xff0c;每次从数组中选取两个数字以加减乘除四种方式得到一个新的数字&#xff0c;这样数组的…...

Java-腾讯云短信模板兼容阿里云短信模板-短信模板参数生成

最新版本更新 https://code.jiangjiesheng.cn/article/362?fromcsdn 模板 腾讯云&#xff1a;您好&#xff01;{}的${}&#xff0c;有{}发生{} 阿里云&#xff1a;您好&#xff01;${orgName}的${monitorName}&#xff0c;有${equipName}发生${status} 原腾讯云短信发送的代码…...

简要分析IPPROTO_TCP参数

IPPROTO_TCP是操作系统或网络编程中定义的一个 协议号常量&#xff0c;用于标识 传输控制协议&#xff08;TCP&#xff09;。其核心作用是 在传输层指定使用TCP协议&#xff0c;确保数据通过TCP的可靠传输机制进行通信。 一、定义与值 头文件&#xff1a;定义在<netinet/in.…...

SOFABoot-06-健康检查

前言 大家好&#xff0c;我是老马。 sofastack 其实出来很久了&#xff0c;第一次应该是在 2022 年左右开始关注&#xff0c;但是一直没有深入研究。 最近想学习一下 SOFA 对于生态的设计和思考。 sofaboot 系列 SOFABoot-00-sofaboot 概览 SOFABoot-01-蚂蚁金服开源的 s…...

如何理解java中Stream流?

在Java中&#xff0c;Stream 是 Java 8 引入的一个强大API&#xff0c;用于处理集合&#xff08;如 List、Set、Map 等&#xff09;数据的流式操作。它提供了一种声明式、函数式的编程风格&#xff0c;可以高效地进行过滤、映射、排序、聚合等操作。 Stream 的核心概念 流&…...

Android使用RxHttp进行国密4加密解密

国密SM4加解密问题汇总 前言国密4加解密工具类RxHttp统一加解密处理解密前言 为了网络安全需要对app内请求数据接口使用SM4国密4进行加解密操作,在实施的过程中遇到了些问题 也收获颇丰,特此记录 在线SM4加密测试网址: 点击此进入网址. 国密4加解密工具类 这里我使用的是b…...

【自学笔记】Linux基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Linux 基础知识点总览目录Linux 简介文件和目录结构常用命令文件操作目录操作权限管理文本处理 Shell 脚本基础进程管理用户和组管理网络配置 总结 Linux 基础知识点…...

JavaScript与客户端开发

1、简介 简单的讲&#xff0c;JavaScript是一种脚本语言&#xff0c;为网站提供了一种在客户端运行程序的手段&#xff0c;通过它可以实现客户端数据验证、网页特效等功能。 JavaScript是一种基于对象和事件驱动&#xff08;不懂啥意思&#xff0c;暂不管它&#xff09;&…...

基于CNN的FashionMNIST数据集识别5——GoogleNet模型

源码 import torch from torch import nn from torchsummary import summaryclass Inception(nn.Module):def __init__(self, in_channels, c1, c2, c3, c4):super().__init__()self.ReLu nn.ReLU()#路径1self.p1_1 nn.Conv2d(in_channelsin_channels, out_channelsc1, kern…...

JVM垃圾回收笔记01-垃圾回收算法

文章目录 前言1. 如何判断对象可以回收1.1 引用计数法1.2 可达性分析算法查看根对象哪些对象可以作为 GC Root ?对象可以被回收&#xff0c;就代表一定会被回收吗&#xff1f; 1.3 引用类型1.强引用&#xff08;StrongReference&#xff09;2.软引用&#xff08;SoftReference…...

【初探数据结构】树与二叉树

&#x1f4ac; 欢迎讨论&#xff1a;在阅读过程中有任何疑问&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果你觉得这篇文章对你有帮助&#xff0c;记得点赞、收藏&#xff0c;并分享给更多对数据结构感…...

numpy学习笔记10:arr *= 2向量化操作性能优化

numpy学习笔记10&#xff1a;arr * 2向量化操作性能优化 在 NumPy 中&#xff0c;直接对整个数组进行向量化操作&#xff08;如 arr * 2&#xff09;的效率远高于显式循环&#xff08;如 for i in range(len(arr)): arr[i] * 2&#xff09;。以下是详细的解释&#xff1a; 1. …...

蓝桥杯备考:二分答案之路标设置

最大距离&#xff0c;找最小空旷指数值&#xff0c;我们是很容易想到用二分的&#xff0c;我们再看看这个答案有没有二段性 是有这么个二段性的&#xff0c;我们只要二分就行了&#xff0c;但是二分的check函数是有点不好想的&#xff0c;我们枚举空旷值的时候&#xff0c;为了…...

回调方法传参汇总

文章目录 0. 引入问题1. 父子组件传值1.1 父传子&#xff1a;props1.2 子传父&#xff1a;$emit1.3 双向绑定&#xff1a;v-model 2. 多个参数传递3. 父组件监听方法传递其他值3.1 $event3.2 箭头方法 4. 子组件传递多个参数&#xff0c;父组件传递本地参数4.1 箭头函数 … 扩…...

在 Linux下使用 Python 3.11 和 FastAPI 搭建带免费证书的 HTTPS 服务器

在当今数字化时代&#xff0c;保障网站数据传输的安全性至关重要。HTTPS 协议通过使用 SSL/TLS 加密技术&#xff0c;能够有效防止数据在传输过程中被窃取或篡改。本教程将详细介绍如何在 Ubuntu 22.04 系统上&#xff0c;使用 Python 3.11 和 FastAPI 框架搭建一个带有免费 SS…...