Project Catalyst旨在将应用程序引入Mac 增强iPad的标题
Project Catalyst旨在使许多现有的100万个iPad应用程序在Mac上本地工作,其方式与现有的Mac软件无法区分,并且对用户透明。与此同时,它也有望帮助推动iPad优化应用的供应。这是如何做。
顾名思义,Catalyst是一种以更少的努力或成本实现新事物的方法。巧合与否,这个名字也与macOS Catalina对战,后者需要使用使用它创建的新Mac游戏。
去年夏天,Apple最初推出了Catalyst的概念 - 没有任何正式名称 - 作为内部实验,将为iOS创建的四个游戏带到macOS Mojave:新闻,股票,家庭和语音备忘录。
当时,我们将 Public Beta版本中的新应用程序描述为“绝对仍在进行中”,但也清楚地显示“仅限iOS应用程序转换到Mac的可能性,同时为开发人员提供更少的工作为用户提供更好的体验,而不仅仅是提供Web应用程序界面。“
其他人则更为关键,专注于移植应用程序中的特定粗糙边缘,而不是看到冰球可能去的任何可能性。一些人认为iPad应用程序不可能在Mac上有宾至如归的感觉。20年前苹果公司首次开始展示最初的Mac OS X时,过度的玩世不恭也是一个常见的错误,最初的Mac OS X与Mac OS Classic相比,最初感觉不那么优化和“活泼”。需要时间来揭示Apple的新软件最终会带来更好的体验。
我们已经看到了Catalyst的巨大进步。苹果公司现在已经采取了去年所学的一切,采用以前的内部工具并向第三方开发人员开放,因此他们可以将自己为iOS构建的应用程序转换为能够在macOS Catalina上运行的本机UIKit应用程序。
Apple的首席软件架构师Craig Federighi 称这一策略“毫无疑问”。苹果公司对Catalyst充满信心地使用它为Catalina的关键应用程序提供动力,包括新的Find My和Podcasts应用程序。
第一步:制作一款出色的iPad应用
Catalyst不打算在Mac桌面上运行iPhone大小的应用程序作为浮动桌面配件。相反,它旨在构建完整的Mac游戏,可以充分利用Apple桌面平台的几乎所有功能。出于这个原因,Apple将Catalyst称为将iPad应用程序移植到Mac上,特别指出转换的第一步是“构建一个出色的iPad应用程序”。
自从2010年史蒂夫·乔布斯首次推出iPad以来,苹果公司一直坚持认为iPad本来是一种独特的新体验,而不仅仅是“大型iPod touch”。它始终指向专门针对iPad进行优化的大型应用程序库,作为其他平板电脑的主要差异化,这些平板电脑用作延伸的手机应用程序,或PC“混合动力”,旨在将触摸或平板电脑概念分层到传统的Windows PC桌面之上。
经过对其不同方法的十年迭代,不可能认为Apple错了。谷歌'承认存在问题。
虽然有PC触控笔的笔记本电脑的热情支持者,或支持传统窗口和鼠标式指针的可拆卸混合PC平板电脑,但这些产品实际上并没有以有意义的数量销售,也没有引入任何优秀的优化库软件可以非常有效地使用触摸或板岩外形。
苹果公司故意将iPhone,iPad和Mac应用程序孤立起来,这不仅带来了无与伦比的庞大平板电脑优化应用程序库,而且还导致苹果销售最多的平板电脑,而不会破坏其传统Mac的销售。事实上,苹果继续保持不断增长的Mac用户群,尽管它已经创造了更大的iPad用户群。Apple的iPad不是像上网本这样的临时时尚,而是建立了一个可持续的用户平台,通过简化的平板电脑体验满足特定需求。对于许多人来说,iPad是使用Mac的补充,同时又是一种独特的体验。
去年,苹果公司的软件主管克雷格·费德瑞(Craig Federighi)明确表示“不”,苹果公司并没有试图撤销这个或“融合”其iOS和Mac平台。相反,Catalyst实验的目的是利用这样一个事实,即有很多iOS应用程序在Mac上很棒,如果只有一种方法可以将它们移植并将它们转换为明显不同的桌面优化体验对Mac用户来说很熟悉,而不是像托管的,笨拙的外来兼容垫片。
为什么需要催化剂
虽然iOS和macOS一直共享大部分核心操作系统软件并提供非常类似的应用程序构建方法,但开发人员用于为Mac编写AppKit应用程序或为iPhone编写UIKit应用程序的API框架细节存在显着差异和iPad。在某些情况下,这是由于硬件差异或与Mac的像素精确鼠标指针的非常独特的性质相比,与iOS手指手势的更大的触摸阴影相比。在其他领域,Apple只是简单地编写iOS API的元素,因为它有机会重新开始并打破传统的兼容性限制。
因此,要精通Mac和iOS编码,开发人员必须了解所有这些不同的实现和方法。除此之外,为每个代码编写的代码需要单独维护,因此每个更改,功能添加和错误修复不仅需要进行两次,而且还需要稍微不同的方式。很显然,公司会同时维护其软件的Mac和iOS版本,但在许多情况下,这些版本由完全不同的组处理。
通过做大量的工作来处理Catalyst本身的许多差异,Apple现在允许iOS开发人员只进行一组有限的特定于实现的更改,以便在macOS Catalina上运行现有的UIKit代码。两者的源代码现在可以在同一个Xcode项目中维护,只需进行一次大多数更改,大大简化了维护和优化不断发展的代码所需的工作。
建立一个更好的鼠标比喻
使用Catalyst将iPad应用程序移动到Mac涉及检查Xcode中编译Mac代码的平台目标框。幕后工作主要由Apple处理,既利用其编译器工作生成可在其硬件架构上移植的代码,又利用macOS Catalina中的新框架编写,以支持UIKit作为本机Mac框架。
Apple表示,当开发人员在其iPad Xcode项目中添加“Mac”作为目标时,“添加了基本的Mac桌面和窗口功能,并且触摸控件适用于键盘和鼠标。您使用代码创建的自定义UI元素会遇到然后,您可以继续使用UIKit API在Xcode中实现功能,以确保您的应用程序看起来很棒并且可以无缝地工作。“
该公司还详细说明,Catalyst会自动为系统偏好设置,触控条输入,用于编辑文本的上下文菜单和文件管理添加Mac支持。并且还针对活动视图,拆分视图,文件浏览器和表单等功能进行了特定于操作系统的更改。开发人员必须了解如何在Mac上布局有意义的接口。Apple指出,“屏幕底部的滑动删除,操作表命令和控件等iOS惯例针对手持设备上的触摸交互进行了优化”,与“专用键和键盘快捷键,菜单等macOS约定形成对比”窗口顶部的命令和控件针对键盘,鼠标和触控板交互以及单独的显示进行了优化。“
Apple的人机界面指南详细介绍了Mac约定与iOS根本不同的各种方式,包括应用程序布局和导航约定,这些约定可以特定于应用程序的类型和目的。因此,开发人员需要做的工作多于单击一个按钮,但这远远少于在Mac上从头开始,或者将移动应用程序转移到通过浏览器访问的通用Web服务。
开发人员为Mac定制iPad应用程序所做的一些工作也将帮助他们提供更好的iPad应用程序,充分利用iPadOS提供的更复杂的环境。这包括支持更大的工作区域,支持使用拆分视图,幻灯片和画中画的多个并发应用程序,以及它们之间的拖放交互。Apple还建议开发人员添加对Mac用户所期望的键盘快捷键的支持,以及对任何选择使用键盘的iPad用户的增强功能。
ARM和滞后?
然而,Catalyst并不是构建所有Mac应用程序的单一未来。今天的AppKit开发人员不必担心很快就会被淘汰。事实上,Apple正在继续通过各种功能增强AppKit,包括新的SwiftUI。相反,Catalyst的目的是让更广泛的iOS UIKit开发人员能够将他们的工作带到Mac上,而无需了解历史上用于构建Mac软件的许多独特API。
这对于从事iOS项目的小团队来说至关重要,这些团队无法从头开始编写Mac版应用程序。对于为iPad构建一系列自定义应用程序的内部企业开发人员而言,这也很重要,并且希望能够有效地将这些产品提供给Mac用户。总的来说,Apple的Catalyst战略有望使开发人员的工作效率更高,从而在Apple平台上产生更大范围的更一致的软件。
Catalyst不是“仿真”,这将涉及在假装是iPad芯片的Mac CPU上运行ARM代码。这也不是Apple未来最终交付基于ARM的Mac的必要步骤。事实上,它恰恰相反,
它也没有追求Java VM或Android的通用“一次编写,随处运行”的概念,它通过不同的硬件在虚拟机上托管翻译的字节码。Catalyst Mac应用程序是本机代码; 它只是使用一组不同的工具开发,这些工具对于在iOS项目中工作的编码人员更为熟悉。
一个根本的误解
为数字趋势写作,Tyler Lacoma 写道: “Catalyst的目标是使两个操作系统上的应用程序都具有通用性,这意味着Mac应用程序也将能够跨越到iOS。” 他还表示,这可能是“在某些时候正式合并iPadOS和MacOS”的计划的一部分,但这些想法都不准确。
欧文·威廉斯拼凑一个更为离奇的采取上中想象中的催化剂是苹果努力摧毁Electron,这是一种用于构建试图在各种平台上看起来原生的网络应用程序的跨平台工具。他玩世不恭地将苹果公司的催化剂描述为“为了让开发人员重新回到公司的平台而采取的玛丽移动”,使用了一些戏剧性的语言,拼命试图描绘这个星球上最成功的科技公司,因为恐龙咳嗽了它的最后一个恐龙。世界上真正重要的玩家,如Spotify和Slack,转向网络应用程序。
他嘲笑苹果公司在WWDC舞台上展示的合作伙伴,他们使用Catalyst在Mac上提供他们的iPad应用程序,因为这是“一个没人听说过的赛车游戏,还有一些其他可忘记的产品”,同时也在大声问道为什么“像Netflix这样的大品牌或者亚马逊Prime视频“不存在,甚至没有提到Twitter。
在谷歌努力将Android应用程序引入Chromebook的过程中,威廉姆斯还引用了他所谓的“这个想法的更好例子”。整篇文章都蔑视和嘲笑,但却未能理解催化剂的重点。
Catalyst不是用于构建本机Mac应用程序的Web服务的策略。这只是一种利用大量原生iPad应用程序的事实,这一事实是由于有大约4亿台iPad正在使用的现实。在活跃的安装基础上“只有”1亿台Mac,并且同样比例较少的开发人员能够流畅地构建AppKit Mac软件。
由于使用的iPhone甚至更多,因此iPad的发展得到了支持。利用具有UIKit编码经验的现有开发人员基础来快速生成新Mac游戏的潜力将是巨大的。去年夏天,Upwork 将 UIKIt列为自由职业者中增长最快的20种技能之一。
游戏是一个特别的领域,现有的iPad游戏可以在Mac上引起轰动。Apple强调了Gameloft使用Catalyst将其流行的Asphalt 9赛车游戏带到Mac上的工作,并表示该团队能够在一天内完成初始转换。由于现代iPad游戏会调用Metal来绘制图形,因此Catalyst可以利用Mac上的Metal来使用功能更强大的GPU渲染放大的图形。
威廉姆斯嘲笑他不知道的游戏,但iOS上的游戏很大,因为iOS本身就很庞大。将大量的iPad游戏移植到Mac上非常容易,这将是一鸣惊人的。