WWDC 2017国情TL; DR

这是我们在WWDC 2017的“国情咨文”演讲期间从苹果公司获得的一切的简要回顾。

源代码编辑器

  • 从头开始用Swift重写
  • 内置降价编辑器
  • 更好的修复(内联并且不破坏格式)
  • 300多种新的诊断程序,分析仪及其修复程序
  • 文件打开速度提高3倍,滚动速度达到60 fps,行跳移速度提高了50倍
  • 在Playgrounds的代码编辑器中标记化(悬停时按住Cmd)
  • 动作的上下文菜单(在标记化结构时点按)
  • 全新的重构系统
  • Cmd +/-调整代码文本的大小
  • SDK版本可用性修复
  • 协议实施存根修复
  • “提取”将实现移至其自己的方法/ let
  • 重命名/编辑范围
  • 跨源代码进行全局重命名/重构-跨所有片实时更新
  • 开源转换/动作-开发人员可能会引入新的东西

斯威夫特4

  • 字符串现在是字符集,就像数组一样
  • """多行字符串文字
  • 单边范围和使用下标的字符串切片
  • Unicode 9 Grapheme Breaking(Unicode 9字素突破)-更好地支持Unicode(相对于旧版本,它实际上是正确的)
  • 可编码协议:编码/解码JSON / plist的超级超级简单方法: try JSONEncoder().encode(Codable) vs try JSONDecoder.decode(Type.self, from: payload)
  • Xcode 9 Swift语言版本(3.2 / 4.0)-允许逐步升级到Swift 4
  • 构建时间:混合和匹配Swift / Objective-C的速度应提高40%
  • 整个模块优化应该有更好的构建时间(大约2倍)(从Xcode 8.3.2开始,理论上来说)

核心技术

索引器

  • 完全重新架构
  • 快速打开x35更快
  • 大型项目搜索速度提高了50倍
  • 建立时索引会同时发生

构建系统-新构建系统

  • 构建操作的速度是x2.5的更快,因此增量构建应该更好
  • 通过工作区设置选择加入
  • 即将成为默认的构建系统

源代码控制

  • GitHub / Github Enterprise与Xcode的紧密集成
  • 您可以看到将Xcode的branch / tags / push PRs stragithf从rom推送到GitHub
  • 提交内置到Xcode的历史记录
  • 新的“源代码管理”选项卡(项目结构后的左数第二个)
  • 在组之间移动文件实际移动文件
  • 直接从Xcode创建新的Remote / New GitHub存储库
  • 直接从GitHub.com获得新的“在Xcode中打开”

调试与分析

  • View调试器针对ViewControllers,SpriteKit,SceneKit进行了改进
  • 运行时清理程序—未定义行为和主线程清理程序
  • 在“运行/测试”面板的“诊断”面板中启用(方案编辑器)

测试与持续集成

  • 无需安装Xcode服务器,它内置于Xcode本身
  • UI测试速度提高了3倍(或者通过新的First Match API加快了10倍)
  • xcodebuild现在可以同时在多个目标上运行测试
  • 模拟器支持多个启动的设备
  • 重新设计了模拟器,使其看起来像物理设备,因此您实际上可以与物理控件(开关/音量控件)进行交互
  • 完全可调整大小的模拟器

无线发展

  • iOS和tvOS设备
  • 与Xcode,Accessibillity Inspector,Instruments等一起使用

通用API

拖放

  • 自动输入文字和网页
  • 用于实现非标准拖放行为的标准API
  • 为拖动的内容生成自定义预览
  • 自定义徽章以拖动内容
  • 可以处理任何类型的数据
  • 应用内多点触控(您可以在拖动/收集更多项目的同时执行更多操作)
  • 使用拖放API在主屏幕上完全重写了应用程序重新排序
  • 使用UICollectionViewDragDelegate / UICollectionViewDropDelegate等内置支持内置的Collection View和Table View

使用者介面变更

  • 带有集成搜索栏的大型导航栏( UINavigationBar.prefersLargeTitlesUINavigationBar.searchController
  • 自动调整单元大小以适应动态字体大小

档案

  • 从新文件应用程序访问
  • 可以从您自己的应用程序中使用自定义操作,类型过滤,创建新文档来显示新文档浏览器。 也可以自定义文档浏览器的外观。
  • 应用内文档共享

多任务

  • 大小类,自动版式和默认情节提要-如果有这些内容,则可能已经为新的多任务API做好了设置

iMessage的

  • 应用栏
  • 成绩单内联的应用

SiriKit

  • 新域:付款帐户,清单,注释,二维码
  • iOS和watchOS的新模拟器支持

音乐包

  • 用户可以从您的应用程序中播放Apple Music中的音频

摄影和影像API

  • Photos项目扩展:Photos.app中内置的外部提供程序支持—打印/ Web /等
  • 相机默认检测到QR码-通过通用链接链接ito应用程序
  • HEVC — 2倍压缩,硬件加速,支持图像和视频
  • HEIF —支持复合资产,丰富的元数据,ISO标准的资产容器
  • 标准API支持两种新格式:ImageIO,Core Image,AVFoundation,PhotoKit
  • 新的AVAsset.isPlayable确定特定设备可以播放资产
  • 访问深度API,因此您可以访问不同的深度层并创建各种层等
  • 流深度API与实时摄像机流的常规深度API相似

视觉API

  • 人脸和地标检测
  • 矩形检测
  • 文字检测
  • 条码检测
  • 活动对象跟踪
  • Vision和CoreML之间的集成允许引入您自己的机器学习模型/分类器
  • 由Accelerate和Metal着色器提供支持

核心ML

  • 转换工具将模型转换为MLModel,然后可以放入Xcode中
  • 图形优化与其他优化一起提高了性能

金属

  • 许多系统框架都建立在Metal之上
  • 通过系统框架,近200万个应用程序正在使用Metal
  • 超过9亿种支持金属的苹果产品
  • 金属2-下一代
  • GPU驱动的渲染—减少了CPU的负载以及将帧切换到GPU的渲染
  • 平台功能对齐-跨macOS,iOS和tvOS的统一API,在可能的情况下保持兼容性
  • 更多much

虚拟现实

  • 使用Metal 2和macOS High Sierra
  • 低延迟支持头戴式显示器
  • 适用于macOS的SteamVR运行时和SDK(支持HTC Vive耳机和控件)
  • 虚幻引擎和Unity将添加macOS VR支持(9月通过GitHub进行Unreal的早期访问)
  • VR渲染速度为90 fps,每帧可用时间约为10毫秒(目标为100 FPS)
  • MacBook Pro上的外部GPU也将支持Metal 2
  • 先进的优化工具