前言
许久未更新内容了,除了被公司的项目倒腾、拉扯之外,其实最近几个月还是干了许多事情的。我就随便聊聊吧。
一、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