iOS9开发GOGOGO:新特性

iOS9已经发布一段时间了,大家对iOS9的新特性了解多少呢?是否还停留在多任务(分屏,画中画)、Swift2、HTTPS强制升级这几个大家转来转去的东东呢?今天我们来深入了解iOS9给我们带来的更广阔的技术革新吧!
目录:

iOS9新特性概览

首先我们了解下iOS9大体上的更新点:

iPad应用的多任务处理加强


即前面提到的分屏与画中画,苹果在iOS9中为iPad新增了Slide Over, Split View 和 Picture in Picture 三种模式来增强多任务处理,最棒的莫过于画中画(简称PiP)了,它可以让视频悬浮在其他控制器之上,一边做其他事情一边看电影!

搜索


iOS9提供了一系列全新的获取App中内容的方式,用户可通过HandOff,Siri以及内置搜索直接获取到我们App中的内容,即使用户还没有安装我们的App!

游戏开发


  1. iOS9进一步提升了游戏内的图形、音频性能(iOS自家游戏引擎,与其他跨平台游戏开发引擎无关)。
  2. 主要增强了游戏开发框架的易用性,对GPU性能驾驭能力的提升。

App Thinning


iOS9推出App Thinning。(神马是App Thinning?App Thinning指的是用户从苹果商店下载安装我们的App时,根据这个用户的具体设备类型及操作系统对我们的App进行裁剪,达到占用最少的磁盘空间,发挥最大的兼容性等目的。经过优化后,用户不会下载我们应用的完整Bundle,而是下载最简配置+特定需求项,从而让下载过程缩短,腾出更多的内存空间,这跟苹果呼吁我们开发通用App离不开干系的。这种优化称为为App Thinning。P.S.以上为作者自己的总结)
  1. App Thinning目前包括:Slicing - 切片(iOS),Bitcode (iOS, watchOS)以及
    On-Demand Resources (iOS)
  2. Slicing:Artwork被纳入Asset Catalog
    ,并且被打上与平台对应的标记,这样AppStore便知道分发哪些用户真正需要的资源给用户下载安装。

  3. BitCode:Bitcode是LLVM编译器中间代码的编码,我们将中间代码提交给AppStore,然后由AppStore来进行编译-Comple和连接-Link,最终提供32位或64位的可执行文件供用户下载。目前iOS应用的中间代码提交是可选的,但是苹果已经要求watchOS应用提交必须包含Bitcode(@Required)

  4. On-Demand
    Resources:懒加载资源,即部分资源放在云端或者AppStore,需要的时候才会请求下来,又是为了缩减App包体积。关于懒加载资源的好处,后面再列。

支持从右至左的语言(RTL-Right To Left Language)


  1. 这个更新是我最费解的,我本以为RTL是个什么特殊的文法(编译原理中不是有什么上下文无关文法么?),结果是我想多了,这应该是苹果的一项人性化更新吧,支持了对从右至左的语言的显示。
  2. 神马是从右至左的语言?言语的左至右从是就话句这的写在现我如比。以前中文也是从右边往左边写的,现在改过来了,但是世界上还有很多语言仍然是从右边往左边书写和阅读的,比如:
  - ar' – 'العربية', Arabic
  - 'arc' – 'ܐܪܡܝܐ', Aramaic
  - 'bcc' – 'بلوچی مکرانی', Southern Balochi
  - 'bqi' – 'بختياري', Bakthiari
  - 'ckb' – 'Soranî / کوردی', Sorani Kurdish
  - 'dv' – 'ދިވެހިބަސް', Dhivehi
  - 'fa' – 'فارسی', Persian
  - 'glk' – 'گیلکی', Gilaki
  - 'he' – 'עברית', Hebrew
  - 'mzn' – 'مازِرونی', Mazanderani
  - 'pnb' – 'پنجابی', Western Punjabi
  - 'ps' – 'پښتو', Pashto 

—— [ 维基百科 ]

这部分内容更新应该纳入国际化资源相关的知识体系,因为目前国内的App暂时还用不到。
1. 现在所有的UIKit中的控件都支持对这种语言的显示与输入。
2. UIView定义了语法内容属性(semantic content
attributes)来指定视图如何显示在一个自由向左的上下文中。
3. UIImage新增了方法imageFlippedForRightToLeftLayoutDirection,可以很方便的将图片做左右映射变换。

 P.S. 一旦一个国家的阅读习惯是从右到做的,那么很多东西的顺序都应该随之改变,比如tabbar的显示,Slider的滑动方向等,从这一点可以看出苹果非常的人性化。

App传输加密


App Transit Security,简称ATS,也就是我们所说的HTTP升级至HTTPS传输。iOS 9 与OS X 10.11以后版本已经默认使用ATS,而苹果也要求我们尽快采用ATS。ATS的好处是加强数据安全(客户端与服务器见的数据传输),防止信息泄露。关于HTTPS参阅TSL/SSL规范。

如果我们的服务器端还来不及做相关升级,那么作为前端我们可以暂时回滚至不安全的网络请求方式(依然使用HTTP),当然苹果不提倡长期这样做。具体方法:在info.plist中添加
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

App 扩展


iOS9提供几种新的App Extension(神马是App Extension?可以理解为小插件,是一种运行在我们App之外的一段程序。):
  • 网络扩展:

    • 使用 Packet Tunnel Provider extension point 来实现自定义VPN隧道协议客户端。

    • 使用App Proxy Provider extension point来实现一个透明网络代理协议的客户端。

    • 使用Filter Data ProviderFilter Control Provider extension points 来实现动态的设备端网络内容过滤。
  • Safari扩展:
    • 使用Shared Links extension point 来让用户通过Safari的分享链接看到你的内容。
    • 使用 Content Blocking extension point 提供一个屏蔽列表,让你的用户使用你的App浏览Web内容时屏蔽指定的内容。
  • Spotlight扩展:
    • 使用 indexing extension point 对App内的数据进行索引。
    • 使用 Index Maintenance extension point 实现在不重启App的情况下对App内的数据重新建立索引。
  • Audio Unit extension point 允许App提供类似于GarageBand,Logic等App提供的乐器演奏,音频特效,声音合成功能。

Contacts & Contacts UI


Contacts.framework 和 ContactsUI.framework 这2个新的面向对象的库取代了之前的Address Book 与 Address Book UI frameworks。

Watch Connectivity


WatchConnectivity.framework 提供iPhone和与之配对的iWatch之间进行双向的文件、数据传输。这套框架能够让配对的两个设备上同时运行的App进行即时通信,也可以进行后台通信。

Swift 加强


一些系统框架的改动


AV Foundation Framework
AVKit Framework
CloudKit Framework
Foundation Framework
HealthKit Framework
Local Authentication Framework (本地授权)
MapKit Framework
PassKit Framework
Safari Services Framework
UIKit Framework

被弃用的APIs


Address Book 和 Address Book UI frameworks。取而代之的是 Contacts 和 Contacts UI frameworks 。
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值