美文网首页iOS点滴iOS 开发
写给老板看的iOS9的几个新特性

写给老板看的iOS9的几个新特性

作者: 卖萌凉 | 来源:发表于2015-07-08 15:07 被阅读1229次

    相比于iOS7和iOS8,个人认为iOS9的新特性没有那么多。与我们的工作关系最密切、也是苹果主打的两个新特性是multitaskingsearch


    Multitasking



    首先,multitasking是只支持某几种iPad的。

    有三种不同形式的multitasking,分别是:

    1. Slide Over
      当iPad上正在运行着某个app的时候,从屏幕的右边缘向左滑动,可以滑出一个覆盖在当前用户界面上的界面,从这个界面中可以选择并启动一个secondary app。这个secondary app启动后会覆盖在原先的app的右侧。Slide Over这个场景,主要是为了便于用户临时操作一下secondary app。


      Slide Over
    2. Split View
      Split View这个形式更像一个真正的multitasking。但是目前Split View只支持iPad中性能最高的iPad Air 2。两个app并列呈现在屏幕上,其中左侧的app是primary app,右侧的app是secondary app。用户可以滑动两个app之间的分界线,当分界线滑倒最左侧时,secondary app将变成primary app。
      Slide Over和Split View可以互相转换,只要用户点击一下Slide Over界面旁边的白色竖条按钮。


      Split View
    3. Picture in Picture
      用户可以在屏幕上悬浮一个播放器,并且可以移动和缩放它。


      PiP

    可能对PM有用的信息:

    • 三种形式的multitasking所支持的设备:
    支持的设备
    • Multitasking是可以被用户从系统设置里关掉的。

    • Slide Over和Split View其实还是比较简单的多任务形式,两个app之间并不能产生交互。

    • Split View情景下,两个在屏幕上可能有这些排列方式:

    Split View的排列方式
    • PiP是为那些视频播放app准备的,一些杂七杂八的视频不应该使用PiP(比如游戏中的转场动画)。网页中的视频也可以支持PiP。

    • 尝试使用了PiP,发现第三方程序员可以:
      (1) 控制什么时候启用/停止悬浮播放器:比如可以自定义一个button,用户点击这个button就启用/停止悬浮播放器。
      (2) 收到悬浮播放器在被启用、关闭、返回原播放器的回调。
      (3) 在某些时候禁用悬浮播放器。

    • 但是目前看来,第三方程序员不能:
      (1) 自定义悬浮播放器的功能:目前悬浮播放器只有三个button,分别是回到原播放器、暂停/播放、关闭,还有一个进度条,但是进度条只能显示进度,不能拖拽。
      (2) 更改悬浮播放器的外观,包括具体位置和尺寸:用户可以拖拽悬浮播放器,但是最后只能拖拽到屏幕的四个角落,不能停在屏幕中间;新闻上说悬浮播放器可以有三种尺寸(但是模拟器上模拟不出缩放手势)。但是代码里找不到与播放器位置和尺寸相关的方法,猜测第三方程序员无法对播放器的外观进行控制。

    可能对Dev有用的信息:

    • 几乎所有的app都应该支持Slide View和Split Over,除了全屏游戏等少数几类app可以通过在plist中配置表明不支持multitasking。

    • Slider Over和Split View中,两个app都是运行在前台的;PiP中,如果悬浮播放器所属的app没有在屏幕上,那么它是运行在后台的。

    • Slide Over和Split View都会导致一个app的窗口尺寸变得更为灵活,这时应该善用auto layout和size class。

    • 虽然某些app可能没有用到键盘,但是它可能会与其他app同时出现在屏幕上,因此每个支持iOS9的app都应该对键盘事件作出响应。

    • 如果以前的代码中曾把屏幕的尺寸来当作窗口的尺寸,在iOS9中必须尽快改过来。

    • 如果app会在连接上第二个物理屏幕的时候,在第二个屏幕上显示内容,此时需要对过渡进行测试。只有primary app可以在第二个物理屏幕上工作。

    • 在iOS9及以后,需要更小心的利用CPU、GPU、内存、I/O等资源。

    • MediaPlayer在iOS9将过时,应该使用AVKit和AVFoundation替代它。


    Search



    iOS9之后,用户可以在Spotlight、Handoff和Siri Reminders中,对app之内的内容进行搜索。可以建立索引的内容包括用户产生的内容、app的特性和公开的网站内容。搜索为第三方app提供了新的入口。与搜索有关的技术有以下几种:

    1. 使用NSUserActivity让app activity供搜索:
      NSUserActivity原本是用来支持Handoff这个特性的,主要用于记录当前app所处的状态(比如当前在哪个view)。iOS9之后,activity默认是可以供本地搜索的。
      当app内的某些内容不触及用户隐私,也可以把这个activity标记为可供公开搜索的。苹果会收集用户对搜索功能的使用状况,当这个可activity被很多用户搜索过,达到了一定阈值,这个activity就可以被所有用户搜索得到,如果用户没有安装这个app,系统也会给出这个app的URL。

    2. 使用Core Spotlight让app的内容可供搜索:
      第三方app可以将用户产生的内容组织成CSSearchableItem对象,供Spotlight搜索。系统会对这些项目做持久化存储。这些项目只能在本地搜索得到。


      Core Spotlight
    3. 通过加入web markup,让相关的网页内容供搜索:
      第三方app可以在其网站前端代码中加入一些markup,便于被苹果的爬虫发现,这样当用户进行搜索时,系统就可能将这个app中相关的内容展现在搜索结果里。

    4. 使用universal link可以让app和网站无缝连接:
      通过给app添加一个entitlement,同时给网站添加对应的JSON文件,可以做到当点击某个链接时,自动跳转到已经安装的app的对应界面中。

    (已经写代码尝试了Core Spotlight并成功。试了activity但没搜出来。)

    可能对PM有用的信息:

    • NSUserActivity和Core Spotlight这两种搜索方式,将不支持iPhone 4s、iPad 2、iPad 3、iPad mini、iPod touch 5及以下设备。

    • 所有可以被搜索的内容分为两种:私有的和可以公开的。标记为私有的内容(比如用户的短信)只能在用户自己的手机上搜索得到。标记为可公开的内容,当苹果认为用户数据达到一定阈值(针对activity)或被爬虫爬到(针对web markup),就可以被所有用户搜索到。

    • 为了给用户提供更好的体验,系统会根据用户使用search的行为来决定搜索结果的顺序。所以每个app都应该尽量只让有价值的信息变得可供搜索。

    • 当用户点击搜索结果的时候,app应直接跳转到搜索结果对应的界面,应该避免中间步骤、闪屏和空隙。

    • 苹果建议,用户创建的内容都应该被放进索引中。

    可能对Dev有用的信息:

    • 注意性能。从点击一个搜索结果到打开这个app,这之间的时间会被系统收集,并影响到对搜索结果的排序。

    • 对于某个同样的内容,在建立索引时,尽量使用同一个identifier。避免多个API创建出重复的搜索结果。


    看的文档:

    What's New in iOS
    Adopting Multitasking Enhancements on iPad
    iOS Search API Best Practices and FAQs

    相关文章

      网友评论

      • blazer_iOS:您好 你知道iOS在锁屏的界面的左下角的出现的一个app的图标,然后点击,输完密码后就直接跳到app里面去了,你知道这个是怎么实现的,我在网上查,说是用NSUserActitivy来实现的,
        blazer_iOS:@卖萌凉 好的,谢谢
        卖萌凉:@blazer_iOS 这个功能叫做“Handoff与建议的应用”,在设置->通用下可以开关。Handoff应该可以用NSUserActivity来实现,官方文档里应该有比较详细的说明。如果是“建议的应用”,我也不太清楚它的机制,应该和NSUserActivity没有什么关系,因为我正在开发的app中没有用到NSUserActivity,但它也出现在左下角过>.<

      本文标题:写给老板看的iOS9的几个新特性

      本文链接:https://www.haomeiwen.com/subject/uxgyqttx.html