咨询电话:400-858-6688
电子产品
电子产品
当前位置:必威体育 > 电子产品 >

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

时间:2019-07-04 10:09 来源:中福机电 作者:湖南机电

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

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

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

▲ 图片来自:Forbes

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

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

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

在 Mac 上也能用 iPad 应用了,苹果是如何实现的?-爱尖刀

XML 地图 | Sitemap 地图