您的位置首页>互联网>

在 Mac 上也能用 iPad 应用,苹果的系统应用生态融合项目

摘要 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解在 Mac 上也能用 iPad 应用,苹果的系统应用生态融合项目问题。iOS和macOS的应用...

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解在 Mac 上也能用 iPad 应用,苹果的系统应用生态融合项目问题。

iOS和macOS的应用生态融合是一个雄心勃勃的项目,也是苹果近年来实施的最大的软件变革。Ars Technica最近采访了几位苹果工程师和第三方开发者,进一步分析这个项目。早在2018年的WWDC大会上,苹果就公开回应了一个讨论已久的话题,那就是iOS和macOS在系统上的融合。但事实上,苹果并不打算合并这两个系统。它真正想做的是打开移动和桌面的应用生态。

作为首批示范案例之一,在macOS 10.14中,苹果将iOS上的新闻、股票等手机应用移植到Mac系统,强调开发者可以用“一点点精力”实现这样的移植。

图片来自:福布斯。

到今年年底,苹果进一步宣传了名为“Project Catalyst”的项目,让广大第三方开发者也能参与移植工作。简单来说,现在开发者可以使用苹果提供的新工具包,只需调整iPad应用的底层代码,就可以直接创建一个可以在Mac电脑上运行的应用。听起来并不难,但项目本身还是有很多有趣的细节。

如何将iPad应用程序移动到Mac电脑?去年,苹果工程副总裁Craig Federighi介绍,“Project Catalyst”的目的是借助成熟的iOS应用生态,推动Mac平台的发展,丰富桌面应用。数据显示,iPhone用户数量接近10亿,而使用Mac电脑的用户数量只有1亿。在这样的悬殊下,自然很难驱使开发者只为后者开发应用,移植是最快最容易弥合差距的策略。但是作为一个平台,要想吸引足够多的第三方开发者参与其中,显然需要先解决移植的工作量、成本和风险。

为此,苹果的第一步是计划将iPad应用程序带到Mac电脑上,而不是大量的iPhone应用程序。macOS高级营销总监Todd Benjamin解释说,这是因为iPad应用上线时已经适应了大屏,UI界面也基本做好了,但iPhone应用还需要重新设计。但是在具体的迁移过程中,iOS和macOS还是有很多不同的地方。

最明显的一点是,macOS应用使用AppKit,而iOS应用使用UIKit,这是两种不同的开发框架。直接重用一组代码显然是不现实的。苹果只能尽可能地集成两种架构的相同部分,以减少移植的工作量。

Twitter的工程师诺兰奥布莱恩(Nolan O'Brien)在接受采访时表示,苹果提供了一个套件,允许开发人员重用现有的代码资源,这意味着应用程序供应商不再需要为Mac应用程序建立单独的运维团队。“未来,我们对Mac平台的支持将提升到与iPhone和iPad相同的水平。奥布莱恩说,推特的macOS应用程序的官方版本已经在WWDC展示过,然后会放到Mac商店。

旅行规划软件Tripit的开发者Rich Shimano认为,迁移的挑战在于照顾一些可能需要用新API重写的旧框架代码,以及调整iPad应用对多任务和自动窗口布局的支持。然而,架构集成只是其中一个要点。iPad和Mac在硬件和交互上的差异也会影响应用的设计,它们的使用场景也有所不同。

苹果还在开发者文档中提到,部分iPad应用会同时使用陀螺仪、重力加速度传感器和后置摄像头,但这些组件并没有集成到Mac电脑中,苹果在移植时会自动删除不兼容的特征码。在交互方面,iPad应用基于触摸屏和手势,而Mac应用需要鼠标、键盘或触摸板。其中,交互变化会在移植过程中自动转换。比如手指触摸/长按操作会对应鼠标点击或双指点击,还会增加窗口大小调整、窗口拖拽、全屏显示等功能,这些功能只会在Mac电脑上使用。自动转换的应用程序只能达到“可用”级别。如果开发者想要实现更丰富的功能,比如侧边栏设计、添加模块等,还需要做针对性的编程。

但是在新的发展环境下,

开发者的工作量确实明显下降了。据采访介绍,Gameloft 的开发团队只花了一天时间,就将《狂野飙车 9》从一个 iOS 应用转变为一个可运行的 Mac 电脑游戏、他们删减了只能在 iPad 上使用的重力感应操作,改写了 UI 界面和部分代码,实现在 Mac 平台稳定 60 帧的运行。同时,在桌面级芯片的支持下,移植类应用也能获得额外的性能资源。Gameloft 图形工程师 Alex Urbano 就表示,他们在 Mac 平台上实现了更高分辨率的支持,同时还增加了一些新的画面特性,比如车辆的自动阴影、超采样、高质量的运动模糊和屏幕空间反射功能。Mac 应用的数量多了,但质量能保证吗?双端应用融合计划被业内视为是苹果重新重视起 Mac 平台的信号,但它也引发了部分 Mac 核心用户的担忧。一方面,苹果的新套件确实能为 Mac 平台带来一大批新的应用;但另一方面,这可能也会降低开发者从零设计一款独立 Mac 应用的热情,而倾向于用移植工具解决一切。

毕竟,从现有几款移植自 iPad 平台的应用来看,它们的界面都十分简单,基本就是主界面加一个侧边栏的设计,功能也和 iPad 端基本相同,有的甚至直接照搬了移动端的 UI 控件,这放在强调使用键鼠、触控板操控的 Mac 平台上显得格外另类。不过,苹果工程师们却认为,「Project Cataylst」项目的价值在于降低移植门槛,但并未改变 Mac 应用开发的可能性与上限。

「我们让移动开发者可以在一款基于 UIKit 移动应用的基础上,使用 Appkit 桌面端的特性来进行调整和修改。而对于那些创意内容人士和专业级工具而言,他们会清楚自己的用户群和受众想要什么内容。」

Gameloft 图形工程师 Alex Urbano 也表示,现在的移植工具对于人力和工作效率的帮助都很明显。只有需要用到 Mac 中某个特定的硬件功能,他们才会考虑重头设计一款应用。为了确保质量,推动开发者对于 Mac 应用的迭代,去年苹果还改进了 Mac 应用商店的页面,让厂商可以看到用户的评分和反馈,并进一步拉进开发者和用户之间的关系。同时,苹果也希望在新套件的影响下,能够让那些过去只为 Mac 做应用的开发者们能够重新考虑 iPad 平台,尤其是在 iPadOS 出现后,苹果对于 iPad 生产力工具的定位也变得更为明确。

「过去 Mac 平台只拥有那些复杂的应用软件,它们的功能很强大,适用范围也十分广泛,而移动端的应用往往都较为单一,强调的是专注。现在苹果希望将两者合并到一起,让用户在 Mac 上也能享受到 iPad 和 iPhone 上的应用生态,并在多个平台保持一致的使用体验。」就算不用「Project Cataylst」,开发者们也还有 SwiftUI 可选。这是苹果为了旗下多个系统提供的一套统一的 UI 编写框架,同样可以降低多平台应用开发门槛。

不过,在开发者看来,是否要在 Mac 平台上做一个原生应用仍存在争议。尤其是那些偏向娱乐消费的应用,比如说你想在哔哩哔哩上看一部动漫,在 iPad 端可能会点开一个应用,但在 Mac 上则习惯直接登录网页端。如果能用网页端就能解决,原生应用自然不是必需,那消耗精力开发独立桌面应用的意义又是什么?抛开市场需求不谈,这在缺乏明确商业利益的情况下更是如此。根据彭博社于今年年初的报道,苹果计划在 2021 年左右彻底打通移动端和桌面端的应用,届时 iPad、iPhone 和 Mac 将会共用一个应用商店,消费者可以实现「一次付费,同时在三个平台使用应用」的体验,而无需在不同平台上分别购买同一个应用。这不是一件容易的事情,它涉及到苹果对应用商店战略的调整,也取决于开发者群体的支持力度。

iOS 和 macOS 两大系统的应用生态融合是一个极具野心的项目,也是苹果近几年在软件层面实施的最大改动。Ars Technica 近日采访了几位苹果工程师和第三方开发者,对这个项目做了进一步解析。早在 2018 年的 WWDC 大会上,苹果就公开回应了一个已经被讨论许久的话题,那就是 iOS 和 macOS 在系统上的融合。但实际上,苹果并未打算将两个系统合并,它真正想做的其实是打通移动端和桌面端的应用生态。

作为首批展示案例,在 macOS 10.14 中,苹果就曾把 iOS 端的新闻、股票等手机应用移植到 Mac 系统中,强调可以让开发者用「很少的精力」就能实现这样的移植工作。

▲ 图片来自:Forbes

到了今年,苹果进一步公开了名为「Project Catalyst」的项目,让广大第三方开发者也参与到移植工作中。简单来说,现在开发者们可以利用苹果提供的新工具包,只要对 iPad 应用的底层代码做简单的调整,就能直接创建一个可以在 Mac 电脑上运行的应用。这听起来似乎并不困难,但项目本身仍然有很多让人在意的细节。

如何将一款 iPad 应用搬到 Mac 电脑上?去年,苹果工程副总裁克雷格·费德里吉(Craig Federighi)曾介绍「Project Catalyst」项目的设立目的,就是为了借助成熟的 iOS 应用生态来推动 Mac 平台的发展,丰富桌面端的应用。从数据来看,iPhone 的用户规模已经接近 10 亿,而使用 Mac 电脑的用户量仅为 1 亿而已,在这样的悬殊差距下,自然很难驱动开发者只为后者开发应用,而移植则是弥补差距最快速、简单的策略。但作为平台方,想要拉拢足够多的第三方开发者参与其中,显然得先解决移植的工作量、成本和风险等问题。

为此,苹果第一步是计划先将 iPad 应用带到 Mac 电脑中,而非数量更多的 iPhone 应用。macOS 的高级市场总监 Todd Benjamin 解释说,这是因为 iPad 应用在上线时就已经针对大屏幕做了适配,UI 界面基本都是现成可用的,反而是 iPhone 手机应用需要重新修改设计。但在具体的迁移过程中,iOS 与 macOS 两个系统的编写底层仍存在不少差异。

最明显的一点,macOS 应用使用 AppKit,而 iOS 应用使用 UIKit,这是两种不同的开发框架,直接复用一套代码显然不现实,苹果只能尽可能地将两者架构中相同的部分整合到一起,降低移植的工作量。

Twitter 的工程师 Nolan O‘Brien 在采访时就表示,苹果提供了一个可以让开发者重复利用现有代码资源的套件,这意味着应用厂商不必再为 Mac 应用单独设立一支运维团队。「今后我们对于 Mac 平台的支持,会提升至和 iPhone、iPad 一样的水准。」O’Brien 称,目前 Twitter 的官方版 macOS 应用已经在 WWDC 上有过展示,之后就会上架 Mac 商店。

而旅行规划软件 Tripit 的开发者 Rich Shimano 则认为,移植工作的挑战在于要照顾一些老旧的框架代码,其中可能需要用新的 API 进行改写,此外还要调整 iPad 应用对于多任务和窗口自动布局的支持。但架构整合只是其中一点,iPad 和 Mac 的硬件与交互差异也会对应用设计产生影响,两者的使用场景也都不尽相同。

苹果在开发者文档中也提及,有的 iPad 应用会借用陀螺仪、重力加速感应器和后置摄像头等元件配合使用,但这些元件并未集成在 Mac 电脑中,移植时苹果也会自动将不兼容的特性代码进行删减。而在交互方面,iPad 应用基于的是触摸屏和手势操作,Mac 应用则需要用鼠标、键盘或触控板。其中的交互变化会在移植过程中自动转换,比如手指的触摸/长按操作会对应鼠标单击或双指点击,也会加上窗口大小调整、窗口拖放、全屏显示等只有在 Mac 电脑上才会用到的功能。自动转换下来的应用只能达到「可用」的层面,如果开发者想要实现更丰富的功能,比如边栏设计,新增模块等,还需要做针对性的编程处理。

但在新的开发环境下,开发者的工作量确实明显下降了。据采访介绍,Gameloft 的开发团队只花了一天时间,就将《狂野飙车 9》从一个 iOS 应用转变为一个可运行的 Mac 电脑游戏、他们删减了只能在 iPad 上使用的重力感应操作,改写了 UI 界面和部分代码,实现在 Mac 平台稳定 60 帧的运行。同时,在桌面级芯片的支持下,移植类应用也能获得额外的性能资源。Gameloft 图形工程师 Alex Urbano 就表示,他们在 Mac 平台上实现了更高分辨率的支持,同时还增加了一些新的画面特性,比如车辆的自动阴影、超采样、高质量的运动模糊和屏幕空间反射功能。Mac 应用的数量多了,但质量能保证吗?双端应用融合计划被业内视为是苹果重新重视起 Mac 平台的信号,但它也引发了部分 Mac 核心用户的担忧。一方面,苹果的新套件确实能为 Mac 平台带来一大批新的应用;但另一方面,这可能也会降低开发者从零设计一款独立 Mac 应用的热情,而倾向于用移植工具解决一切。

毕竟,从现有几款移植自 iPad 平台的应用来看,它们的界面都十分简单,基本就是主界面加一个侧边栏的设计,功能也和 iPad 端基本相同,有的甚至直接照搬了移动端的 UI 控件,这放在强调使用键鼠、触控板操控的 Mac 平台上显得格外另类。不过,苹果工程师们却认为,「Project Cataylst」项目的价值在于降低移植门槛,但并未改变 Mac 应用开发的可能性与上限。

「我们让移动开发者可以在一款基于 UIKit 移动应用的基础上,使用 Appkit 桌面端的特性来进行调整和修改。而对于那些创意内容人士和专业级工具而言,他们会清楚自己的用户群和受众想要什么内容。」

Gameloft 图形工程师 Alex Urbano 也表示,现在的移植工具对于人力和工作效率的帮助都很明显。只有需要用到 Mac 中某个特定的硬件功能,他们才会考虑重头设计一款应用。为了确保质量,推动开发者对于 Mac 应用的迭代,去年苹果还改进了 Mac 应用商店的页面,让厂商可以看到用户的评分和反馈,并进一步拉进开发者和用户之间的关系。同时,苹果也希望在新套件的影响下,能够让那些过去只为 Mac 做应用的开发者们能够重新考虑 iPad 平台,尤其是在 iPadOS 出现后,苹果对于 iPad 生产力工具的定位也变得更为明确。

「过去 Mac 平台只拥有那些复杂的应用软件,它们的功能很强大,适用范围也十分广泛,而移动端的应用往往都较为单一,强调的是专注。现在苹果希望将两者合并到一起,让用户在 Mac 上也能享受到 iPad 和 iPhone 上的应用生态,并在多个平台保持一致的使用体验。」就算不用「Project Cataylst」,开发者们也还有 SwiftUI 可选。这是苹果为了旗下多个系统提供的一套统一的 UI 编写框架,同样可以降低多平台应用开发门槛。

不过,在开发者看来,是否要在 Mac 平台上做一个原生应用仍存在争议。尤其是那些偏向娱乐消费的应用,比如说你想在哔哩哔哩上看一部动漫,在 iPad 端可能会点开一个应用,但在 Mac 上则习惯直接登录网页端。如果能用网页端就能解决,原生应用自然不是必需,那消耗精力开发独立桌面应用的意义又是什么?抛开市场需求不谈,这在缺乏明确商业利益的情况下更是如此。根据彭博社于今年年初的报道,苹果计划在 2021 年左右彻底打通移动端和桌面端的应用,届时 iPad、iPhone 和 Mac 将会共用一个应用商店,消费者可以实现「一次付费,同时在三个平台使用应用」的体验,而无需在不同平台上分别购买同一个应用。这不是一件容易的事情,它涉及到苹果对应用商店战略的调整,也取决于开发者群体的支持力度。

.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content:"广告"; } .dfma img { display: block; }
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。