Swift开源啦

阿凡达2018-08-21 09:37


1. 苹果对Swift语言开源

2014 WWDC Swift发布,一年多的时间,Swift的发展迅猛,随着这周五Swift开源,Swift给开发者带来了更多的想象和发挥的空间。想了解更多可以查看Swift.org上的文档(想学习Swift源码实现的同学一定要先细读Swift的官方文档,看每个模块的功能细分,再分别去读感兴趣的细分模块的实现原理,然后再读源码。相信读过Linux kernel的同学会深有感受,一开始就拿着源码去啃,肯定是啃不动的),源码托管在GitHub上。

本次苹果来源了Swift 三大库:

a. Swift Complier & Standard Library(Swift编译器&基础库) ,

编译器主要负责Swift的语法解析&语义分析,将Swift语言编译成高效可执行的机器代码,同时前端提供比如Swift语法高亮,代码自动补全等一些便捷的工具(想读懂这块源码要有编译器的基础知识,词法分析、语法分析......)。

Swift基础库主要包括各种数据类型,如基础类型、协议、方法、集合及集合所遵循的协议和操作数据类型的基础算法。Swift的基础库底层是以Swift来实现的,更多的功能细分可以参考Swift官方博客-编译器&基础库基本介绍。


b. Swift Package Manger(Swift包管理器

Swift主要是用来管理和共享Swift代码的工具,与Swift build system协调来自动处理Swift的下载,链接及依赖处理。 ( max howell 与mattt参与开发,mattt竟然跳槽去了苹果)。同时苹果官方也给出了一个 demo来教你怎样写一个Library Package,同时处理各个Packages之间的依赖(demo :example-package-dealer ,感兴趣的同学可以动手写下)。


c.Swift Core Library(Swift核心库

Swift核心库提供了比基础库更高级的功能,基于 Swift 标准库。这些库提供的函数有:定位,网络,多线程,单元测试,数据持久化,文件系统访问,用户参数等功能。Swift核心库的功能将会在Swift 3.0发布,个人预计Swift 3.0将会在2016 WWDC发布。目前核心库开源了三个库Foundation、libdispatch(GCD)、XCTest(单元测试框架),这三大框架也将会随3.0发布,目前处在早期开发阶段。

更多阅读:对Swift开源理性的思考- 引用《程序员》杂志,比较早的一篇文章,涉及到语言的发展史。赞同观点:开源其实也是种商业模式,同时也是很好的营销手段。

个人观点:目前公司项目中混用Swift编程的项目应该不多,虽然大部分Objective-C的库可以与Swift混用,但是毕竟是两个不同的语言,设计理念完全不同。Swift更加安全,更加高效,随着Swift的开源,相信Swift支持的人也越来越多,至少对于iOS开发的同学,既然迟早要转到Swift,那何不从现在就开始学习呢,拥抱变化。


2. Swift Server端开发组件 Perfect

官方链接Github

Perfect是用来开发Web和其它REST services的开源组件,可以用Xcode来开发Server端,支持FastCGI 和 stand-alone HTTP,支持常用数据库连接(MySQL、PostgreSQL、MongoDB)等。

3. Swift&Objective-C混写的一些坑

在网易漫画App 1.3.0版本中已经开始用Swift与Objective-C混编,新文件基本上都采用Swift来写,其中遇到到一些坑,后面总结一篇文章,目前可参考Swifter Tips 100

  • 3.1 Swift调用Objective-C

  • 3.2 Objective-C调用Swift

  • 3.3 判等 == 与 ===

  • 3.4 Swift中的循环引用 (weak & unowned区别?)

  • 3.5 Swift&Objective-C基础类型转换(Sting&NSString,Array&NSArray, Int&NSInteger,nil...)

  • 3.6 枚举定义 (Objective-C枚举转换为Swift)

  • 3.7 单例 (Swift单例的正确写法?)

  • 3.8 第三方Objective-C开源库使用(NEKits,SDWebImage)

  • 3.9 宏定义 (Swift不支持宏定义,怎么定义宏?)

  • 3.10 构造方法(Swift构造方法与Objective-C对比,改进)

  • 3.11 更多...



网易云新用户大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者胡波授权发布。