最近跟一个做了多年Android的朋友聊,他说:"现在写代码跟3年前完全不一样了。"
我说:"怎么不一样?"
他说:"以前是我想代码怎么写,现在是AI写我来review。感觉我成了AI的代码reviewer。"
但仔细想想,这真的是降级吗?
这3年,到底发生了什么
2022年底,ChatGPT一夜爆火。那时候我们还在问:"AI能帮我写代码吗?"
现在2026年初,问题变成了:"没有AI,我该怎么开发?"
不管你是做Android、iOS、React、Vue,还是Flutter、React Native——AI的演进路径是一样的。只是技术栈不同,但AI重构的是"开发这件事"本身。
那会儿我们怎么写代码
还记得2022年底之前吗?
Android这边:
- 写一个RecyclerView,手动写ViewHolder、Adapter、LayoutManager
- 写网络请求,手动写Retrofit接口、手动解析JSON、手动处理错误
- 写ViewModel,手动创建MutableLiveData、手动postValue
前端这边:
- 写一个列表,手动写useState、手动写useEffect、手动写loading状态
- 写表单验证,手动写正则、手动写错误提示、手动写防抖
- 写API调用,手动写fetch、手动写async/await、手动处理401/403/500
那时候的问题是什么?
- 80%的时间在写重复代码
- 20%的时间在思考业务逻辑
- StackOverflow是第二IDE(复制粘贴)
2022年底-2023年:ChatGPT爆发,从"搜索"到"对话"
ChatGPT发布那天晚上,我第一时间去试了。
我问:"如何用Kotlin实现一个RecyclerView,支持多种ViewType?"
ChatGPT给了我一个完整的实现方案。代码能跑,逻辑是对的。
但那时候我发现一个问题:
ChatGPT不了解我的项目结构。它给的代码,我需要手动复制到Android Studio,然后自己改包名、自己改依赖、自己改API接口。
这跟StackOverflow有什么区别?
唯一的好处是,我不用搜10个网页拼凑答案了。但"复制粘贴"这个动作本身没有变。
前端也一样。
你问:"如何用React实现一个无限滚动列表?"
ChatGPT给你代码。但你怎么知道它用的React版本跟你项目一致?你怎么知道它用的fetch API跟你项目的axios封装兼容?
那时候AI只是"更聪明的搜索引擎"。
它帮你快速找到答案,但"把答案变成能跑的代码"——这个工作还是你来做。
2023-2024年:Copilot大面积采用,从"对话"到"补全"
ChatGPT火了之后,大家开始尝试GitHub Copilot。
但真正大面积使用,是2023-2024年的事。
为什么?因为企业需要时间评估安全性、合规性。等大家都想明白了"可以用",Copilot才开始真正普及。
补全改变了什么
Android这边:
你写:
class UserAdapter : ListAdapter<User, UserViewHolder>() {
还没等你写完,Copilot已经把下面这大段代码补全了:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): UserViewHolder {
val binding = ItemUserBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return UserViewHolder(binding)
}
override fun onBindViewHolder(holder: UserViewHolder, position: Int) {
holder.bind(getItem(position))
}
前端这边:
你写:
const [users, setUsers] = useState<User[]>([]);
Copilot补全:
useEffect(() => {
fetchUsers().then(data => setUsers(data));
}, []);
const handleDelete = (id: string) => {
setUsers(users.filter(u => u.id !== id));
};
这看起来只是"省了打字时间"吗?
不完全是。
Copilot真正改变的是:你不需要记忆API了。
- RecyclerView的onCreateViewHolder怎么写?Copilot记着。
- React的useEffect依赖数组怎么写?Copilot记着。
- Retrofit的suspend函数怎么写?Copilot记着。
你只需要记住"我要做什么",而不是"怎么写"。
但Copilot的问题在哪
它太"局部"了。
它只看到你当前的光标位置,最多看到当前文件的上下文。
它不知道:
- 你的项目用的是MVVM还是MVP
- 你的网络请求有没有统一的错误处理封装
- 你的状态管理是用Redux还是Zustand
- 你的样式是用Tailwind还是CSS Modules
所以Copilot生成的代码,50%能用,50%需要改。
2024-2025年:Cursor流行 + Claude 3普及,当AI能"读懂"你的项目
2024-2025年,两个关键变化同时发生。
Cursor:AI原生编辑器开始流行
Cursor不是传统IDE + AI插件,而是从零就为AI设计的编辑器。
你用@符号可以引用整个项目:
// 你在Cursor里写:
"帮我重构@UserRepository,使用更现代的异步模式"
// Cursor会把整个UserRepository文件传给AI,
// AI理解完整上下文后,给出重构方案
这跟Copilot有什么区别?
- Copilot:看光标前后几行
- Cursor:看整个文件、整个项目
Claude 3:长上下文普及
Claude 3发布后,200k tokens的上下文窗口让AI真正"读懂"项目成为可能。
Android这边:
你把整个UserRepository.kt贴给Claude:
// 你说:"这是我现在的Repository,帮我重构为使用Flow和Result封装"
// Claude会:
// 1. 分析你现有的架构(是单例模式?是依赖注入?)
// 2. 理解你的错误处理方式(是throw Exception?是返回Result?)
// 3. 重构为Flow,但保持原有的业务逻辑不变
// 4. 生成完整的、能跑的代码
前端这边:
你把整个UserProfile.tsx贴给Claude:
// 你说:"这个组件太乱了,帮我拆成更小的组件"
// Claude会:
// 1. 分析组件的职责(是否做了太多事?)
// 2. 识别可复用的UI单元(头像、信息卡片、操作按钮)
// 3. 拆分成多个子组件,保持Props类型安全
// 4. 保持原有的样式和交互逻辑
效率提升是实打实的。
以前重构一个Repository,你需要1天(理解现有代码 → 设计新架构 → 逐步重构 → 测试)。
现在,你只需要2小时(跟Claude讨论方案 → review它的重构 → 微调)。
2025-2026年:Claude Code + MCP + Projects + Skill,当AI能"操作"你的代码库
2025-2026年,这是最新的变化,也是质变。
Claude Code CLI:从"对话"到"操作"
之前:你在网页端跟Claude对话,复制代码回IDE。
现在:Claude Code直接在你的终端里,可以读取文件、修改文件、运行命令。
# 安装Claude Code
npm install -g @anthropic-ai/claude-code
# 在Android项目根目录
claude-code
# Claude Code会:
# 1. 扫描整个项目结构
# 2. 理解Gradle配置
# 3. 识别Android模块
# 4. 可以直接读取/修改文件
MCP协议:让AI连接你的工具和数据源
MCP (Model Context Protocol),让AI可以"连接"到外部工具。
Android这边:
# MCP让Claude Code可以:
# 1. 读取build.gradle,知道你用了哪些依赖
# 2. 读取AndroidManifest.xml,知道你有哪些权限
# 3. 读取Room数据库的Entity定义,知道你的数据结构
# 4. 读取Logcat输出,帮你定位crash
前端这边:
# MCP让Claude Code可以:
# 1. 读取package.json,知道你的依赖版本
# 2. 读取tsconfig.json,知道你的TypeScript配置
# 3. 读取API路由定义,知道你的后端接口
# 4. 读取浏览器Console,帮你定位JS错误
Custom Projects + Skill:让AI记住你的规范
Claude的Projects和Skill功能,让AI可以"记住"项目规范。
你设置一份规则:
# 我的Android项目规范
1. 所有UI必须使用Jetpack Compose,不用XML
2. 所有网络请求用Retrofit + OkHttp
3. 数据层用Room + Flow
4. 依赖注入用Hilt
5. 所有异步操作用Kotlin Coroutines
---
# 我的前端项目规范
1. 所有组件用TypeScript,不用any
2. 状态管理用Zustand,不用Redux
3. 样式用Tailwind CSS,不用Sass
4. API调用用axios封装,不直接用fetch
5. 表单验证用react-hook-form + zod
Claude Code生成的代码,会自动遵循你的规范。
你不需要反复说:"这里用TypeScript"、"那里用Zustand"。
它记住了。
那我们变成什么了?
回到开头那位Android朋友说的话:"我感觉成了AI的代码reviewer。"
这真的是降级吗?
突然想到一个问题:
医生用AI辅助诊断,他变成"AI的reviewer"了吗? 建筑师用AI辅助设计,他变成"AI的reviewer"了吗?
不,他们变成了"AI的决策者"。
你的价值在哪里
以前:
- 记住Android API怎么用
- 记住React Hooks的依赖规则
- 记住Tailwind的class名
- 记住Compose的State管理
现在:
- 理解业务需求,判断技术方案
- Review AI生成的代码,确保没有bug
- 架构设计,决定模块怎么划分
- 性能优化,知道瓶颈在哪里
AI帮你"写代码",你负责"决定怎么写"。
这不是降级,这是升级。
问题是:你准备好迎接这个变化了吗?
如果你还在纠结:
- "AI会不会取代开发者?"
- "用AI会不会让我变笨?"
- "我是不是应该抗拒AI?"
那你可能已经落后了。
现实是:
- 会用AI的Android开发者,效率是传统开发者的4-6倍
- 会用AI的前端开发者,一天能完成以前一周的工作
- 企业开始要求"AI熟练度"作为招聘标准
不是AI取代你,而是"会用AI的人"取代"不会用AI的人"。
一个立即行动的建议
本周内配置好Claude Code + MCP环境。
具体步骤:
- 安装Claude Code CLI:
npm install -g @anthropic-ai/claude-code - 在Android项目中配置MCP Server(连接Gradle/Room/Logs)
- 编写你的项目Custom Rules(Compose/Hilt/Flow规范)
- 让AI帮你重构一个现有模块,验证效果
不要等"准备好了"再开始。
因为最好的学习方式,就是边用边学。
写在最后
3年前,我们用ChatGPT回答问题。 2年前,我们用Copilot补全代码。 1年前,我们用Claude理解项目结构。 现在,我们用Claude Code + MCP + Projects + Skill,让AI成为开发的"基础层"。
3年后的现在,AI不是"工具",而是开发的"操作系统"。
但无论工具怎么变,有些东西永远不会变:
- 理解业务需求的能力
- 架构设计的思维
- 代码审查的严谨
- 技术决策的判断
这些,才是开发者的核心价值。
问题是:你准备好用AI来释放这些价值了吗?