iOS学习周报一

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

2. Swift Server端开发组件 Perfect

官方链接、 Github

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

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

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 更多...

主要是自己的项目过程中一些总结,后续会出篇总结文章,目前可参考Swifter Tips 100

4. iOS页面流畅性能优化

关于页面流畅性能优化的文章特别多,UI性能优化一直是iOS开发永恒的主题,图片显示原理?CPU or GPU ? 离屏渲染?帧缓存 ?Core Graphics ? OpenGL_ES? Core Animation?  ...... 概念太多?想学习的太多,网上博客别人总结得再好,那也是别人的经验,零零散散,不成系统?看完了也就忘了......

那下面这本书肯定会解决你的烦恼,用Core Animation来做动画只是它的冰山一角,更多Core Animation的高级特性可以阅读这本书。

5. FPS计算的一些开源库

FPS是用来衡量页面滑动是否卡顿的重要参数,除了用instruments来去计算FPS,以下开源库封装了一些FPS的方法,对于去封装一个该组件有很好的参考和学习作用。

KMCGeigerCounter 、 RRFPSBar、FPSBar

你可能感兴趣的:(iOS学习周报一)