转载

iOS开发者的 WWDC 2016 愿望清单

iOS开发者的 WWDC 2016 愿望清单


我一般不写这样的文章,但是我觉得今年很重要:苹果正变得比以往任何时候都更加开放和更善于接受反馈意见。通过iOS 9和iPad Pro,iOS在过去的一年里在iPad上已经完成了巨量的飞跃。基于这一点,我想记录下在我脑中能想到的、非常想要看到的所有事情,可以让iOS作为计算平台覆盖到更多。

以下列表中的内容是未来几年我想在苹果平台上看到的,没有先后顺序,从简单和明显的开始。这些内容大部分其实都被提起过,但它们经常被遗忘。大多数清单是关于iOS的,但也不是所有,我丑话说在前面,我不觉得OS X按照现在这个趋势会有前途。就算你不同意我的看法,下面也可能有些你想要的。

分屏功能---可以让你把同一个APP分成几个窗口

这是个很容易实现的功能,现在iOS上面的分屏功能只允许两个不同的应用挨在一起;很明显下一步就是允许同一个应用分成两个窗口,这样你就能有两个网页或者两个文档并列在一个窗口了。

窗口化的开放链接(OpenURL)

另一个小小的改进,但这个可允许app打开一个链接或者应用的时候,可以选择是同屏并列的两个窗口还是新的窗口替代现在的app。举个栗子,邮件或者消息里的链接打开的时候就会自动用Safari同屏并列打开,而不是把现在的app一脚踢开。Twitter在iOS上的交互逻辑就很聪明---如果Twitter在同屏被点开一个链接它就会直接在同屏并列打开一个Safari

可定制的视窗控制器扩展

在扩展上,苹果已经建立了从一个app到另一个app展示视窗控制器的理想方式。这被贯穿应用在整个OS当中,但最明显的是Safari的视窗控制器。苹果已经辨识出这个应用的关键领域---这就是当下图片编辑扩展的工作方式。我很希望能看到这个扩展性能可以被app注册使用,以便普及和应用到更多的应用和功能当中。

快速查看生成器

同样地,快速查看功能似乎是一个明显会增加的系统扩展。OS X应用可以注册“快速查看生成器”并生成文档内容的缩略图预览,借此别的应用就可以对之渲染。文档处理在iOS上变得更加普遍,没有道理不增加快速查看的扩展。

系统级的绘画和标记视图

很简单的一个愿望---苹果在Notes上创建了最好的绘画/标记视图之一,在任何一个app上,非常适合给Apple Pencil使用,这会是非常棒的,给开发者提供一个标准化的可定制的样式,他们可以实现在他们的app中,而不用再重复建设同样的功能---一个像这样的绘画引擎会是非常复杂的OpenGL/Metal渲染器,是很难重新实现的。

给iPad键盘加上Command键

鉴于iOS对UIKeyCommand和键盘快捷键的支持,我很乐意看到在iPad的屏幕虚拟键盘上加入一个命令键。 应该很容易理解的是,它应该在虚拟键盘可见的时候才有用(比如在文档编辑器里面),但它应该可以修改针对app的快捷方式,它也将帮助iOS开发者认识到app应该有默认的快捷键。在一个大多数iPad支持键盘外设的时代,我想这是很重要的一步。

拖曳

增加了分屏的多任务功能后,很多人说过iOS上的拖曳。表面上这也是一个很明显要增加的功能,但当你深思熟虑后,这里有很多种方式是对操作系统有损害的。找一个可以操作拖曳同时又不损害目前OS中存在的操作方式,同时仍然能让复制粘贴来的更快,那就不像想的那么容易了。尽管如此,我依然觉得有必要指出来,在一个触屏上用它直接的操作方式很有意义。

WatchOS上的原生app

WatchKit是个很棒的补位开发组件;有能力作为一个WatchOS的应用平台。可惜的是,第三方应用在WatchOs上的表现很烂,原来的WatchKit在WatchOS 2.0上并没有帮上什么忙。如果watchOS作为一个app平台要想成功,我认为它应当有能力运行真正的(读作UIKit)应用程序。因为已经有人涉足其中了,我不确信这个第一代的硬件不做折衷是否足够好来做到这点。因此,我的希望是将来更好的硬件可以做到这一点。第三方的app需要像厂家原生app那样表现优秀。WatchKit就是一坨屎

AppleTV手柄处境

一个很容易解决的问题:目前一个在tvOS上运行的游戏不能用手柄玩(当然,除非动视需要一个硬件的配件,很明显那很难)。所有的游戏必须支持Siri 遥控:问题是Siri遥控对游戏来说很烂,这意味着每个开发者在tvOS上试图做出任何一个遥控复杂的动作,都必须包含一些可笑的、自认为很叼的和基本上没个毛用的只准遥控模式。这是一个方针问题---我理解苹果的用意何在,但这个超级不爽的体验就是因为这个没得可选的糟糕平台造成的。

iOS上的iBooks Author

iBooks Author是iWork套件的衍生物,并且看起来非常适合在iOS上运行。对写书的人来说iBooks Author在iOS上可能意味着一个完全整合的写作和发布渠道,不需要用到台式电脑。你甚至可以自行创立多点触控来增强ibooks在设备上的表现。对我来说,它就像在ios阵营里新增加的一个傻瓜化的应用。

所有系统自带应用都应该支持分屏功能

我很意外,iPad仍然有一票系统应用不支持分屏多任务功能。我猜可能跟安全有关,举个栗子,拿iBooks来说,如果需要看iBookstore则需要全屏。很显然App Store、iTunes Store和Apple Music应该支持分屏功能。你很难想象一个非游戏应用为什么不支持分屏(当然我知道有一些第三方应用出于某种原因没得选)。窗口化不应该是可选的,尤其是系统应用。

简单的都已经说过了。。。

介于iOS和OS X的标准统一的App平台

现在,我非常确信OS X是个死平台。它已经拖了iOS的后腿好多年了,常常是iOS上已经实现的功能过了很久才在OS X上实现。苹果需要在这两个操作系统间建立一个统一的app平台。

这不意味着台式机只是运行iOS App,就像tvOS不会只运行iOS应用一样。同样的想法包括:一个共享的代码库,很少有平台特有的要素,和一个优化的用于OS主要交互模式的用户界面。

我觉得这应该是基于UIKit的。在tvOS之后,我们不能再说UIKit不能运行在没有触屏的环境,我们知道不是那回事。它全都建立在同样的核心动画基础上,所以至少眼下你将能够在混合型的UIKit Mac app中交错使用AppKit view/layer。AppKit本身应该有个滞后的过渡期,就像之前的Carbon,作为新功能逐渐地置入基于UIKit的框架中。AppKit应该继续保留在台式机应用中,而不是iOS,然后逐步淡出并一点一点的被兼容app取代。

这样的话,iOS(主要是iPad)和OS X就可以一起成长,一个里面的功能也能更加简便的编译后给另一个系统使用。iPad应用会有一个传递到台式电脑的途径,台式机的应用也会转移到iPad上,两个平台将会作为一个整体进化成长,而不会有此消彼长的局面。

Xcode for iPad

这个要求我主张了很久。我说的是我想要一个iPad开发用的Xcode,意思是“可以在iPad上编写代码,调试和部署Cocoa Touch app,而不是必须使用Mac。”极有可能,这样一个项目的工作方式跟台式系统上的Xcode一点都不像。很可能它只能使用Swift(这将让我很难过),那么我想应该也把Swift Playground包含进来。尽管如此,一个完整的软件开发者工具链对iOS的软件生态来说是一个很大的缺失。

iOS上有一些很棒的app已经成功的完成了一些类似的功能,Pythonista 就是一个很好的例子:通过C到OC代码的桥接,可以充分地在设备上运行Python IDE。强大到可以让你进行交互和使用Cocoa (in Python)重写自己的UI,但有一点令人不安,据说苹果将不再允许这类应用并将它们从App Store下架。那将会是个糟糕的情况,人们要考虑iOS力所能及的边界在哪里。

iOS上的文件和磁盘管理系统

一开始,iOS曾试过用文件管理系统做正确的事,但九年中,这个虚构的物理文件管理系统并不存在也没有实际发生。最终我们有了iCloud Drive app和第三方的文件提供app,但除了导入照片 ,我们还是不能和外部的存储器进行交互。我认为是时候在系统级别实现这个功能了:允许文档选择器适当地打开外部存储器的文件,并允许应用程序将文件复制到外部储存器。在OS X上,文件拾取器提供一个沙箱给你,作为使用者,可以选择一个app接入。在这种模式下建立---既保证安全,又不虚拟不存在的文件系统。

iOS的终端环境

值得一试,对吧?我会很高兴看到iOS上有一个终端/BSD环境,即使是局限于自身的沙箱,不是整个OS文件系统。让技术人员创建一个技术人员所需的东西,不能被 GUI iOS用其他方式处理。我能看到苹果能做的唯一方式是它从OS的其他部分完全分隔出来,即使这样也是一个不错的进步(或者说退步,就看你怎么看了)

iOS来接管OS X的应用

既然iPad越来越多的取代Mac以往做的事,那么对我看来,苹果也应该缩小这两个系统间应用的隔阂。我很乐意看到TextEdit、Automator、Font Book、Keychain Access和外部存储的支持。Disk Utility和TextEdit在Mac上看好像无足轻重,但在iOS上没有内置的文本编辑器可以获取iCloud Drive上的TextEdit文件,从我个人来看,这有点疯狂。Automator几乎没有人使用,但用的人就知道它的功能多么强大并且非常有用。实际上Workflow,一个在iOS上最好的第三方应用之一,就很像是一个扩展的Automator。字体管理和钥匙链支持是另外一些iOS上没有类似第三方app的应用,尽管对特定使用者来说这些功能都很重要。

脱离itunes,iOS设备在Recovery模式下可以安装最新的OS

现在,仅存的从一个iOS App连接到台式电脑的原因之一就是为了安装OS,修补这个无疑是很难的,但NetBoot & Internet Recovery已经在Mac上存在了太久。要么是我经错了,但我记得第一代(x86)苹果电视如果出错,可以在Recovery模式下重新从网上下载它的OS。所以最终我觉得iOS需要一个扩展的Recovery环境来让它可以自行恢复。

iOS的’AppleScript’

或许是被遗忘的老传统,但不久前AppleScript获得了全新的Java脚本语言的支持,或许AppleScript在iOS的生态系统中也有一席之地。苹果脚步的存在本身就是一件极好的事-随着System 7一起推出,它是最早一批我学的编程环境之一。

能够支持更多USB扩展设备的iOS

一个强行销售,特别是为iPhone制作的程序对苹果来说是个大事,但除了音频、键盘和大容量存储设备,通过USB转接器,还能在iOS上使用各种各样的设备。我想让开发者可以写用户模式驱动程序和现有的硬件对话--对我来说,比如像采集卡、TV调谐器、串口适配器、外接摄像头以及输入设备等等。每一个单独的USB设备都需要一个MFi授权芯片和证书,让配件的app受很大的影响。你可以买一个之前已经有的苹果MFi RS232调制适配器,用他们已经获得批准的SDK来开发app,来和Newton、Raspberry Pi或者Arduino来对话。你不能用苹果的USB适配器去做那些非MFi认证的适配器同样的事。我不觉得苹果能改变这点,但我还是希望能改。

修复Mac的应用商店

最后,来说说这个重要的愿望:Mac的应用商店很明显已经不适用了。简单来说,沙箱限制和货币化问题赶走了太多从业许久且备受尊敬的Mac开发者。那些坚持留下来的开发者常常会为同一款应用开发MAS和非MAS两个版本,而通常非MAS的版本是全功能的。第三方开发者已经迫使MAS用户去使用他们非MAS版本的应用。这本是不允许发生的---这对开发者来说不是好事,对用户也一样。所有的Mac软件从Mac商店唾手可得这本应是理所当然的。微软的Office套件,创造性的云服务等,苹果应该竭尽全力让苹果应用商店是出售Mac应用的唯一途径。更甚的是现在苹果通过MAS提供的软件也不遵从他们自己的沙箱规则,同样的限制条款驱逐了每一个人。我很确定这一点,也许可能依然还是这样。现在它就是一个笑话,不再具备领导能力了。

正文到此结束
Loading...