【硅谷问道】 WWDC 17: 开发者的最初观感

前言
每年的 WWDC 都是 iOS 开发者集体高潮的时刻。第一天的 WWDC 带来了全新的 iOS 11、MacOS、tvOS 和 watchOS,革命性的 AR 和 ML 应用,以及更强的 iPad、“硬件神兽” iMac Pro 和智能音箱 HomePod。我想从开发者的角度,聊聊这次大会给我的印象和感受。欢迎大家在评论中谈谈自己的看法。
机器学习
恐怕没有哪个词的频率高过 Machine Learning,它也是贯穿各个平台的关键词汇:watchOS 的表盘,macOS 上照片流的分类,Siri 的上下文理解、翻译、预测,手写笔记的直接识别和搜索支持,甚至 Mac 系列芯片和 Metal 的更新都表示支持机器学习。iPhone 上人脸识别甚至比 Google Pixel 快出6倍。可以看出机器学习已经完完全全得融入到了 Apple 的全平台、全应用、全硬件。
而作为开发者,最令我激动的是 MLKit 的发布。苹果带来了自己的模型,你只要不停的运用数据喂养它即可。这意味着我们今后的 App 将变得更加动态化 -- 随着用户使用的增多,App 将越来越智能和强大。
原来的路线是 App 发布 -> 用户反馈 -> 线下产品经理分析 -> 程序员优化 -> App 更新;今后的路线可能是 App 发布 -> 用户反馈 -> 机器学习 -> App 更新。这次 Apple 还推出了急速审核(40分钟过审,摩拜单车团队已验证)和灰度发布的两大功能,也许就是为了给机器学习能自主的更新 App 铺路。目前苹果公布的 API 主要支持视觉识别、自然语言以及游戏 AI。
相关链接:
- Build more intelligent apps with machine learning
- Machine Learning API (Core ML)
- Introducing Core ML

虚拟现实和增强现实
这些年虚拟现实遭遇了过山车式的变化。先是遭到资本疯狂追逐,大厂如三星、HTC 重金投入,索尼也趁势推出了 PlayStation VR;然后是 Pokemon Go 的大火,仿佛虚拟现实和增强现实的元年已经到来;突然,Facebook 的 Oculus 线下200家体验店关门;乐视的虚拟现实部门倒闭走人;直到上个月的 Google IO,Day Dream 的更新也表现平平。大家都认为,VR/AR 只是个概念炒作,充其量在游戏上起到锦上添花的效果。
直到今天。如同当年普鲁士一统德意志,苹果姗姗来迟,却在一出场就技惊四座。
Metal 2 十倍于当前性能的图像处理技术,芯片的升级和“硬件神兽” iMac Pro 的出现,让苹果在 AR/VR 上的雄心彰显无遗。现场的星球大战 VR 以及 iOS 11 即时战场 AR 展示完全颠覆了我对 AR 的认知 -- 要知道,这可是无需沉重的头套、专用的手机,直接用 iPad 即可完成的事情。
同样,Apple 推出了全新的 ARKit 来供开发者使用。配合 iPhone 和 iPad 上强大的传感器以及全新的 GPU、CPU,我们开发者可以使用 ARSession 这个共享单例来在摄像头上实现 2D 和 3D 的宏大场景构建。
相关链接:
- Metal 2
- Introducing ARKit
- Augmented Reality API (ARKit)
- VR with Metal 2
- Introducing ARKit: Augmented Reality for iOS

Swift 和 Xcode 9
Swift 毫无疑问是开发者关心的头等大事。作为苹果的野心,Swift 引入了很多非常先进的思路。然而令我有点失望的是,这次 Keynote 却对 Swift 和 Xcode 9 只字未提。
不过从现场看来,Swift 这次的更新主要是 API 的优化上,对现有的标准库进行了11项更新和1处新增,主要集中在基本数据类型和文件系统上。
Xcode 上,目前发现的更新主要是多个模拟器同时运行(鸡肋,估计会卡),本地化,runtime debug 工具,持续集成,和源码管理。
我们只能期待秋季的苹果发布会上 Swift 4 进一步的更新了。有意思的是,之前 Swift 之父 Christ Lattner 写了篇总结文:Chris Lattner 对 Swift 3 的总结与对 Swift 4 的展望。另外大家如果关心 swift-evolution 这个开源库,Swift 4 的新功能应该可见一斑。
相关链接
- Introducing Swift 4
- Localizing with Xcode 9
- What's New in Signing for Xcode and Xcode Server
- Debugging with Xcode 9
- Finding Bugs Using Xcode Runtime Tools
iOS 11
这次 iOS 11 更新可以说是全面彻底。从基本的功能升级到 App 新功能添加,再到 iPad 平台 UI 重构。主要集中在这几个方面。
iPad
为 iPad 全新打造的 iOS 系统,多任务、分屏 UI,Docker 工具栏。虚拟现实和增强现实的引入,以及对机器学习的支持。总体来说,消费者很开心,开发者又有新的东西可玩了。同时我觉得 iPad 越来越向 Macbook 看齐了。
App
- App Store 全新设计
- Files 文件管理软件放出
- 开放 Apple Music
- Apple Pay 新的转账功能,注意 NFC API 接口开放,是不是为了 Apple Pay 更方便接入其它 App?
- Apple 地图继续追赶 Google 地图
- iMessage 花里胡哨扩展中
- HomeKit 追加音响(HomePod)支持
新功能
- Drag and Drop (梦想成真!)
- 拍照和截屏(扫描文件这个功能真是又重创了一大波 App)
- 中国特殊加成:二维码和上海话识别
相关 Session

tvOS, watchOS 4, MacOS
这三个平台的更新可以说是泛善可陈(除了 Machine Learning 和 AR)。基本上就是,更多的内容(Amazon 的加入)、更炫更方便的 UI(运动界面和音乐界面)、以及更拽的名字(对,新 MacOS 叫 High)。
值得一提的是 Apple File System。其实这个文件系统去年就宣布了,不过并不在 Keynote 之中。今年苹果用它全面替代了古老的 HFS+,取而代之的是更高的性能、更好的安全性、更多的空间。这主要是 copy-on-write 和空间共享技术的运用。
Apple 同时开放了 FileProvider API,开发者可以用它在新的 Apple File System 基础上实现对文件各种基本操作,还能通过它对应的 extension 实现诸如 drag and drop 这样跨 App 的功能。
【硅谷问道】 WWDC 17: 开发者的最初观感的更多相关文章
- WWDC 17: 开发者的最初观感
WWDC 17: 开发者的最初观感 前言 每年的 WWDC 都是 iOS 开发者集体高潮的时刻.第一天的 WWDC 带来了全新的 iOS 11.MacOS.tvOS 和 watchOS,革命性的 AR ...
- 【硅谷问道】Chris Lattner 访谈录(下)
[硅谷问道]Chris Lattner 访谈录(下) Chris Lattner 访谈录(下) 话题 Swift 在 Server 和操作系统方面有着怎样的雄心抱负? Swift 与 Objectiv ...
- 【硅谷问道】Chris Lattner 访谈录(上)
[硅谷问道]Chris Lattner 访谈录(上) 话题 Chris Lattner 是谁? Xcode 的编译器 LLVM 背后有怎样的故事? Swift 诞生的前世今生,封闭的苹果为何要拥抱开源 ...
- 2016 苹果全球开发者大会(WWDC)
纵观WWDC 2016开发者大会的全部内容,尽管本次大会没有那些新的产品发布,不过能让各位果粉的肾留到秋天,那也是苹果公司对各位果粉的关爱啊.但是对iOS开发者而言,新发布的技术还是比较不错的.主要内 ...
- 用HTML和CSS实现WWDC 2015上的动画效果
用HTML和CSS实现WWDC 2015上的动画效果 动画效果WWDC 2015 原文:https://cssanimation.rocks/wwdc15/ 译者:周晓楷(@Helkyle) 每年 ...
- ios9和ios10的新特性
昨天面试了一个做ios开发的公司,其中面试官问我最新的ios系统版本是多少,以及它的特性是什么?由于自己是初学者,所以对这些没有关注过.今天特地搜索了一下关于ios9和ios10的新特性,并整理了一下 ...
- Kafka学习(一)kafka指南(about云翻译)
kafka 权威指南中文版 问题导读 1. 为什么数据管道是数据驱动企业的一个关键组成部分? 2. 发布/订阅消息的概念及其重要性是什么? 第一章 初识 kafka 企业是由数据驱动的.我们获取信息, ...
- APP兼容性测试 (二) 最新 iPhone 机型分辨率总结
iPhone手机发布时间及iOS发布 iPhone是美国苹果公司研发的智能手机系列,搭载苹果公司研发的iOS操作系统. 第一代iPhone于2007年1月9日由苹果公司前首席执行官史蒂夫·乔布斯发布, ...
- iOS---初识Swift(一)
一.Swift简介 ○ 2010年的夏天, 苹果公司的开发人员Chris Latten接到了一个特别的任务, 为OS X 和iOS平台开发下一代编程语言, 也就是Swift. ○ 苹果公司于2014年 ...
随机推荐
- ios中非ARC项目中引用ARC文件
下图即可 选中工程->TARGETS->相应的target然后选中右侧的“Build Phases”,向下就找到“Compile Sources”了.如何在未使用arc的工程中引入一个使用 ...
- Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (mysql)
1/自动生成的jar包:mybatis-generator-core-1.3.2.jar 2/generatorconfig.xml文件如: <?xml version="1.0& ...
- 【总结】selenium webdriver 远程连接firefox和IE 环境搭建
参考链接:http://code.google.com/p/selenium/wiki/Grid2 本地环境为:win7,eclipse,jdk 1.7,本机ip为192.168.0.30 1.下载所 ...
- java hibernate session create
public class RegisterStory { private SysUserCDao sysUserCDao; @Test public void test() { SessionFact ...
- Redis 学习之路 (009) - Redis-cli命令最新总结
资料来源: http://redisdoc.com/ http://redis.io/commands 连接操作相关的命令 默认直接连接 远程连接-h 192.168.1.20 -p 6379 pi ...
- 函数waitpid和WTERMSIG说明(转)
waitpid系统调用在Linux函数库中的原型是: #include <sys/types.h> #include <sys/wait.h> pid_t waitpid(pi ...
- opencv 摄像头 线程
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h> ...
- C# 用timer做成服务后 timer_Tick () 为什么不执行?
不能使用 窗体的 Timer,他只能在窗体中使用,服务中无法使用请使用 System.Timers.Timer类 protected override void OnStart(string[] ar ...
- Oracle 12C -- 清空audit记录
1.使用job清空 SQL> dbms_audit_mgmt.create_purge_job ( audit_trail_type=> DBMS_AUDIT_MGMT.AUDIT_TRA ...
- Android Studio 代码导航快捷键总结
Android Studio 代码导航快捷键总结 这篇文章主要介绍了Android Studio 代码导航快捷键的相关资料,需要的朋友可以参考下 简评:作为一位 Android 开发者,Andro ...