现在已经进入AI时代了,还有人在坚持iOS开发吗?技术群里最近越来越多的兄弟们反馈,行业本来就不好干,现在还要被AI抢饭碗,怎么搞?

我的答案是:拥抱AI,因为它确实能提高生产力!以前可能因为一个api要查半天,现在你问一下AI,直接帮你把简单的功能给实现了!一个字,真香!在编码大模型方面,克劳德真的无人能敌!牛X

有人会问,作为一名iOSer,我们该怎么去拥抱AI呢?就我个人来讲,目前用的最多的就是CopilotForXcode这个库,我觉得广大的iOSer可以尽快用起来!别说自动写代码,个人认为提效是很明显的。

其实Trae国际版的克劳德3.7也挺香,可以去用一下,比某da强的不是一星半点儿,不差钱的大佬直接用Cursor吧!

包大小优化是日常工作中(面试)经常会碰到的场景(技多不压身),那么包大小优化都有哪些方法呢?

一般我们会从资源和代码两个层面下手,比如常见的方式有:无用代码清理、无用资源清理,今天我们主要讲Swift项目的无用代码清理。

一、目前主流的Swift无用代码查找方案有以下几种(AI给出的答案):

1、使用SwiftLint工具

2、使用Periphery

3、使用unused脚本(纯文本搜索代码,简单易懂,好上手)

二、如何使用 unused 脚本:(脚本文件地址位于文章底部【参考1】)

将Ruby脚本unused.rb放到主工程目录下,直接在终端执行以下指令:

1
ruby unused.rb

执行完成以后,你会发现终端会直接输出项目中未使用到的变量、协议、函数、类、结构体等信息,是不是很方便?

拿到了这些无用类的文件path,我们就可以直接写个shell脚本来直接删除无用类、结构体、协议。当然这里还要考虑项目中类和文件名不一致的情况,所以其实平时规范一点,一个文件一个class,这样就比较好删除了!

另外,它还可以嵌入到Xcode中,把以下代码片段放到Xcode项目对应的Target中的 Build Phases:

1
2
3
4
unused_file="unused.rb"
if [ -f "$unused_file" ]; then
ruby unused.rb xcode
fi

脚本嵌入完成后,直接运行项目,运行完成后,Xcode直接会出现未使用的代码警告提示,方便队友在日常编码的时候就能把自己相关的无用代码给删除掉。

注意:

上述脚本是纯正则匹配的文本搜索,里面可能存在误报的情况,尤其是依赖关系很复杂的情况下,漏报的也比较多,所以正常情况下还是需要开发人员进行二次确认。

除此之外,我们还可以自己编写脚本(可以让AI生成),上面提到的获取class、struct、protocol的文件path,一键删除无用代码。

关于包大小优化这一块,最近网上又有大佬开源了一个工具 APPAnalyze ,我在这里推荐一下(详见参考2),主要是学习一下人家的思路。

三、结语:

关于包大小优化,你需要掌握的关键技术点有:

Xcode构建(不同参数的设置)、LLVM编译原理(插桩查找无用代码)、cocoapods包管理(二进制化加载)、图片压缩(有损/无损)、持续集成卡口设置防裂化。

看完之后,你是不是感觉头都麻了,还有这么多东西要学?那么我建议你先挑软柿子捏:

1、从资源文件下手,因为经过数据对比,从资源文件下手收益是最大的。

2、从代码层面下手,分析LinkMap文件,可以让我们了解类、模块及三方库的代码的占用空间大小,帮助我们快速定位要优化的类或者静态库。

四、参考:

1、查找无用代码的脚本

2、APPAnalyze


更多好文推荐,欢迎关注 《iOS开发秘籍》 公众号,获取最新的内容

本文内容中部分来自网络,后续会持续更新完善。欢迎一起学习交流!

如需转载,请注明出处

Swift 无用代码查找