首先感谢RemarkMedia能给我这次弥足珍贵的学习机会,在探趣2.1.0即将发布之际,开始了我的跨洋寻梦学习之旅(2016.6.12 —— 2016.6.18)。抵达旧金山国际机场时候,领导已经等候我多时了,估计等我的时间Jason会在探趣上留意奥兰多枪击案的最新的动态,顺便检测下我们的实时爬虫效果怎样。出机场大厅后,坐上Uber开往WWDC2016。
由于是初次参加WWDC,之前的功课也止于大神的博客的几篇文章:喵神 《写给初次参加 WWDC 的开发者的简明攻略》[唐巧的技术博客]等其它相关文章。有点像我没有看钢铁侠1,突然就去现在看钢铁侠3的感觉。第二天凌晨6点就去Keynote现场排队,如愿得到了一个比较靠前的位置,不过相比情怀更盛的从头天下午傍晚就来排队开发者来说,我们的位置相对性价比高些。Jason、李响、我们三个挨着坐的,在keynote正式开始之前,Jason给我们科普下乔帮主还在的时候粉丝更多以及其他相关的情况。与往年不同的是keynote开始前我们都为枪击案中的逝者进行了默哀,默哀过后keynote开始了。接下来的几天看sessions,去Lab提问,与新认识的iOS开发者朋友探讨相关的问题。
Keynote & Sessions:
距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。[iOS 7] 翻天覆地的全新设计,[iOS 8]中 Size Classes 的出现,应用扩展,以及 Cloud Kit 的加入,[iOS 9] 里的分屏多任务特性等等。对于开发者来说,好消息是 iOS 10 中并没有加入太多内容(相比往年)。按照适配的需求,来年的 iOS 开发至少应该可以从 iOS 8 甚至 iOS 9 开始,我们将有时间对之前的版本特性进行更好的梳理,消化和实践。相比与开疆扩土,iOS 10 更专注的是对现有内容的改进,以弥补之前迅速发展所留下的一些问题,这其实正是 Apple 当下所亟需做的事情”喵神专业的点评让我豁然开朗。 iOS10中我们需要重点关注:
1、生态整合与 Extension 开发:你的applewatch可以用来解锁mac电脑了,iPhone上复制的东西可以在电脑上粘贴了,再也不用通过QQ/微信再转发一次了。如果我们日常工作能在watchOS iOS macOS上面同时进行,这将是多么愉悦的体验。从iOS8开始的应用扩展到现在的选择性更多了,从在Xcode8中Extension的模板就可以看出Apple对其的重视程度。
2,在iOS10中Sirikit可以帮助你实现:语音和视频通话、发送消息、发送或接收付款、搜索照片、约车、管理健身。
3,User Notifications,为了更好地处理和管理通知,和本地及推送通知相关的 API 被封装到了全新的框架 UserNotifications.framework 中。
4,iMessage Apps,从现在演示的demo来看效果:表情放大,预测输入,表情包这些和qq/微信好像,感觉一大批的app会被Apple逼上绝路。iMessage扩展中,Messages.framework 将承担与系统的 message 界面交互的主要职责。你通过提供一个自定义的 View Controller,来获取用户在使用你的 message app 时进行对话的上下文,以及发送接收等操作,并做出合适的响应。
5,Xcode8中可视化追踪循环引用,降低了调试者门槛;支持多设备证书签名,原来是一个p.12进行传播;Xcode 终于提供了进行代码编辑器扩展的能力,创建XCSourceEditorExtension来对 Xcode 的功能进行扩展了,然而Apple一言不合全部照搬了王巍 (@onevcat)的VVDocument作为官方的插件。
6,Swift 3,从这次sessions的场次安排来看,swift相关的占了很大的比重,swift的相关的API,会更swift些:这些变化包括去除 NS前缀,将绝大部分 class 转换为 struct (虽然底层还是 copy-on-write 的引用实现,可以参看 ReferenceConvertible
协议的内容),去掉 API 中重复的语义等。无论从性能、优雅、还有趋势来说,Apple都强烈建议开发者使用swift来完成我们的开发,今年年龄最小的wwdc获奖者才9岁,这无疑是swift最成功的营销案例,swift从娃娃抓起。
Labs:
我主要是去了两个Lab,一个是App review team的Lab,询问了ipv6的审核相关的问题,如何快速通过审核。美国大妈用一本app review team出品的漫画给我做了生动的讲解,简而言之就是得遵循官方给出的规则,可以多用Testflight,等等,没有特别的捷径。告诉我了发新版本统计时间是2-3个美国工作日,更新版本1-2个工作日,相比从前review team的效率提高了许多。由于我英语口语很烂,表达的时候是让认识的伙伴张伯轩帮我翻译的,贴心的大妈也请来了苹果审核团队�中文支持的员工Mr.Song跟我交流,终于可以愉快的交流了。在Mr.Song面前展示了我们即将发布的探取2.1.0,简单介绍了下我们的应用情况,然后递上了名片,交流期间我又问了开发出口合规的相关问题,Mr.Song告诉我简单可以这么理解:如果我们做的不是军事类似比较敏感的app我们在出口合规加密里选择否就好,想来我们也不会涉及,没有深入询问。第二个Lab是Foundation的Lab,因为我们的app在Xcode8 beta上面的时候运行的时候会有莫名其妙的crash,这次是实力秀英语没有找翻译,排队轮着我的时候我给两位苹果工程师描述了我的问题,并且打开了我们的探趣项目的代码,接着就是断点调试,堆栈追踪,调试了近10分钟他们也没有确认是什么原因造成了在iOS 9上面运正常,在iOS10 beta上面运行我的app会crash.大致给出的建议就是你知道这是beta,可能不稳定,建议我下午3点再找另外位大神帮我再看下,由于行程比较紧张,下午无缘与那位大神面对面接触了。最近同事在iOS10beta下载AppStore版本的2.1.0可以正常运行,只是会弹出一个获取Apple music的权限。
认识朋友,整合资源:
其实除去Keynote,Sessions,Labs,参加WWDC一个比较好的就是可以认识更多的开发者。认识了国内在读的大二学生Nero左辰豪[wwdc2016奖学金获奖者],纽约大学研究生毕业后留湾区上班的陈侃和张伯轩,腾讯的Bugly平台的Ben,网易贵金属iOS开发等。印象最深的还是张伯轩告诉我他的学习经历,有个大牛Daniel Duan带他入门的,Daniel还是swift开源的贡献者,于是Github立马关注了。其实有个比较遗憾的事情就是没有去参加周四晚上的Bash,错过了美酒,美女?不!仅仅是美酒和错过了认识老外开发者的一次机会。可是我们没有错过美食,在唐人街找到了家口碑好的川菜馆,然后继续着饭桌上的话题。
写在最后的几点建议:
1,由于sessions的内容还是相当丰富的,可以去百度团队推荐的观影指南再看一次,做到查漏补缺,另外也需要大家去重新学习下往年的wwdc上面的sessions,做好相关笔记,这样的你的知识体系才是完整的,连续的。
2,英语(听说读写)是iOS开发者重要的技能,让你能第一时间获取一手资源,避免啃别人翻译的东西。
3,尝试从Apple推荐的趋势(技术趋势、设计趋势)去重新定义我们的产品,从Nero的得奖作品来看,使用了很多iOS9以上的新特性,这些都为他赢得wwdc的奖学金加分不少。
4,多看技术博客、多参加线下交流活动,避免闭门造车现象,分享、学习、交流、提高,应该成为我们的旋律。
参考相关的链接如下:
https://onevcat.com/2016/06/ios-10-sdk/
https://onevcat.com/2016/04/first-wwdc/
(http://blog.devtang.com/)
(https://onevcat.com/2013/06/developer-should-know-about-ios7/)
(https://onevcat.com/2014/07/developer-should-know-about-ios8/)
(https://onevcat.com/2015/06/ios9-sdk/)
左辰豪分享 http://nero5023.github.io/2016/06/07/wwdcScholarshipExperience/
百度团队观影指南:
http://baiduhidevios.github.io/2016/06/14/WWDC-2016-%E8%A7%82%E5%BD%B1%E6%8C%87%E5%8D%97/