Swift

WWDC 2020 Day 1:iOS 开发者速递

2020-06-23  本文已影响0人  面试官小健

Hello,不知道大家昨天有没有熬夜看完 WWDC 呢?是不是跟小健一样,发现是个录播觉得有点不过瘾哈。有一说一,苹果对于疫情之下的活动安排还是费了不少心思的,这次的活动在 Apple Park 闭门举办,让我们能从内部一窥未来感十足的飞碟型的大楼,加上不同以往的舞台和串联形式我想应该还是给每个人留下了深刻的印象。你是否记得这次片头的星星点点?当镜头拉近,发现原来这些点点灯光是世界上各个角落、无数的开发者拿着 MBP 开发的场景,你是否和我一样也感动不已?

可是感动不能当饭吃,生活还是要继续,当你带着熬夜看完 WWDC 的黑眼圈去上班,你的老板从你背后拍拍你的肩膀,问道:这次 WWDC 有啥新东西可以用到我们的 App 上的时候。我想以下这些内容是值得你了解的。

iOS 14 桌面小组件 Widgets

iOS 14 为我们带来了迟到的桌面小组件,支持各种尺寸,甚至可以把多个叠在一起。迟到了那么久,美其名曰是因为觉得之前的 UI 技术都太耗电,觉得这个功能得结合 SwiftUI 来做,有一定道理,我姑且信了吧。大局已定,我们需要基于 WidgetKit 和 SwiftUI 开发桌面小组件,在 Widget 需要更新的时候,更新的 SwiftUI 的状态会被 Archive 起来,在用户能看到的合适时机被更新到桌面上。

说是这么说,但是我有点担心 Widget 狂热爱好者手机电量够不够用。不过各大 App 应该都会跟进,而不会放弃这个那么显眼的入口的吧。

从今年开始,苹果对 Swift 和 Swift UI only 的框架投入进一步加大,抱着 OC 不放的大厂可以重新考虑起来了,抱着 OC 不放的开发者也重新考虑一下未来的技术方向到底是哪里了。我曾经面试过一个开发者,由于大厂还停留在 OC 上,所以不考虑学习 Swift,这种务实精神还真令人感动。

言归正传,SwiftUI 作为未来统领苹果五个平台的 UI 框架,在今年值得开发者更多的投入。谢天谢地,去年赶鸭子上架的 SwiftUI 今年并没有被推翻重做,苹果号称 API 上是只增不改的,所以去年写的代码都是兼容的。这些增加的 API 有的非常关键,比如LazyVStack,解决了大页面内存消耗过大等问题,另一方面,苹果推广的策略从去年的部分视图用 SwiftUI 编写,到今年提供更多的平台相关的 SwiftUI 组件,从局部到整体、逐步替换的策略是十分明显的。

iOS 14 小程序:App Clip

不知道张小龙是不是也熬夜在看 WWDC,看到这一部分有没有默默点起一支烟呢?传说中的苹果官方小程序出现了。

苹果的小程序是这么玩的:

首先,根据预先填写的 metadata 生成如上图的页面,在这个页面弹出的时候,默默帮你下载个小程序本体(不能超过10MB)。
其次,触发这个页面的途径有两个,一个是通过 NFC,另一个是通过扫码,长这样:

对于 NFC 直接触发下载这条链路我是有担心的,因为在用户没有感知的时候会触发下载,我想这个应该能关闭的。

iPadOS 14

一方面,iPadOS 做得更桌面,比如侧边栏,以及全局搜索。
另一方面,围绕着 Apple Pencil 讲故事,这次支持了文字识别,以及笔记文字的识别和选中。

macOS 11: Big Sur

macOS 终于升级大版本号了!这次 macOS 11 也有个霸气的名字叫大瑟尔。这次的改动除了界面设计上和 iOS 更加靠拢外,支持 ARM 架构才是配拥有 macOS 11 姓名的最主要的原因。但是聪明的苹果通篇没用 ARM 架构这么技术和干瘪的名字,而是给它起名 Apple Silicon。

完成 macOS ARM 化后,苹果所有的平台都是 ARM 架构 的了。这个改变对于苹果来说具有战略意义,意味着苹果对于整个软硬生态的完全掌控。不仅仅是CPU,对于自有的GPU、人工智能芯片、安全加密等硬件模块可以有更好的整合,iPad 上硬件的积累可以惠及 Mac 产品线。

梦想是美好的,过程却不是一蹴而就的。因为当前的桌面软件都是基于 Intel 架构的,二进制不兼容的,苹果几板斧来解决这个问题。

  1. 与微软这样级别的合作伙伴合作,在 WWDC 之前完成把 Office 这样复杂的套件,在 ARM 架构上重新编译。
  2. 开发 Rosetta 2 这样的转译工具。让 Intel 架构的存量桌面软件不经修改,就可以在 ARM 的 Mac 上跑起来(运行前转译)。
  3. iOS 的存量软件是个宝库,既然都是 ARM 架构了,那么允许在 Mac App Store 上直接下载运行 iOS 软件吧。还记得 iOS 13 的时候让你们 Adopt UIScene API 支持多屏吗?说是为了 iPad 支持多屏,其实醉翁之意不在酒,支持多屏的 App 最终是为让 它更适配 macOS。
  4. 去年公布的 Catalyst(使用 iOS API 编译成 macOS App)有了上面扎实的运用。但是为了同时支持 Intel 架构的存量 Mac,这个迁移还是需要手动做一做才能覆盖两个架构。

对于我们开发者来说,统一成 ARM 架构是有好处的,意味着我们模拟器版本的 iOS App 也可以是 ARM 的了。

结语

WWDC 2020 才刚刚开始,我们一起期待接下来的议程。

上一篇下一篇

猜你喜欢

热点阅读