从年初转到 SWift 开发,已经差不多一个年头了,正好也是年底,作个总结,也算是应景。
这篇博客用于总结今年的写的博客,更多的是整理一下其他博客中未提到的资料
继承
之前的博客都在这里 新的征程,这是我建立 poos.github.io 的第一篇博客。博客大概总结了一下之前在 osChina 的博客,然后列了一堆可能会总结的点。
纳新
现在已经总结的差不多了,具体可以看一下这里:
可以看出,30 余篇博客多集中在 优化,工具,语法,设计,架构 方面。
其他的
一些值得提一提,又没必要单独拎出来的博客
Codable 和 Protocal
Swift4 开始支持 Codable, 填不了 Swift 框架解档归档模型的空白,使用 Codable 可以方便的解析 Int、String、Float 等基本类型,借助一些协议支持,解包 Date 类型、自定义类型也能实现。还是可以尝试使用的。
不同角度看问题 - 从 Codable 到 Swift 元编程
其中提到了 Swift 4.1 之后就可以使用带有条件语句 (也就是 where 从句,Element 和 Value 满足 DictionaryValue) 的 extension。使用协议的这个特性,代码能够更加的优雅。我在之前的 分享设计 博客一文中曾希望使用此种方式,无奈项目基于 4.0,现在已经使用 4.2,可以使用这个特性了。
1
2
3
extension Array: DictionaryValue where Element: DictionaryValue {
var value: Any { return map { $0.value } }
}
关于解析还有一个选择,可以使用 Sourcery + ObjectMapper 的方式。另外元编程也为其他编程提供了支持。
Reacnative
Reacnative 中文网站,有相当多的学习资料,之前也了解过一些。因为其他技能学习原因,没有深入。现在热点减少,更有大厂放弃,开发其他方案,还有新的 Flutter 语言出现,所以贴几个地址罢了。
reactnative.cn/docs
[github.com/reactnativecn/react-native-pushy](https://github.com/reactnativecn/react-native-pushy/blob/master/README.md
Swift 3.0 的编译速度问题
Swift3 代码当项目内容非常多的时候编译会非常慢,即使是非全编译也会非常难,当时在改 UI坐标 时候非常痛苦。不过最后使用拆分项目,组件化的方式了。同样贴几个网站。PS :现在改了一两行代码编译速度已经明显提升。
Uber使用Swift重写APP的踩坑经历及解决方案_搜狐科技_搜狐网
评测 Swift 3.0 项目编译优化选项对编译速度的影响 | I’m TualatriX
facebook/buck: A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages.
SSH
理解和使用 ssh 比你想象的更简单,就不展开说了。也列一个地址:
waitig pipisorry book cnblogs.com/superGG1990
ps: 配置好电脑之后,设置好 ssh, 用一个文档 clone 所有库,装新机简直不要太爽
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cd ~/Desktop/
git clone --depth 1 git@gitee.com:poos/DailyNote.git
cd ~/
mkdir poos
cd poos
git clone --depth 1 git@github.com:poos/poos.github.io.git
mkdir other
cd other
git clone --depth 1 git@gitee.com:poos/BasePrj.git
git clone --depth 1 git@github.com:poos/SwiftEFarm.git
sh 命令
shell 脚本可以在 linux 操作和读取文件,常用的统计代码行,查找项目未使用的图片都是通过 sh 脚本命令实现的。
https://blog.csdn.net/qq_39498080/article/details/78416965
http://man.linuxde.net/sh
swiftlint
用于代码风格约束。之前也写过一些文档,但只是文档级别的。这个就厉害了,在编译时候检查代码,给出警告和错误。编码风格是 facebook 团队使用的,具体可以去开源 github 上查看。使用和配置方式跟 Sourcery 差不多。
https://blog.csdn.net/mango_ios/article/details/55190625
TestFlight 外部测试 内部测试
-
connect 用户 当提交 build 之后就可以去下载,属于内部测试,人数较少(好像是20)。
-
外部测试用户理论不限数量,需要提交 testFilght 审核,然后可以对外发布。发布方式原始版本为 邮件邀请,用户下载 testFlight app,填入邀请码测试
关于1,内部测试,自己也可以构建下载环境进行下载 局域网/公网 发布ipa (类似蒲公英,fir 等)
由于这种方式难度较大,产生了一种提前邮箱批量申请邀请码,生成链接分发测试用户的操作。—-> 进一步产生了 https://testflight.top 这种专注提供这种服务的三方公司。
大概 18下半年,apple connect 提供了批量链接邀请的功能, 有需要的可以直接去 TestFlight 发布 beta 版测试。
最后
暂时总结这些吧,大多数文件比较琐碎,不能构成知识链,单个挑出也没什么意思。