我们汇集了十大WWDC 2018视频列表,涵盖了您需要知道的一切,包括Core ML,Siri Shortcuts,ARKit 2等等!
Tim Mitra2018年6月21日·初学者·文章·30分钟
版本
Swift 4, iOS 12, Xcode 10
现在,“ 开发人员Triceraptus ” 的年度迁移已经结束,WWDC 2018包装已经从圣何塞的McEnery会议中心落下,我们还剩下另一系列令人信服的会议视频。
有最新API的视频,如ARKit 2,Core ML 2,Create ML和Siri Shortcuts; 通过新的Dark Mode支持和改进的源代码编辑覆盖Xcode 10; 然后是Swift 4.2中的所有新功能,调试,测试等方面的改进。由于今年有超过100个WWDC 2018年会议视频可用,繁忙的开发人员观看视频的追赶将是一个相当大的挑战!
不用担心,因为raywenderlich.com教程团队和学过的同事已经收集了一份WWDC 2018年前十大视频列表,这些视频涵盖了您需要在最短的时间内完成的所有事情。今年的会议投票非常接近,最后四场并列第7名。我们为来自各种背景和专业的开发人员考虑这些“必看”会议!
注意:要在更短的时间内观看更多视频,我们建议您从WWDC 2018视频站点下载高清/标清视频,然后使用VLC媒体播放器或QuickTime播放器将视频重播为1.5倍速或2.0倍速。您可以稍后感谢我!:]
1)平台国家联盟 - 102
如果你只有一个视频的时间,这就是它!对于开发人员来说,WWDC 2018的真正开始是平台状态联盟会议。主题演讲是一个蓬松的产品,让公众,投资者和Apple忠实用户感到惊喜和喜悦。相比之下,国情是真正有趣的细节出现的地方。
本讲座调查了新技术,并概述了哪些会议将提供有关每种技术的更多详细信息。以下是2018年平台国家联盟的重点:
- 性能和稳定性是苹果公司所说的将是2018年这些版本的焦点。苹果公司在所有四个平台上提供了这些平台:macOS,iOS,watchOS和tvOS。这里讨论的改进包括加速LLDB编译器任务,增加机器学习建模速度和大小,以及开发和测试工具。
- macOS中的暗模式已经出现在很多开发人员的愿望清单中。使用暗模式,整个Mac GUI以优雅的方式倒置。通过macOS Mojave和Interface Builder中的新功能,Apple为开发人员提供了一些工具,可以调整图形和标签,以更好地适应倒置的色彩环境。例如,资产库现在包含图像和命名颜色的深色变体。
- Core ML 2和Create ML使您的应用程序中的机器学习几乎成为即插即用的练习。除了支持所有主要的第三方模型库,Create ML还可以通过定义问题,培训自己的数据和部署自己的模型来创建自己的模型。量化的进一步增强使得执行速度和更小的模型尺寸成为可能。结果是您的神经网络用户体验更快,应用程序包大小更少。
- ARKit 2建立在我们最近在ARKit 1.5中看到的改进之上。新的AR Quick Look Gallery基于USDZ文件格式的原生支持,可以在设备,电子邮件和Web上轻松查看和共享AR文件。此外,ARKit 2支持AR和VR体验的共享,以便多个设备可以查看相同环境并与之交互。这可以使多用户游戏与其他观众一起玩。
- Siri Shortcuts将您的部分应用程序公开给Siri,使虚拟助手能够为您的用户提供应用程序功能和服务。快捷方式适用于所有平台,包括HomePod。用户自己的短语可以调用应用程序功能来获取信息或调用操作 - 通常只需添加几行代码即可。
平台国家联盟所涵盖的新项目远远超出我在本文中提出的范围。如果您没有观看其他WWDC 2018视频,这绝对是您想要的。
2)Cocoa Touch的新功能 - 202
由Josh Shaffer提出的会议开始时强调iOS 12中的性能改进 - 包括滚动,内存使用,自动布局和UIKit的改进。
这次会议相当密集; 在这里,我们只介绍一些亮点:
-
drawRect
在iPhone Pro屏幕上创建视图和调用的时间相对较短,为16毫秒,甚至更少。滚动速度受益于新的预取API,其中数据通过序列化收集,因此在渲染之前就已准备就绪。 - “内存是性能”是开发人员的共同思想。系统分配内存以前花费的时间也通过自动后备存储得到改善。
- 自动布局看到了很大的改进,因为现在处理常见的陷阱。独立的兄弟视图和依赖的兄弟视图呈现现在线性增长而不是指数增长。
- Apple 通过审核UIKit和全局函数以及改进嵌套类型来解决Swiftifcation问题。此外,
UIEdgeInsets
并UIImage
获得在纯swift属性的方法。 - 通知现在支持标记,以便它们以组的形式显示。
- 自动密码和自动填充功能可进一步增强Web和应用程序密码。您可以标记密码字段,以便用户不仅可以从应用程序的表单中检索密码,还可以存储密码。短信验证码可以自动填写。
- 安全区域插入可以在任何视图中访问本地坐标空间。无论应用程序是否有条形图,它们都可以在所有设备上受益,而不仅仅是iPhone X.
- Siri Shortcuts可让您轻松地从您的应用程序中获取常见操作,并将其提供给Siri。用户可以使用自己的口头短语制作快捷方式,也可以在应用或扩展程序中推荐短语。
在所有这些中,Siri Shortcuts窃取了节目。Apple还在App Store上提供了快捷方式应用程序,供用户创建自己的快捷方式。
注意:要了解有关Swift 4.2的更多信息,请查看Swift 4.2中的新功能?作者:CosminPupăză。
3)Siri Shortcuts简介 - 211
[视频链接]
“Siri Shortcuts的潜力几乎是无限的。正确实施,这是iOS设备使用方式以及我们如何考虑制作应用程序的范式转变。“ - Ish ShaBazz,独立的iOS开发人员
屡获殊荣的Workflow应用程序的创建者Ari Weinstein展示了Siri Shortcuts,它彰显了Apple收购Workflow的成果。Sophomoric SiriKit现在允许您将应用程序的功能公开给Siri。这是一个非常直接的方法。您可以设计意图或快捷方式。当Siri成功将回调发送回您的应用程序时,将该快捷方式捐赠给操作系统并处理意图。快捷方式可以是信息性的,也可以是对应用程序工作流程的调用。您也可以NSUserActivity
通过简单isEligibleForPrediction
地true
在App Delegate中设置来使用类型。
在示例应用程序中,Soup Chef,Apple演示了如何对快捷方式进行分类,然后添加一些参数,如字符串,数字,人物或位置。一旦捐赠给Siri,您可以通过说出您提供的短语来触发快捷方式。Siri还可以独立于您的应用运行您的快捷方式,根据重复的用户操作在特定时间或地点进行建议操作。如果您的应用支持媒体类型,Siri可以直接访问并开始播放您的内容。
4)介绍Create ML - 703
“Create ML是惊人的。我迫不及待地想看看iOS开发人员使用机器学习做出奇妙的事情。“ - Sanket Firodiya,Superhuman Labs,Inc。的首席iOS工程师
如今,机器学习仍然是一个热门话题,Apple已经很容易将这项技术添加到您的应用程序中。使用Core ML 2,您可以将机器学习视为从代码中调用库。您只需要将Core ML库放入项目中,然后让Xcode对其他所有内容进行排序。
基于Core ML 2对神经网络的去神秘化,Apple为您提供了Create ML。它只需要几行代码即可使用。您可以在Mac上直接在Swift中创建和训练模型。创建ML可以与图像识别,文本分析甚至表格数据一起使用,其中多个特征可以进行可靠的预测。您甚至可以利用Apple的现成模型利用转移学习来增强培训 - 将培训时间从几小时缩短到几分钟。这也进一步将模型的大小从数百兆字节减少到仅仅屈指可数。在另一场会议“Core ML 2第一部分简介”中,Apple阐述了权重量化,以进一步缩小尺寸而不会降低质量。
在Create ML的工作流程中,您可以使用LiveView培训师定义问题,收集一些分类的样本数据并在Playground文件中训练您的模型。将训练数据拖放到视图中。训练完成后,您将保存新模型。您还可以输入一些数据来测试预测的准确性。如果您对自己制作的模型感到满意,请将其导出。最后,将新模型拖到项目中。您可以在Swift和命令行REPL中的macOS Mojave上训练模型。
注意:有关创建ML的更多信息,请查看全新教程,创建ML教程: Audrey Tam 入门。
5)Swift泛型 - 406
本次会议重点关注Swift泛型。以前的会议部分涵盖了部分,但这里有更深入的细节。Swift和泛型已经发展了多年,现在很快就会出现在Swift 5.0中的ABI稳定性。随着时间的推移,泛型已经得到了改进,Swift 4.2标志着一个重要的观点。最近,该语言已获得条件一致性和递归协议约束。
这些会议涵盖了为什么需要泛型,并从头开始构建Swift通用系统。由于不断铸造,无类型存储具有挑战性并且容易出错。泛型允许开发人员知道它将包含哪种类型。这也提供了优化机会。利用泛型类型可以使Swift使用参数多态 - 这是泛型的另一个名称。
设计协议是检查泛型是Swift的好方法。该演讲涵盖了如何使用泛型类型统一具体类型。占位符类型或关联类型是一种占位符,用于在运行时传入的具体类型。谈话涵盖了泛型的一些强大机会。
本演讲的第二部分介绍了条件一致性和协议继承,以及带有泛型的类。在演讲中,他们查看了一个集合协议来扩展功能。条件一致性扩展或增加了可符合它的协议和类型的可组合性。
Swift还支持面向对象的编程。任何实例或子类都应该能够替换父级并继续执行 - 这称为Liskov Substitution Principle。协议一致性也应该可用于子类 - 捕获某些类型的功能。
6)使用Xcode和LLDB进行高级调试 - 412
“调试是我们开发人员在没有编写错误时所做的事情。” - TD Bank的软件开发人员Tim Mitra
Chris Miles描述了Xcode团队如何平滑许多使Swift调试变得困难的错误。其他开发人员提交的雷达暴露了团队解决的边缘情况。在进行实时调试会话时,Miles会显示断点的高级用法。使用表达式命令和编辑断点,您可以更改值以测试代码,而无需编译并重新运行代码。
您还可以通过双击断点并打开编辑器在断点处添加忘记的代码行。例如,如果您忘记设置委托,则可以输入代码来设置委托,还可以测试此修复程序。使用断点设置委托并立即对其进行测试。您也可以在框架内测试函数调用,即使您不知道传入的值 - 您现在正在使用汇编语言。您可以检查寄存器,因为调试器提供伪寄存器。第一个参数是接收者,第二个在Objective-C消息中发送是选择器,下一个系列是传入的参数。通常,你可以使用po
控制台中的命令用于打印调试描述并查看当前值。一点点类型转换可以提供帮助。Miles进一步演示了如何通过在运行期间明智地设置属性来减少重复调用。
另一个高级技巧涉及执行线程 - 谨慎,因为您可以更改应用程序的状态。p
是另一个LLDB命令,用于查看当前对象的调试表示。在暂停时使用“变量调试器”,可以查看和过滤属性以查找要检查的项目。您可以通过在属性上设置“观察尝试”来设置观察点。观察点就像断点,但在值更改时暂停调试器。
“我们使用调试器来调试我们的调试器。” - Apple Miles软件工程经理Chris Miles
在会议期间,还会调试macOS应用程序的视图 - 这次,检查View Debugger中的元素 - 使用相同的技巧来打印视图和约束的值。使用View Debugger的检查器,您可以查找元素并查看当前值或确定它们是由父级还是超级视图设置的。您可以判断视图中的元素是否支持暗模式的暗变体,甚至是辅助功能。这还包括自动布局调试,调试说明,甚至超级方便的Command / Control-click-through,用于访问分层后面的项目。
注意:有关LLDB和调试的更多信息,请查看Derek Selander的书:高级Apple调试和逆向工程。我们还有来自Raywenderlich.com的Jerry Beers 的22部分中级iOS调试教程。
7)在Xcode中充分利用Playgrounds - 402
“文档是我们的抽象塔构建的基础,而新的Playground执行模型有助于使Playgrounds成为一种引人注目的文档形式,可用于严肃游戏。” - Ray Fix,软件工程师,Discover Echo,Inc。
这个Playgrounds会议为可能对他们不熟悉的用户提供了Playgrounds基础的概述。发言人西藏鲁尼 - 拉布道评论标记的支持,使你的文字脱颖而出。她涵盖了文本样式格式,列表,导航,链接支持甚至在操场中包含视频播放。
Alex Brown循序渐进的演示了新的Playground功能。有了它,您可以一次探索一行。他分阶段建立了一个井字游戏,逐步执行直到最终击败电脑玩家并用一个很好的粒子系统效果奖励自己。
TJ Usiyan概述了更高级的Playground功能。特别是,新的自定义Playgrounds显示转换器允许您在实时REPL类似的结果内联视图中显示您自己的自定义值。他还强调了如何在项目中支持自己的框架。使用Xcode工作区,您可以导入自己的框架并添加一个操场来使用它们。
Playgrounds不仅仅是为了好玩。它们是开发功能,测试API和制定自己的灵感的重要工具。
8)在Xcode中建立更快 - 408
本次会议充满了对更有效地构建项目的见解。David Owens介绍了Xcode 10的新功能,以减少构建时间。Jordan Rose介绍了如何优化Swift代码和混合源代码以加快编译速度。Xcode 10包括使用并行化构建过程的能力,并且还为构建时间添加了详细的测量。他解释了如何处理项目和依赖项可以消除构建中的复杂性。
以下是本次会议的一些重点:
- “八卦邻居(nosey neighbors)”的依赖性与他们不需要的东西有关。构建可能包括目标,库甚至测试之间的大量连接。将应用程序部件拆分为单独的目标可以大大减少构建时间。有些部件在建造之前必须等待其他部件。将部分移动到没有其他依赖关系的codegen目标可以在时间轴中更早地移动构建任务,并促进并行构建。
- 运行脚本阶段可让您自定义构建过程。您可以将脚本放入正文或创建对项目中另一个脚本的引用。例如,如果将脚本放入外部文件中,则在Xcode 10“文件列表”中,它是只读的,不会被编译。您的输出文件也可以放在文件列表中。
- 声明输入文件很重要。如果输入文件发生变化,Xcode知道它需要运行Run Script阶段。此外,如果输出文件丢失,Xcode可以为您重新生成这些文件。Xcode 10中的新增内容是有关Run Script阶段的文档。
- 如果你有依赖循环,Xcode 10现在将报告并产生错误,在你的项目中可能存在循环依赖引用。
- 关于构建时间的测量也是新的。内联任务将显示个人时间。专业提示:查看“最近”过滤器以查看先前构建中的内容。此外,查找阶段脚本执行 - 如果每个构建都存在这些,如“最近”中所示,那么您很可能遇到配置问题。
- 在您的代码中,尝试减少复杂的表达式。在某些情况下,将代码移动到协议,以便编译器不必搜索整个文件。
- 减少混合源应用程序之间的接口。使用@private关键字排除Swift生成的标头中的项目。在Objective-C代码中使用无名类别来隐藏Swift中不需要的东西,或者将项目移动和隐藏到实现文件中。
- 迁移到Swift 4,它也针对更快的构建进行了优化。注意“Swift 3 @objc Inference”,因为它可能“打开”。删除条目将其恢复为默认值。
这个讲话充满了提示。您可能需要重复查看。Xcode构建过程非常复杂,特别是对于新手。了解它的一些部分将从这个日常练习中解开谜团。
9)高性能自动布局 - 220
Ken Ferry开始本次会议,揭开Auto Layout引擎和约束如何真正起作用的神秘面纱。引擎缓存布局信息并跟踪依赖关系。他潜入渲染循环,因为它处理在屏幕上获取视图的各个部分。首先是updateConstraints
确定是否需要和设置约束更新。其次,子视图的布局和设置。最后,如果需要,显示将绘制视图并刷新。渲染循环每秒更新120次。
重要的是避免浪费工作,这可能会减慢或破坏性能。通常,在清除现有约束然后添加自己的约束之后,您将在代码中设置约束。这种重复的运动可以产生“约束流失”,并且发动机必须重复计算和交付。简单地使用Interface Builder可以更好,因为它已经过优化,并且不会过度使用系统。在Cocoa中,据说“简单的事情是简单的,复杂的事情是可能的”:更自然地模拟问题,尽量不要流失。
Kasia Wawer通过解释如何构建高效布局来继续会议。使用并不总是出现的元素的一个技巧是将其设置为隐藏而不是添加或删除它。考虑始终存在的约束,并分别对来来去去的约束进行分组。将它们放在一个约束数组中,并创建一个没有约束的数组。然后你只是处理一系列约束。请注意内在内容大小和systemLayoutSizeFitting
实际内容之间的区别。可以通过其内容文本或图像来了解前者的视图。后者从引擎中获取大小信息。
调用systemLayoutSizeFitting
创建引擎实例,添加约束,解决布局,返回大小调整并删除引擎。这可能反复发生,增加了流失。还包括围绕文本测量和不可满足的约束消息的其他技巧。道德是:在更新约束之前先思考。
10)拥抱算法 - 223
“我最喜欢的视频是”拥抱算法“ - David Abrahams和Crusty的下一部分。这个视频并没有传播知识,因为提出了不同的编码范例。“ - Caroline Begbie,独立iPhone开发人员
Dave Abrahams带着另一个编码寓言回到他的另一个自我,Crusty,这位老派开发人员喜欢80 x 120的纯文本终端。没有“花哨的调试器”或Crusty的IDE。他对直接开发实践的坚持是WWDC 2015随着面向协议编程的引入而失控的最爱。
在本次专题讨论Swift编程方法的讲座中,我们将介绍Dave使用for循环和while循环,然后通过合理使用算法来降低复杂性和代码大小。使用Swift标准库中的函数,Abrahams解释了如何使用算法驱动的方法。
“他谈到了除了准备技术访谈之外理解算法的重要性。他通过一个案例研究,了解如何滥用干净但效率低下的代码会对可扩展性和性能造成严重影响。“ - Kelvin Lau,应用数字有限公司高级iOS开发人员
注意:有关算法的更多信息,请参阅Kelvin Lau和Vincent Ngo的书“ Swift中的数据结构和算法”。Kelvin还在该站点的Swift算法俱乐部发布了几篇文章。
然后去哪儿?
总之,以下是我们要观看的十大WWDC 2018视频的选择:
- 平台国家联盟
- Cocoa Touch有什么新东西
- Siri Shortcuts简介
- 介绍Create ML
- Swift Generics
- 使用Xcode和LLDB进行高级调试
- 在Xcode中充分利用游乐场
- 在Xcode中建立更快
- 高性能自动布局
- 拥抱算法
感谢贡献者:Ish ShaBazz,Thom Pheijffer,Arthur Garza,Sanket Firodiya,Darren Ferguson,David Okun,CosminPupăză,Caroline Begbie,Lorenzo Boaro,Khairil,Caesar Wirth,Mark Powell,Ray Fix,Dann Beauregard,Shawn Marston,Shai Mishali ,Felipe Laso-Marsetti,Sarah Reichelt,Alexis Gallagher,Kelvin Lau。
特别感谢:Mark Rubin,Rasmus Sten,Ray Fix,Darren Ferguson,Joey deVilla,Scott McAlister,Jean-Pierre,Distler,Josh Steele,Antonio Bello,Greg Heo,Fuad,Chief Cook&Bottle Washer Extraordinaire Tammy Coron,Dru Freeman ,Luke Parham,Caroline,Lea。
你认为WWDC 2018的“不要错过”视频怎么样?请在下面的评论中告诉我们!
原文:https://www.raywenderlich.com/5756-top-10-wwdc-2018-videos-in-review
作者:Tim Mitra 2018年6月21日