本文由远的风景翻译自raywenderlich,作者:Tim Mitra
原文: Top 10 WWDC 2015 Videos
对于暂无机会参加苹果WWDC的开发者来说,视频学习是个不错的办法。不过在 苹果WWDC 2015 页面 上有90多个视频,但时间有限,还要慢慢消化这些新东西,挺耗时耗神的,并且每个开发者关注的点也不一样,该如何选择呢?
为此,raywenderlich教程组在进行比较后选出了10个视频,并建议开发者从第一个视频开始学习。
小贴士:为了能在有限的时间学到更多内容,建议开发者从WWDC网站上下载离线视频,并使用VLC播放器以1.5x或者2.0x的速度播放。
1) Platforms State of the Union [ 视频链接 ]
如果你的时间仅够看一则视频,那就是这个了!
对于开发者来说,WWDC的真正的开始就是“Platforms State of the Union”这一节。主题演讲基本上没什么内容,主要是为了取悦大众、投资人和苹果的死忠粉。相比而言,“Platforms State of the Union”才是慢慢展露有趣的细节的开始。
该演讲讲了一些新技术,并给出了每个技术细节对应的研讨会,“State of the Union include”演讲的亮点包括:
Xcode 7中的新功能,比如测试、布局、App Slicing、On Demand Resources以及Bitcode。
iOS 9的新特性,比如搜索、UIStackView、多任务处理以及GameplayKit等。
watchOS 2中的新特性,最引人关注的是该平台可运行原生的app,为开发者带来了许多新的变化和机遇。
此外,“Platform State of the Union”还涵盖了其他不少新内容,本文暂不一一举出。
2) Protocol-Oriented Programming in Swift [ 视频链接 ]
Swift 2 通过 Protocol Extension 大幅强化了 protocol 在这门语言中的地位,而整个 Swift 标准库其实也是基于 protocol 来设计的,使用了大量的 protocol。可以说 Swift 是一门面向 protocol 的语言。这篇教程中列举了一些 protocol 在实际使用中的方法,可以让你掌握面向接口编程的基础知识。
每场研讨会都吸引了团队的注意力,Protocol-Oriented Programming in Swift更是如此。几乎每个成员都表示这个研讨会分享是自己的首选。苹果工程师Dave Abrahams让我们抛开普通的开发方式,跟随他的思路使用protocol-oriented开发方式,而不是类。
在列举完类的好处后,他从反面说到这些益处揭示了Swift是一种基于协议的语言。用动态多态性交换静态多态性,他认为协议和新协议扩展要优于抽象体的超类。在Building Better Apps With Value Types in Swift中也概述了更加强大的Protocols。
3)用Swift的Value Types编译更优秀的app [ 视频链接 ]
“OOP开发者习惯于主要处理引用类型(reference types),但是值类型(Value Types)在Swift中用处更大,这个研讨会可以很好地探索它们的能力。” – Jozsef Vesza
这个视频紧接#2视频Protocol-Oriented Programming in Swift,演示了如何在Swift开发中使用协议和值类型。该演讲涵盖了引用类型和值类型之间的区别差异,以及如何同时使用这两者。
演讲者通过示例描述了Adobe如何在实践中使用值语义。对于一些团队成员来说,这节研讨会是必须要看的。
4)高级 NSOperations [ 视频链接 ]
这节研讨会介绍了iOS开发中存在已久的一个主题—NSOperations,即便如此,这节研讨会还是非常有帮助的,讨论了如何在实践中高效使用NSOperations的问题。
在该视频中,Dave DeLong分享了如何在官方WWDC app中高效使用NSOperations的经验,同时还谈到了WWDC app中登陆、视频、提醒以及其他几个模态操作。
比如,用户可以阻止提供反馈直到他们用自己的开发者账号登陆。将blocks 和NSOperations一同使用可避免该类错误的发生。
单个操作也能创建其自己的依赖,并且操作可以彼此协调工作,在操作中添加逻辑可让后期更改app变得异常简单。
5) Xcode 中的UI Testing [ 视频链接 ]
今年苹果将UI Testing 从Instruments中移到Xcode 7中。此前,测试UI要求使用Javascript和UIAutomation,但在Xcode 7中,你可以原生地执行UI测试,这样你可以找出UI元素的位置,并验证其位置和属性。
XCTest和Accessibility集成在一起,允许XCTest和你的应用程序以用户可能使用的方式进行交互。对我而言,Xcode 7可以毫不费力地将测试最为开发周期中的常规部分。
视频演示demo展示了在Xcode 7中使用XCTestElements和XCTestQueries轻松记录和创建测试的过程。在app中包含Accessibility可让身体不大健全的用户从你的应用程序中获得更多。
你可以通过测试报告检查运行在你应用程序上的测试。如果你对为app创建测试或者为app创建更好的测试非常好奇,可以看看这个视频。
6)Swift的新特性 [ 视频链接 ]
毫无疑问,Swift对未来的苹果开发至关重要;Swift在2015年秋季宣布开源,大大提高了其可用性。
本节由Swift项目创始人之一Chris Lattner,及负责Swift 2.0升级的工程师John McCall携手进行主持。你应该重点关注错误处理机制的改进,当然也别忘了其他新特性。本节讲到了Swift Migrator的功能,它可将你的代码转变成最新语言版本。
Compound conditions增加了新的特性,包括改进后的匹配模式和rich conditional中新的guard语句。内联编码使得switch语句和模式匹配在Swift 2.0中更好用了。新功能与特定OS系统间的兼容性如何?新的#available语句可以帮助我们进行测试并找到答案。想要了解更多,请查看视频或阅读Greg Heo的[What’s New in Swift 2.0],了解Swift 2.0的新变化。
7)引入 GameplayKit [ 视频链接 ]
本节集中介绍了苹果的最新游戏框架——GameplayKit。
GameplayKit包含了一些游戏中常用的独立分支系统。演讲人介绍了它的七个主要部分,并对每一部分进行了深入讲解。状态机(State Machines)管理着游戏玩法中的状态,Agents创建自动移动的实体,Pathfinder则管理节点之间的实体的移动。
对我而言,Agent Goals 和 Behaviors是最酷的部分。它可以让你给精灵添加逼真的移动和动作。本节的demo向人们展示了,不管是鸟群还是赛车,原来元素的移动是这么简单的一件事。我一直在期待能在自己的应用中使用这样的工具。
Pathfinder帮助实体以现实的方式绕过障碍、找到路径。MinMax AI使回合制游戏更智能:它关注对手的行为,并做出收益最大和损失最小的决策。这里有各种的说明和示例,简直是游戏开发者的天堂!
“Auto Layout非常重要,这里的东西值得一看——这是每个人都该学习的知识。”—— Sam Davies
我之前提到过Auto Layout吗?:]自几年前Auto Layout发布以来,很多开发者被它搞得焦头烂额。一些开发者更喜欢写代码的方式,但我们要看到,随着去年Auto Layout版本修订和Interface Builder里面的附件工具发布,Auto Layout变得好用起来了。
Auto Layout奥秘系列分为两部分,涵盖了12个“奥秘”,从最佳实践到最复杂的布局问题。你会看到可维护的布局、自适应TableView Cells、优先级、布局周期和一些传统布局。
第二部分中,你将深入研究负空间约束的复杂性,处理无法满足的约束,解决歧义。
9)初步认识iPad上iOS 9多任务系统 [ 链接地址 ]
iPad上的多任务系统是重要的新功能,本系列视频分为三部分,在第一部分中有相关介绍。
本视频向你介绍了多任务处理的工作方式及UIKit的必要改变。你必须了解这些,因为用户希望你的应用程序支持多任务处理;事实上,使用Xcode 7构建应用时,它会默认支持多任务处理功能。
多任务处理的基础是两个你很熟悉的东西: Auto Layout 和 Adaptive Layout。Apple , 还建议你使用 Launch Storyboards,这也是去年才出的东西。你可以在此查看。
iPad和iPhone的简单size classes已经过时了,所以你得更灵活一点。这对iPad开发者而言可谓巨变,因此本节视频实乃必看。用户要调整布局以适应需求,所以你的应用需要智能布局。
10)WatchKit 的布局和动画技术 [ 视频链接 ]
Mic Pringle 是 WatchKit By Tutorials 的编辑,非常令人尊敬。他说,如果你只能看一个WatchKit视频的话,那就看这个。
这个视频面向所有的WatchKit开发者,它既涵盖了当前WatchKit的方方面面,也介绍了新的WatchKit 2.0框架。
该视频解释了如何对齐界面对象并调整大小,以及如何使用WatchKit 2.0实现更好的布局与动画控制:
水平、垂直对齐和相对的大小调整都变得更简单。
大小可以根据对象的容器调整,并且调整可以事后进行。
分组和嵌套元素提供了更好的控制,使得复杂布局成为可能。
该视频还展示了动画如何使用计时器和类似insertTableRow的功能以进行动态展示,以及如何用几行代码写出真正有趣的转场。
视频还展示了使用动画创建动态演示的方法,这些动画使用计时器和insertTableRow等函数,你可以用几行代码写出非常有趣的转换。Watch Kit 2还让界面元素动起来,例如透明度、宽度/高度、对齐方式以及颜色等。
要了解更多,敬请观看视频,或者阅读Mic Pringle关于最新WatchKit的报道: WatchKit for watchOS 2:Initial Impressions(中文 英文 ).