iOS10应用扩展的剧变对你的iPhon

2019-05-14 17:59:20 来源: 漯河信息港

本文来自爱范儿

iOS运用扩展的历史

很久很久以前,我们在谈论 iOS 运用的时候,指的是桌面上那个图标,点击图标后打开的界面,就是iOS应用的全部(以下简称主应用)。对iOS工程师而言,开发iOS运用也就是开发这样一个部分,那个时候的 iOS 运用结构十分单纯,1直到iOS 7都是这样。

当然简单的架构必然有其局限性,早期iOS应用要想和系统有更深的交互可谓捉襟见肘。从iOS 8开始,苹果开放了iOS的运用扩展系统(App Extensions),这从根本上改变了上述的状况,iOS应用变得不再仅仅是主应用。

在批开放的扩展中,被我们熟知的应该是Today Extension(通知中心小部件)和Custom Keyboard Extension(第三方键盘)。iOS 8以后这两类扩大犹如雨后春笋般茁壮成长,无数类似于快捷启动器和第三方输入法的应用扑向了我们,固然它们的成长并不顺利。

到今年iOS 10发布,应用扩展已经磕磕绊绊地走过了三个年头,可使用的扩展类型也有六七种变成了现在的19种,这其中有一些革命性的进步,乃至可以说从根本上改变了iOS应用的交互方式。

应用扩展的局限性

iOS应用扩展的局限性是非常多的,这里谈谈作为开发者而言,碰到多的问题。

首先是学习的本钱比较高,不管是通知中心小部件还是第三方键盘,甚至是分享面板的扩展,没有一种扩展是可以零设置就让用户上手的。

这导致一个非常尴尬的局面,开发者不得不为用户建立一些使用向导。要知道,iOS 8以后通知中心小部件多如牛毛,可是直到现在,我还是会常常看到有用户不会添加通知中心小部件。学习成本的增加导致了1些小白用户根本就无法使用到iOS的扩大。

其次,部份扩展的入口太深,使其在事实上成为了鸡肋。

比如照片扩展这个东西,它的本意是非常好的,可以让第三方应用给系统的照片提供照片的功能。但是,用户用起它来是不太容易的:

首先要让照片进入状态,然后点一个看起来是更多的按钮,会出现一排扩大。如果没有你想要的你还要继续点更多,把它给添加进来,我想到这几步就很头疼,我干嘛不到主运用里面去用呢?

在iOS 10,通知中心小部件的入口进一步加深了,下拉通知中心默许展示的不是小部件的页面,必须要滑一下才可以用到。这一点可以说是对快捷启动类应用的重创。

扩大是无法独立存在的,这在iOS 8刚出来时被很多人吐槽过,你要想安装一个通知中心日历,就必须下载一个主应用,它的通知中心小部件就是这个日历。当然这不是特别大的问题,大部分的运用还是需要一个设置页面的,这个主应用长期以来就是充当了这个角色。这导致一个非常奇葩的现象:一个以扩展为主的运用,用户早看到的是不重要的设置界面,然后这个设置界面要教会用户怎么样使用到该运用的扩展。

扩展有一个的问题,一般用户可能意识不到,但是开发者对其是深有体会。那就是扩大的性能和稳定性其实是很差的。iOS分配给扩展运行的内存比主运用要少很多,导致扩展崩溃是非常频繁的事情。反映到用户层面,就是频繁地出现通知中心扩展白掉了、键盘消失了等事情。初期第三方键盘的稳定性非常差,频频出现切换到改键盘后没法弹出来的情况。

苹果在开发者文档明确地提到,在开发扩展的时候必须非常谨慎地使用内存,否则扩展会很容易被系统回收掉,导致扩大的崩溃和消失。

另外一个方面,iOS扩展的调试一直是开发者的一个心病,开发工具调试iOS扩展的稳定性很差。

过去巨大的进步

从iOS 8到iOS 10,扩大系统还是发生了很多变化,其中有一些变化是非常喜人的。

iOS 9引入的Network Extension,让iOS上面的络调试成为可能,同时也孕育了目前强大的络工具Surge,而Content Blocker Extension则为AdBlocks一类的广告屏蔽扩展提供了技术基础。

在iOS 9的变化中,iOS扩大这一方面重要的进步就是

络相干的扩展。这让现在的iOS应用可以完全掌控络,方便地对其进行调试、过滤、代理等工作。

iOS 10的革命

作为一个开发者,以我个人的角度来看,iOS 10中的变化就是对扩展系统的改造。本次增加的扩展类型之多可以说,并且都是非常具有里程碑意义的改进。下面我们可以分析其中的几个。

首先是Call Directory Extension,一直以来,iOS被Android嘲笑很重要的一个点就是:连黑名单功能都没有。现在,利用这个扩展,开发者可以很轻松地做出类似于黑名单的应用。简单来讲,iOS允许开发者通过这个扩展拦截来电,并作出一些处理,这一块可能会有更多的想象空间。

其次是Intents Extension和Intents UI,这两个扩展的名字可能不够明显,其实这两个扩展出自SiriKit框架,它是用来做Siri相关的扩大的。SiriKit为开发者开放了包括语音和视频通话、发送消息等在内的6类服务。可能这并不是完美的结果,但却是Siri走向开放的一个开始。

然后是Notification Content Extension和Notification Service Extension,这两个扩大能进一步增强通知系统。众所周知,iOS的推送通知系统是一个强大的设计,可以让运用不运行在后台的情况下,通过统一的服务收到推送消息。

在iOS 8和iOS 9,推送通知也得到了进一步的提升,推出了可交互的通知(通知包含操作按钮)以及可以处理用户输入的通知(通知中心直接回复内容)。

在iOS 10,

开发者可以让通知更加灵活,例如通知的内容可以展现一个图片,甚至将通知中心内容拦截下来,做一个预处理以后再显示给用户(当然只能拦截主运用收到的通知),这可用作通知内容的加密,或媒体内容推送后的下载操作。

接下来就是对中国人无关痛痒的iMessage Extension和Sticker Extension。可以看出在iOS 10,苹果非常重视iMessage的体验。首先,信息这个应用有了很大的变化,苹果增强了其趣味性,让它更加像是一个IM软件。

同时在iOS 10

开发者可以为iMessage建立扩展,可以用于处理会话场景中的内容。同时还可以为iMessage提供:表情包!没错,这就是Sticker Extension做的事情,表情包真是解救世界呀,连苹果都看到这个蛋糕了。

这个扩展可以说是所有的运用扩大中开发成本的,因为它没有开发成本。你需要做的仅仅就是把表情包的内容放到这个扩大里面,然后就可以发布到App Store,用户可以下载这个表情包到自己的iMessage上面。固然对国内用户而言,如果iMessage有用的话,那要做甚么。

哦顺带提一下,iOS 10将允许第三方键盘使用地球键的长按功能,这意味着对输入法多的用户而言,将是个效率提升的变化。

iOS 10的糟变化

说了那么多iOS 10的好话,终于到了吐槽时间。iOS 10的一些变化,对开发者和用户而言,可能并不是那末有趣的。(下面的讨论都基于iOS 10.0 Developer Beta 6,正式版发布之后可能有出入)

通知中心小部件

首先是通知中心小部件的改变,上面已经提到过一点了,目前用户下拉通知中心默许是不会看到小部件的,这提高了使用门槛。

另外,通知中心小部件被设计成 2 种模式:折叠和展开。与之前扩展的高度由开发者控制不同,iOS 10里面通知中心扩大的高度调节没有那么自由,你得在这两种模式之间切换。

然后就是小部件视觉的变化,iOS 10里小部件的整体风格是白色。这与iOS 9的截然相反,如果一个扩展要同时支持iOS 9 和iOS 10,对开发者而言将会是一件很痛苦的事。

URL Scheme

其次是URL Scheme,提到通知中心扩展,就不得不提到这个东西。URL Scheme是很多效力类软件的基石,比如Launcher Center Pro。其实苹果对URL Scheme的态度一直是谨慎和暗昧的。了解LCP历史的都知道,这个应用上线之初,苹果可是不允许的,后来才渐渐放开了(其实苹果也一直在摸索开发者和用户的边界)。

在iOS 9,苹果加强了对预防URL Scheme滥用的限制,App检测是否可以打开URL Scheme需要将Scheme添加到白名单,而白名单的限制是50个。

同时在iOS 9,一个App在次打开一个URL Scheme的时候,是会提示给用户是不是要打开,让用户确认的进程增加了其安全性。

iOS 10可以说是快捷启动类运用的灾难(可能有一点点夸张),首先是使用门坎的提高,让快捷启动根本就不快捷。不过更重要的是:iOS 10里面苹果去掉了所有跳转到设置应用的URL Scheme。

这意味着你再也无法在通知中心跳转到蜂窝数据设置界面,虽然你还是能用来打开其他App,但系统设置本身也是快捷启动类运用很重要的一部分功能,毕竟它原本能把你带到路径很深的页面里去。

用iOS 10 Beta版本的朋友,我相信你们已经体会到这一点了。这不是苹果次做这样的事了,早在iOS 6时,也有一部分关于系统设置的URL Scheme 被干掉了。

在iOS 10 Beta 5,除通知中心小部件以外的扩大(例如键盘扩大和分享扩展)上都无法打开URL Scheme,不过iOS 10 Beta 6上面这一点已好了,算是虚惊一场。

结语

总的来说,iOS扩展从在iOS 8被发布,到现在已经逐步走向成熟,越来越丰富的扩大也正让iOS运用的能力逐步完善。在这过程中我们可以看出,未来的iOS,主应用只是一个方面,对一些应用来说甚至不是主要的一个方面。因为iOS运用可以在系统层面的各个角落,通过扩大的方式与用户交互。

主运用将只是iOS运用的一个躯干,而扩展系统是应用的手脚,它们一起是一个整体,一起造就了iOS运用全新的交互方式。

宫颈炎怎么治疗好
盆腔炎怎么引起的
宫颈炎怎样能好
本文标签: