WWDC 2015已经过去快一个月了,今年似乎没有像去年那样变化巨大,一切都在慢慢演进,iOS、Mac OS、watchOS都变得越来越好。
新的三大平台的发布,iOS 9/Mac OS EL Capitan/watchOS 2
Apple提供了三种方式可以帮助减少App的大小
1. App Slicing: 以前的App里面会包含很多内容,比如32位/64位的二进制编译文件,@1x/@2x/@3x的图片资源文件,这样会导致程序变得越来越大。Apple通过App Slicing可以根据设备的情况下载不同的App内容,可以大幅度的减少App的大小。如果要利用到这个特性需要使用Image Asset来管理图片资源。
2. On Demand Resources: 可以将一些不是App初始化就需要使用的资源内容设定为On Demand Resource,这样可以在需要的时候再从网络下载。
3. Bitcode: 通过编译的方式减少二进制文件大小。
watchOS 2:在watchOS 1的时代,Apple Watch是需要和iPhone以前配合使用的,watch里面只有UI的代码,通过Extension和iPhone进行通信、计算。
Apple推出watchOS 2,将Extension也放在了Apple Watch里面,从而是Apple Watch可以作为一个独立的设备不再依赖iPhone。由于数据计算、通信等操作都可以在watch里面实现,所以可以改善一代watch的性能问题。
新增了Complication类型, 可以通过组合的方式去定制化watch的首页。
开放了Digit Crown的权限,可以针对crown进行编程,丰富了用户操作。
Apple改进了一系列基础性的技术
1. 性能:提供了一个新的压缩库lzfse,更好的压缩比并提高了3倍速度。
2. 节能:通过一系列节能技术可以让iPhone正常使用提高了一个小时。
3. 安全:Apple ID提供了双因子认证
4. IPv6的支持
全球化的支持:
- 更好支持人名的显示
- 从右向左语言的支持,比如阿拉伯文或希伯来文等等。在系统层面支持从右往左的文字排版,同时UI的动画也遵循当地人的习惯。
HomeKit更新
开放Spotlight搜索的接口,App可以通过集成提供搜索的结果。这个功能可以非常强大,原先数据都是在每个app内部形成一个个信息孤岛,通过spotlight搜索集成可以让搜索再次成为一级入口,直接搜索到app内部的内容。
iPad支持真正意义上的多任务,可以同时运行两个App,也支持适当的页面大小的调整。对于视频App也支持画中画模式。要支持多任务的适配,核心的概念就是Adaptive UI,Size Class+Auto Layout。
Mac OS
- 视窗管理
- Force Touch手势的支持
Swift 2.0的发布,并同时开源。Apple是不遗余力的推广Swift,随着语言稳定性的提高,Swift替代Objective-C也是越来越快了。不过对于老的项目,混编的方式还是相当痛苦,但也不能一触而就推倒重来,所以这个更替的过程还是需要比较长的一段时间。
Swift 2.0 Error Handling - 使用Throw Exception的方式,通过try-catch可以更好的处理异常
在Swift和Playground里面都可以支持富文本的注释
Stack View Layout: 这个是从Android借鉴过来的,支持横向和纵向的布局,使用Stack View来进行布局可以简化Auto Layout的配置。当然Stack View最终会帮我们生成对应的Constraints。
StoryBoard Reference: 把StoryBoard文件可以拆分到不同的文件里面,更好的管理。
更加强大的调试和崩溃分析工具- Address Sanitizer,可以在XCode里面更加容易的获得导致Crash的具体行数。目测应该会是比较方便使用的,现在业界大多是使用第三方工具来采集崩溃报告,然后通过dsYM文件来手动解析。通过XCode 7今后这样的解析工作应该更加方便了。
Apple提供了更加强大的测试工具,涵盖了单元测试,UI自动化测试以及代码覆盖率计算。以前Apple其实就有UINavigator的框架来支持UI自动化测试,而且众多第三方的自动化测试框架都是基于此,并实现跨平台。这次Apple提供了代码覆盖率的支持使得XCode作为iOS平台测试工具大大提升。然后再结合bot进行持续集成,Apple进一步完善了整个开发、测试、持续集成的能力,真正形成了一个闭环。不过对于大多数的团队来说,跨平台往往是首先需要考虑的,这也是导致像bot之类持续集成的平台只能是小众使用。
总体上来说,这次WWDC并不算惊艳,没有像去年一样推出一个新的语言,一个新的watchOS系统来的那样激动人心。Apple此次更加关注在性能、安全、节能几个环节,再从Android生态中学习补齐一些短板,例如iPad多任务的支持和Stack View的布局等等。