聊聊我最近都干了些什么,AI 时代的手动撸码人

前言

许久未更新内容了,除了被公司的项目倒腾、拉扯之外,其实最近几个月还是干了许多事情的。我就随便聊聊吧。


一、RxStudy 项目尝试同时集成Flutter模块与UniApp模块

其实这个尝试,没有使用AI的功能,完全就是我自己无聊做的一点尝试,我将自己的UniAppPlayAndroid打包成为wgt,然后把GetXStudy项目的Flutter模块全部都集成到RxStudy项目,做了一个超级大杂烩,并且尝试几个端的通信,大家看看效果。

项目截图

二、RxStudy 项目从 CocoaPods 向 Tuist 迁移

CocoaPods 停止维护的消息,iOS 开发者应该都有所耳闻。趁着这个机会,我拿自己 2019 年就开始维护的 RxStudy 练手项目做了一次大迁移。

迁移方案 :CocoaPods → Tuist + Swift Package Manager (SPM)

迁移耗时 :前前后后大概 3天(从开始到项目能跑起来)。说实话,本来以为会花费更多时间,没想到有了 AI 的帮助,大概就花了这么点时间就搞定了,大大出乎我的意料。

迁移内容

  • Project.swift 定义项目结构、Targets、SPM 依赖引用
  • Tuist/Package.swift 管理 20+ 第三方库的 SPM 版本
  • 本地 Package 封装(HUD、网络请求封装、工具类、路由框架)
  • 双 Target 架构:RxStudy(UIKit + RxSwift) 和 SwiftUIApp(SwiftUI)

![Tuist + SPM 架构图]

AI 表现:大部分时间花在 Tuist 配置文件的编写上,AI 生成的代码基本可以直接使用,复盘时发现主要还是项目结构本身比较规范。


三、RxStudy 项目从 UIKit 向 SwiftUI 迁移

在完成 CocoaPods 向 Tuist 迁移后,我又给 AI 安排了一个新任务:把 RxSwift 里的 UIKit 代码向 SwiftUI 进行迁移。

迁移策略 :采用双 Target 并行架构,而非一次性替换

Target 技术栈 说明
RxStudy UIKit + RxSwift 原有代码
SwiftUIApp SwiftUI + @Observable + async/await 新迁移代码

迁移结果 :SwiftUIApp 这个 Target 里的代码,95% 都是 AI 写的,我只是给出了部分建议,以及尝试在两个 Target 中复用网络请求层代码。

迁移模块(共10个):

模块 功能
Home Banner + 文章列表
Project 项目分类
PublicNumber 公众号
Tree 体系结构(二级树形)
Mine 用户中心
Login 登录
Collect 收藏列表
Coin 积分明细
CoinRankList 积分排行榜
Search 热搜 + 搜索结果

技术栈变化

类型 迁移前 迁移后
状态管理 RxSwift (RxSwift 6.9.0) @Observable + async/await
状态绑定 RxCocoa SwiftUI 原生
网络层 Moya + RxSwift Moya + async/await

说明 :SwiftUI 迁移没有使用 Combine,而是使用了 iOS 17+ 的 @Observable 宏和 Swift 的 async/await,代码更简洁。

项目截图

AI 表现:对迁移的功能表示满意,尤其是网络请求层的复用处理得不错。不过 SwiftUI 部分复杂的交互动画(比如下拉刷新 + 列表滚动 + 头部视差效果),还是需要自己动手调整。


四、UniAppPlayAndroid 小程序 Vue2 向 Vue3 升级

实际上我很久之前写过一个 UniApp 版本的玩安卓,只是很久没有维护了。由于我想把这个 UniApp 打包的 wgt 文件在 HarmonyOS Next 里通过小程序运行,但 uniCloud 环境仅支持 Vue3 版本的小程序。

想着 AI 不用白不用,于是让它帮我进行迁移。

迁移耗时 :大约 2小时 完成全部迁移。

技术栈变化

类型 Vue2 Vue3
Vue 2.x 3.4.21
状态管理 Vuex Pinia 2.1.7
构建工具 webpack Vite 5.2.8
uni-app 旧版本 3.0.0-alpha
页面写法 Options API Composition API

支持平台

平台 状态 说明
H5 使用 Vite 代理解决跨域
微信小程序 完全支持
Android App 可编译 wgt 热更新包
iOS App 可编译 wgt 热更新包
HarmonyOS Next 存在 WebView bug,使用条件编译规避

典型问题与解决方案

问题 解决方案
根目录缺少 index.html 创建 Vue 3 入口 HTML
uview-plus 样式找不到 改用原生组件
可选链 ?. 不支持 替换为 && 短路求值
CORS 跨域 Vite devServer 代理
HarmonyOS WebView 崩溃 使用条件编译显示占位页

AI 表现:18个页面全部迁移完成,有完整的迁移文档和迁移指南。迁移过程中遇到的一些边界问题,AI 给出的解决方案都比较合理。


五、HarmonyStudy 项目 HarmonyOS Next 代码 5.0 向 6.0 迁移

让 AI 将项目从 5.0 向 6.0 迁移,它顺便把一些第三方库也帮我进行了迁移和升级。

路由系统 API 重大变更

typescript 复制代码
// 5.0 (已废弃)
router.pushNamedRoute({ name: 'pageName', params: {} })
router.getParams()

// 6.0
router.push({ uri: 'pages/pageName', params: {} })

LoadingDialog 兼容性问题

  • 5.0:CustomDialogController 必须在正确的 UI 上下文中创建
  • 6.0 解决方案:引入 @jxt/xt_hud 库,通过全局 UIContext 初始化

第三方库依赖

版本 说明
@ohos/axios 2.2.7 HTTP 网络请求
@pura/harmony-utils 1.4.0 工具库
@jxt/xt_hud 3.4.0 Loading/Toast(6.0 新增)
@ohos/imageknife 3.2.8 图片加载缓存

项目截图: 配合上面UniAppPlayAndroid的Vue2到Vue3的升级,我终于可以在打包好的wgt文件在HarmonyOS Next正常运行起来了。

AI 表现:路由迁移采用了最小改动方案,保留兼容性。AI 还顺便优化了 Router 类的实现,并完成了 Network HAR 模块的封装。


六、GetXStudy 项目优化代码

我个人觉得这个 Flutter 项目可以优化的地方有限,但 AI 还是给了一些不少的中肯意见,没事就让它跑跑,还是做了不少提交。

优化内容

优化项 详情 状态
修复废弃 API MaterialStateProperty → WidgetStateProperty ✅ 已完成
替换 print 8处 print → logger.d() ✅ 已完成
图片压缩 launchImage.png 4.9MB → 可压缩 70-90% ✅ 已完成
Git Hooks 添加 pre-commit 自动化检查脚本 ✅ 已完成
清理导入 5处未使用的 import 移除 ✅ 已完成
密码安全 明文存储 → flutter_secure_storage 加密 ✅ 已完成
网络缓存 减少约 60% 重复请求 ✅ 已完成
异常处理 统一 ErrorHandler 工具类 ✅ 已完成

AI 表现:提供了详细的优化报告(OPTIMIZATION_REPORT.md、ADDITIONAL_OPTIMIZATION.md),优化效果量化可查。


结论

AI 使用组合:Claude + MLG 4.7 和 Claude + MiniMax 2.5

实话实说

  • 对于 AI 的使用我并不算特别多,MLG 是试用了同事的,后来 MiniMax 因为个人原因买了 490 元的套餐
  • AI 确实解放了不少生产力,比如自己有的时候不太想写的代码,或者需要阅读理解的旧代码
  • 对于迁移、分析这种事情 AI 表现不错
  • 对于移动端开发,如果你写好一个模板,让它按照模板写一些功能与业务它也接得住
  • 不要期望它写过于复杂的交互就可以

几个项目的共同特点

  • 都是基于 WanAndroid 开放 API 的客户端
  • 都是一个人维护的个人项目
  • 都经历了较大的技术架构升级

个人感悟:时常在想,就这么付费上班,是不是也挺肉疼。后来想想,上班没那么累,下班可以正常走,也算行吧。


附录:项目地址

项目 GitHub 地址 相关分支
RxStudy (iOS) seasonZhu/RxStudy refactor/tuist-migration (CocoaPods→Tuist) refactor/swiftui-migration (UIKit→SwiftUI)
RxStudy (iOS) seasonZhu/RxStudy develop_flutter (集成Flutter、UniApp模块)
UniAppPlayAndroid (跨平台) seasonZhu/UniAppPlayAndroid develop_vue3 (Vue2→Vue3)
HarmonyStudy (HarmonyOS) seasonZhu/HarmonyStudy develop_os6 (5.0→6.0)
GetXStudy (Flutter) seasonZhu/GetXStudy optimize-project (代码优化)

作者 GitHub@seasonZhu

相关推荐
霪霖笙箫2 小时前
「JS全栈AI Agent学习」二、反思、工具使用、规划——让 Agent 从"执行者"变成"自主完成者"
前端·agent·ai编程
FreeBuf_2 小时前
俄罗斯关联APT组织TA446利用DarkSword漏洞工具包针对iPhone用户发起钓鱼攻击
ios·iphone
Digitally2 小时前
三种将文件从iPhone传输到 Windows 11的方法
ios·iphone
搜佛说2 小时前
14-第14章-扩展点与插件机制
物联网·ios·开源·软件工程·边缘计算·iphone
与虾牵手2 小时前
Redis 缓存穿透怎么解决?踩坑 2 天,我把 3 种方案都试了一遍
ai编程
wuhen_n2 小时前
ReAct模式理论:让AI学会“思考-行动-观察”
前端·javascript·ai编程
wuhen_n2 小时前
错误处理与容错机制:让AI学会“从失败中学习”
前端·javascript·ai编程
2501_915106323 小时前
Flutter 开发工具有哪些 跨平台项目开发与上架实操指南
android·flutter·ios·小程序·uni-app·iphone·webview
吃不胖爹3 小时前
flutter项目如何打包,创建签名与配置签名
javascript·flutter·架构