不久之前,在公司的某一个小黑屋里面,发生了一段这样的对话
领导:你会写ios代码不
我:完全不会,以前都没接触过
领导:那现在上面有个决定,想把现在你那个项目的ios端交给你负责,你有啥看法不
我:那个项目很老诶,听说还oc跟swift混编的,我一个ios菜鸟直接上手风险太大了吧,在说那个项目现在不是A哥负责吗
领导:你A哥不是还有别的活吗,精力没那么多,在说现在不是有AI吗,有啥不懂的你问AI
我:AI写的代码我也不能确定对不对啊,不能再招一个人吗
领导:哎~招啥人啊,这不得花钱吗,你知道你老板想开路虎想了很久了,现在一直在存钱,再招个人每个月不得又多花几个w吗,你多辛苦辛苦,争取老板能早点开路虎
我:这样啊。。。那到时候路虎能借我开几天不
领导:不行
总之领导的观点就是,不懂ios没关系,AI可以帮助你,那么今天我们来看看,我一个菜鸟能不能在AI的帮助下搞定ios开发,顺利完成接下来的一些ios需求
AI能帮我做什么
代码翻译
上面说到看不懂ios代码,那先想到的就是让AI帮我做翻译,把同样功能的Android代码翻译成ios代码,因为上家公司里有个ios同事自己有在学Android开发,他那会就是这么做的,这次来借鉴一下他的方法,比如我需要把一个网络请求模块从Android迁移到ios
我给AI的输入

AI给我的输出

这样就转过来了,但其实光给代码片段是不够的,咱不能认为我们知道的事情AI就一定能知道,必须同时把一些其他信息也告诉AI,比如项目用的什么网络库、什么JSON解析库,这些可以让AI先扫一下ios项目里面配置信息,也可以直接告诉它,下面是一个Prompt模版

可以看到除了告诉AI一些信息之外,还要让AI在生成的代码上加上注释,或者写上为什么这么写,反正不能仅仅只给代码,因为我现在是ios菜鸟,根本看不懂纯ios代码
概念映射
毕竟都是移动端的项目,ios和Android从概念上肯定有很多相似的地方,但名称和用法完全不同,当我们看到这些代码时候,如何才能让他们成为我们熟悉的代码呢,这里可以让AI帮忙翻译一下
| Android | iOS | 差异点 |
|---|---|---|
| Activity | UIViewController | iOS 没有 onCreate 的概念,生命周期方法不同 |
| Fragment | UIViewController(iOS 没有 Fragment) | iOS 用 Container View 或 child VC 实现类似效果 |
| Intent | URL/Target-Action/Coordinator | iOS 没有 Intent 机制,路由方案更分散 |
| AndroidManifest.xml | Info.plist | 权限声明、页面注册等 |
| Gradle | CocoaPods / SPM / Xcode Build Settings | 依赖管理差异很大 |
| Room | CoreData / SwiftData | Room 的 DAO 模式和 CoreData 的 NSManagedObjectContext 思维差异很大 |
| SharedPreferences | UserDefaults | API 不同但用途类似 |
| BroadcastReceiver | NotificationCenter | 观察者模式的双端实现 |
| ContentProvider | 无直接对应 | iOS 用 App Groups / Share Extension 实现类似功能 |
| ViewModel | ObservableObject / @StateObject | SwiftUI 的响应式编程 |
| LiveData / Flow | Combine Framework / @Published | 数据驱动 UI 更新 |
| DataBinding | @State / @Binding | SwiftUI 的声明式绑定 |
| Dagger / Hilt | Swinject / Needle | 依赖注入框架 |
| Glide / Coil | Kingfisher / SDWebImage | 图片加载 |
有了这个表格后该怎么用呢,可以这样跟AI说

构建知识库
这个我感觉是最重要的一点,必须建立一个结构化的知识库,让 AI帮忙维护起来,就像用一个第二大脑来帮我掌握ios知识,知识库结构大致如下

AI可以做的事
- 每周自动整理踩坑日志 : 去重、归类到对应手册
- 生成索引和交叉引用 : 让知识库可检索
- 检查知识过时 : 发现 API 废弃或新版本变更
- 补充缺失章节 : 发现我遇到某个问题但手册还没写
没有哪个知识库是一下子就能搭建起来的,都是通过日复一日的需求,问题,经验慢慢沉淀下来的,日常工作中可以经常让AI更新一下知识库,比如

调试辅助
Android里面遇到问题,基本看下日志就能大致定位出来问题在哪,ios也一样的,如果有一天让我处理一个ios的Crash,该咋办呢?肯定也是看日志,但是ios日志咱看不懂,不过没关系,AI看得懂就可以了,比如收到一个Crash如下

可以这样跟AI说

AI就会给你以下答复

代码审查
零基础的ios菜鸟在做ios项目的时候不可避免的会经常发出疑问,我刚写的代码对不对,刚才AI生成的代码究竟能不能用,这个时候就需要让AI来做code reviewer

测试生成
一般老项目里面最缺的除了注释就是测试代码,这部分也可以让AI给补上

迁移方案设计
有时候双端用的架构模式不一样,ios是MVC,Android是MVVM写,如果架构模式不一样也很难做到上面说的代码翻译,所以需要AI设计一个渐进式迁移方案

三方库选型
在Android上我闭着眼睛都知道用什么库,但ios上我却两眼一抹黑,都有啥三方库都不知道,只能让AI帮我做选择

AI做不了的事
上面说了AI能做的,当然也会有AI做不了的,不可能顺顺利利的就让我上手ios开发,有些事情还必须通过AI之外的方式去完成
Xcode操作
就像AI不能操作Android Studio界面一样,它也没办法操作Xcode的图形界面,特别是以下几点目前是做不到的
- 证书和 Provisioning Profile 配置:开发者账号、证书过期、描述文件失效,这些纯靠经验
- Xcode Build Settings 调试:Framework Search Paths、Other Linker Flags 这些配置项,报错信息经常不直观
- Archive 和 Export 流程:Distribution 证书、Export Options.plist 配置
- TestFlight 上传和审核:ITC(App Store Connect)的操作流程
那应该怎么做呢,咱不是有知识库吗,可以先把所有操作步骤截图,录频保存到知识库里面的打包签名+上架流程.md,每个步骤需要配上文字说明,常见的报错以及解决方案,下次遇到同样问题,先查自己的文档,就像做笔记一样
App Store审核
国内外的Android应用市场的审核我都经历过了,基本啥幺蛾子都见过,但是App Store的审核是怎么个流程,咱是一窍不通,这个得实际操作过才能知道,AI肯定也不会说的特别准确,比如下面这些场景还是需要真人来介入
- 被拒后的申诉策略需要人来判断
- 审核指南有很多灰色地带,AI给的判断不一定对
- 加急审核的申请理由需要人情世故,满嘴AI味儿还想指望人家给你过审?
性能调优
Android里面的内存,功耗调试得借助一些工具来进行,比如Android Studio的Profiler,你不可能让AI来使用Profiler来帮你分析,ios也一样的
- Instruments 工具你得会用吧
- 内存泄漏得会排查吧
- 如何优化渲染带来的性能问题,也得知道
老项目的祖传代码
还有一些问题,是我最担心的,别说ios了,就算在Android里面也发生过,就是经常将一些跟需求无关的代码也一起改掉,这些代码可能用了废弃的Api,可能用了与规范不符合的代码,可能逻辑只有当事人来了才看得懂,但是这类代码大家都懂,都是不能删的,删了要出事,但是AI不知道,AI只会根据你的上下文,或者知识库来改代码,改完了巴不得还得让你说一声谢谢,一旦AI把这些"核心"代码删了,Android项目还好,我还能把控的住,可以还原,但是同样的事情如果发生在ios项目中,身为ios小萌新的我可能就不会察觉了,后果自然是一提测,问题一大堆,最可怕的是,测试没覆盖到,直接上线了,然后一堆用户反馈叽叽喳喳的
可能会用到的Prompt
在准备点东西吧,我假象了一下后面可能会经历的ios开发流程,整理了一些Prompt模版供以后使用
翻译代码
我是Android开发,零ios基础。 项目使用 Alamofire/Kingfisher/CoreData。 请把下面的 Android 代码翻译成 Swift 实现。 要求:
- 每行代码加注释解释
- 在注释中标注对应的 Android 概念
- 给出完整的可运行代码
- 注意项目的 iOS 最低版本是 iOS 14
排查错误
我是ios新手,编译报错如下: 粘贴报错 相关代码: 粘贴代码 请解释:
- 为什么报错
- 在 Android 中相当于什么错误
- 怎么修复
学习概念
我是 Android 开发,请用 Android 的 概念A 做类比,解释 ios 的 概念B。 给出一个完整的代码示例。 重点说明两者的差异和容易踩坑的地方。
代码审查
请审查以下ios代码,我是一个Android转ios的新手:
- 是否有内存泄漏问题
- 是否有线程安全问题
- 是否符合ios最佳实践
- 是否有更好的Swift写法
- 这段代码在Android中可能不会有问题,但在ios中需要注意什么
最后
以上事件均为真实情况,如有雷同,那就将这篇文章转发给你们的领导老板,AI时代实现多端开发不是不能做,但是存在一定的风险以及门槛,前期最好期望值不要太高,也需要一定的耐心,留出一定的缓冲时间交给开发去推进这个事情,如果不给你缓冲时间,那么就
