返回博客首页
← 所有文章

iOS 13、Apple 登录、iPadOS 和 ARKit 3 — 全部在 NativeScript 上

2019 年 6 月 13 日 — 作者 Rob Lauer

上周的 苹果全球开发者大会(简称 WWDC19,或者“Dub Dub”,酷孩子们的叫法 😎)为苹果不断扩大的移动产品线带来了一系列产品发布和公告。虽然几乎我们所有人都认为 999 美元的显示器支架是本次活动的低点 😬,但看到苹果面向未来的移动战略付诸实施,仍然令人兴奋。

活动结束后,我们许多 NativeScript 开发人员现在已经准备好并渴望上手作为 iOS 13 测试版(以及 iPadOS!)一部分发布的众多新 API。所以让我们从这里开始 - **这个 iPadOS 到底是什么?**

iPadOS

作为移动开发者,我们敏锐地意识到在支持多个平台和多种外形尺寸时遇到的困难。在 Android 方面,我们即将迎来可折叠屏幕(!) ,而 Apple 现在引入了一个名为 iPadOS操作系统。

ipados logo

那么 iPadOS 究竟是什么,它将如何影响我们?我们今天知道的是,iPadOS **建立在与 iOS 相同的基础之上**。这是一个非常好的消息,因为目前使用 iOS 构建的应用应该可以在 iPadOS 上正常运行。

我们对 iPadOS 的早期测试表明,确实如此。今天构建的 NativeScript 应用在 iPadOS 上运行良好 😌。

Apple 采用 iPadOS 的原因主要是因为出于多种原因,iPad 上的用户体验与 iPhone 越来越不同。

  • 用户正在使用更大的显示屏(比以往任何时候都大);
  • iPad 上的多任务处理能力与 iPhone 截然不同;
  • 使用 Apple Pencil 进行用户输入提供了一套完全不同的交互方式。

我们应该预计未来几年 iOS 和 iPadOS 之间在体验方面会进一步出现分化,但目前来看,变化似乎很小。

iOS 13

Apple 可预测的 iOS 更新发布计划带来了最不令人意外的公告:iOS 13 将在今年秋季与我们见面。

ios 13 logo

从 NativeScript 的角度来看,iOS 13 带来的变化并不算惊天动地,但值得注意的有几个方面。

暗黑模式

从 iOS 13 开始,最终用户可以选择启用名为 暗黑模式 的系统范围设置。在暗黑模式下,iOS 将在所有 UI 元素(如果可用)中使用深色调色板。

dark mode on ios 13

对于大多数 UI 组件,暗黑模式将开箱即用,无需任何更改。但是,假设您对 UI 进行了一些与颜色相关的自定义,则需要一种方法来自动将元素切换到深色配色方案,或者允许以编程方式进行这些更改。

NativeScript 团队可能会以几种不同的方式处理这个问题。

  1. 所有 NativeScript 应用附带的 核心主题 将更新以支持暗黑模式。(如果您对这方面和其他计划的改进感兴趣,请 关注此 GitHub 问题。)
  2. 作为插件的一部分或作为核心 {N} 框架的一部分,将公开一个 API,允许您识别用户所处的显示模式。这将允许您以一种或另一种配色方案呈现 UI 元素。

这里有一个 后一种实现的简单 API 示例。

import { isDarkModeEnabled } from "nativescript-dark-mode";

const darkModeEnabled: boolean = isDarkModeEnabled();

ARKit 3

对于希望开发沉浸式应用体验的 NativeScript 开发人员来说,nativescript-ar 插件 一直很受欢迎。随着 ARKit 3 的发布,这种情况只会得到改善。

从开发人员的角度来看,ARKit 3 最重要的改进可能是新的“人物遮挡”功能。这允许您的 AR 对象在现实世界中的人的前后穿梭。您还可以同时利用前后摄像头,从而带来更独特的体验。

阅读有关 在 NativeScript 中入门增强现实 的更多信息。

期待今年晚些时候在 nativescript-ar 插件中看到这些(以及其他)增强功能(包括我们希望引入 ARCore API 的内容🤞)。

Apple 登录

可以说,对于开发者而言,最具争议的更新是 Apple 将 Apple ID 登录体验引入 iOS 应用。但请注意,如果您的应用已使用第三方身份验证提供程序,则 Apple 将使其成为必选选项。

来自更新的 App Store 审核指南:“Apple 登录将在今年夏天提供测试版。当它在今年晚些时候正式推出时,它将成为支持第三方登录的应用中用户的必选选项。”

虽然这对开发者来说可能有点麻烦,但对于最终用户来说,这是一个非常受欢迎的补充。绝大多数 iPhone/iPad 用户已经拥有 Apple ID,此功能允许他们使用自己的 Apple ID 登录应用和网站。Apple ID 帐户默认情况下受双因素身份验证保护,Apple 明确表示他们不会跟踪您在任何应用或网站中的活动。

“Apple 登录”与其他类似服务(如 Facebook、Google、Microsoft、Twitter、GitHub 等)有什么区别?使用 Apple 的身份验证服务,使用应用将无法查看最终用户的电子邮件地址。这是如何运作的?Apple 而是为每个应用/用户组合提供一个“代理”电子邮件地址。应用必须将电子邮件发送到代理地址,然后 Apple 将将其转发到真实地址。这通过不允许应用开发者在其应用之间交叉引用用户(以及一种轻松关闭非法使用电子邮件的方式)来提供额外的隐私保护层。

“Apple 登录”似乎基于 OAuth 2 并不意外。虽然文档尚未明确说明这一点,但您进行的 API 调用是相同的。因此,如果您已经在使用 OAuth 2,则添加“Apple 登录”应该是一个相对简单的过程。

当然,NativeScript 开发人员也将在今年秋季晚些时候能够将其应用添加 Apple ID 身份验证。开玩笑的,你现在就可以做到!对于想要试用它的人,nativescript-apple-sign-in 插件已经可用。

import { signInWithApple } from "nativescript-apple-sign-in";

signInWithApple({
    // note that 'scopes' don't currently work - it'll probably be fixed in an upcoming iOS 13 beta
    // but this is what you'll be doing in the future if you really need those details
    scopes: ["EMAIL", "FULLNAME"]
})
.then(credential => {
    console.log("Signed in, user: " + credential.user);
    // you can remembed the user to check the sign in state later (see 'getSignInWithAppleState' below)
    this.user = credential.user;
})
.catch(err => console.log("Error signing in: " + err));

sign in with apple nativescript

Progress Kinvey 和 Apple ID 支持

如前所述,对身份验证提供程序选项的强制添加不可避免地意味着应用开发人员需要进行大量工作。当被迫讨论身份管理时,开发人员往往会逃跑并躲起来。我们不能责怪他们。

但是,我们相信 Progress 已经解决了这个问题,那就是 Progress Kinvey移动身份连接 (MIC) 功能。

现在请耐心听我说完,这不是一句营销口号 😀 - MIC 真正地使企业身份验证比自己推出它更容易(尤其是在处理多个平台上的多个身份验证提供程序时,就像我们大多数人一样)。

progress kinvey apple id

由于“Apple 登录”基于 OAuth 2,因此这意味着移动身份连接将在今年秋季提供全面支持!

如果您有兴趣了解如何轻松地将身份验证提供程序添加到 NativeScript 应用中,请务必查阅有关 Kinvey 的企业身份验证 的这篇文章或 阅读 Kinvey DevCenter 中的 MIC 文档

总结

又一年,另一个 WWDC 为各种类型的移动开发者带来了令人兴奋的更新。Apple 如何将移动信息多样化,不仅仅局限于 iPhone,这一点变得越来越清晰——而是专注于扩展和改进补充设备和体验。

您还在等什么?获取 Xcode 11 测试版和 iOS 13 测试版,开始着手开发下一个伟大的 NativeScript 应用吧!