随着swift5的发布,Swift ABI(Application Binary Interface)趋于稳定
什么是ABI稳定
在运行时Swift二进制文件通过ABI与其他的库与组件进行交互,他定义了底层的细节比如函数如何调用,数据如何在内存中呈现,元数据在哪里,以及如何访问等等。
当前已发布的Swift版本中ABI还没稳定,所以每一个APP,都自己包含它Swift版本所对应的Swift Dynamic Library。Swift并没包含在操作系统中,他存在于每一个APP内部。
这意味着任何一个App,比如APP1使用Swift3.0,那么它将包含Swift 3.0 动态库(3.0 ABI)在它内部,但是其他的APP比如APP2它使用Swift3.2,他将包含自己的3.2ABI.
如果Swift ABI稳定下来,Swift将包含在iOS操作系统里边,它将兼容每一个Swift版本,比如APP1使用Swift5.0,但是App2使用Swift5.3,他们都将包含在iOS 内部。
ABI稳定的重要性
Swift包 Size将变小
语言将变化越小,不在那么频繁
更小的迁移
开发者将可以预编译好Frameworks(当前版本frameworks在 APP编译时编译)
一、网络层
网络请求采用了Alamofire+HandyJSON的方式
二、数据持久化
RealmSwift
三、视图布局
SnapKit
四、网络图片处理
Kingfisher