程序员应该关心的iOS12新特性一览

4,033 阅读6分钟

iOS12随着2018WWDC的召开揭开了它神秘的面纱, 不过令人感到失望的是, 它并没有带来翻天覆地的变化: 没有改变沿用了5年的扁平化UI, 没有黑暗模式(但有半成品), 没有带来Swift5, 没有带来真正强大的Siri.

和朋友圈、微博的画风不同,我们程序员其实对黑色磨砂widget、防沉迷、新的照片、测量、录音App不感兴趣. 我们真正感兴趣的应该是iOS12新开放的特性和API, 以及系统底层的优化和技术实现.

那么首先, 我们就来介绍一下这次iOS12最重磅的功能, Animoji大头贴版.

开玩笑😝, 不过我必须要说, 此次新加入的大头贴模式实在太有魔性, 精美的3D建模和光影效果让屏幕中的角色栩栩如生, 毫无违和感.

下面言归正传

稍微对iOS比较了解的用户看到这个Siri Shortcuts一眼就能认出它就是大名鼎鼎的Workflow的马甲哦不升级版. 它的主要功能依旧是将各种事件进行排列组合, 以最终实现一次触发完成多个操作, 比如自动举报垃圾短信、扫描二维码自动复制内容等等.从截图中我们可以看出, 苹果开放了更多的系统接口, 甚至支持第三方应用的接入, 让Workflow可以为我们做到更多, 创造更多可能性.

在此之上, Apple还水到渠成的加入了Siri控制. 你现在可以对Siri说一个暗号, 它就能帮你完成一系列之前安排好的任务. 这很难说是Siri的进化, 更像是对Workflow的一种补充. 你可以理解为, Siri暂时还无法像Bixby一样智能的为你抢红包、发朋友圈、关注微博, 但它能够通过适当的设置和学习, 尽可能完成你想要的任务. 当然, 这需要你有一定的逻辑能力, 以及, 需要第三方App的适配.

除此之外Siri有变得更聪明吗?能为我做更多的事情吗? 至少从目前的信息来看, 并没有.

Core ML在短短一年的时间里进化到了第二代, 伴随而来的是模型构建的速度提升和容量的减少(相比于上一版本使用 Batch 预测速度快了 30% 左右,使用 Quantization 模型大小减少了 75% 左右), 基于Playground的可视化模型构建, 基于视觉和自然语言的模型. 这进一步降低了机器学习的成本.

机器学习的热度在今年依旧火热, 但在移动端似乎还没有亮眼的基于机器学习的App出现(不含基于云的机器学习).

ARKit也在第二个年头进化到了第二代. 支持多人同时操作, 让AR游戏能够创造更多有意思的使用场景. 现在, ARKit能够保存当前环境的状态并在下次使用时直接利用之前的环境数据构建3D模型. 同时, ARKit也增强了对实物2D和3D物体的感知, 能够在此基础上玩出更多花样. 例如WWDC上乐高演示的Demo, 虚拟3D模型可以覆盖在实物3D物体上, 完成各种交互, 毫无违和感.

目前VR由于成本、技术、体验等种种原因, 已经逐渐退去了光环. AR在苹果的加持下虽然热度不减, 但始终也没有太多闪光点. 这还需要厂商和开发者在商业、 技术可能性上继续探索. Apple在这样的背景下提出了Quick Look, 将3D模型+AR变成可以分享的文件. 这是一个很有意思的想法, 甚至发散一点, 它将有可能取代图片和视频, 成为PPT、 朋友圈的一种新的传播媒介.

设想一下, 你在某个手游中打到了传说中的屠龙宝刀, 点击分享, 你的朋友就能够看的这把宝刀的3D模型, 甚至可以以1:1的形式展现在现实世界中, 这是多么有意思的一件事情. 我相信这将彻底改变商业、游戏、教育等等众多领域.

Metal 2.1

Metal进行了小版本迭代, 添加了包括对加速射线追踪(accelerated ray tracing)和间接命令缓冲区(indirect command buffers)的支持.

Interactive Controls in Notifications

通知现在加入了更多的交互, 让用户可以在不打开应用的情况下作出更多的操作. 此外, 这次最显见的就是通知分组功能. 这下再也不会被IM霸屏啦.

Authentication Services

其实之前通过integrate password manager, 我们已经能够实现Safari和部分App的密码自动填充. 此次新增加了Password AutoFill能够将密码自动填充延伸到更广的范围, 由此可以猜想, 像1Password甚至第三方浏览器都有可能实现跨应用的密码自动填充功能.

甚至我设想, 如果我们的所有密码都跟我们的设备(Face ID、 Touch ID)相关联, 那我们不需要设置一个好记的密码, 甚至我们不需要知道这个密码, 就可以提供相应的身份验证. 我想这就是密码的最终形态了吧.

CarPlay for Navigation Apps

CarPlay现在支持第三方导航啦

Network Framework

虽然在发布会上没有讲, 但似乎苹果重写了iOS12的Network Framework. 这带来的好处是, 如果你的App需要直接使用如TLS,TCP和UDP等协议, 新的Network Framewor将会让工作变得更加容易. 当然如果你仅仅使用到URLSession或是基于URLSession的第三方网络框架, 那么无需改动. URLSession是基于新的Network Framework构建的.

此外, Apple还如同往年一样, 例行将一批老的API打入冷宫, 大家在更新Xcode后会一一看到警告⚠️.

以上就是iOS12给我们带来的新特性. 是不是和我一样觉得不够尽兴, 略感失望. 其实和之前媒体推测的一样, 由于iOS11出现的大量bug, iOS12推迟了大量新特性甚至是新UI交互, 转而将重心放到代码质量上. 当然, 还有一个重要的原因就是, 为同样是N年没有大更新的Mac OS带来了大量的新功能和新特性. 或许Mac OS将会是iOS的一个试验田, 我们今天在Mac OS上看到的种种特性将在接下来的一段时间内陆续出现在iOS上. 甚至, 喊了N年的Mac OS与iOS的整合也将慢慢到来, 不管是以什么方式.