iOS9已经发布一段时间了,大家对iOS9的新特性了解多少呢?是否还停留在多任务(分屏,画中画)、Swift2、HTTPS强制升级这几个大家转来转去的东东呢?今天我们来深入了解iOS9给我们带来的更广阔的技术革新吧!
目录:
iOS9新特性概览 iPad应用的多任务处理加强 搜索 游戏开发 App Thinning 支持从右至左的语言RTL-Right To Left Language App传输加密 App 扩展 Contacts Contacts UI Watch Connectivity 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
首先我们了解下iOS9大体上的更新点:
即前面提到的分屏与画中画,苹果在iOS9中为iPad新增了Slide Over, Split View 和 Picture in Picture 三种模式来增强多任务处理,最棒的莫过于画中画(简称PiP)了,它可以让视频悬浮在其他控制器之上,一边做其他事情一边看电影!
iOS9提供了一系列全新的获取App中内容的方式,用户可通过HandOff,Siri以及内置搜索直接获取到我们App中的内容,即使用户还没有安装我们的App!
iOS9推出App Thinning。(神马是App Thinning?App Thinning指的是用户从苹果商店下载安装我们的App时,根据这个用户的具体设备类型及操作系统对我们的App进行裁剪,达到占用最少的磁盘空间,发挥最大的兼容性等目的。经过优化后,用户不会下载我们应用的完整Bundle,而是下载最简配置+特定需求项,从而让下载过程缩短,腾出更多的内存空间,这跟苹果呼吁我们开发通用App离不开干系的。这种优化称为为App Thinning。P.S.以上为作者自己的总结)
App Thinning目前包括:Slicing - 切片(iOS),Bitcode (iOS, watchOS)以及Slicing:Artwork被纳入Asset Catalog
,并且被打上与平台对应的标记,这样AppStore便知道分发哪些用户真正需要的资源给用户下载安装。
BitCode:Bitcode是LLVM编译器中间代码的编码,我们将中间代码提交给AppStore,然后由AppStore来进行编译-Comple和连接-Link,最终提供32位或64位的可执行文件供用户下载。目前iOS应用的中间代码提交是可选的,但是苹果已经要求watchOS应用提交必须包含Bitcode(@Required)
On-Demand- 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 Transit Security,简称ATS,也就是我们所说的HTTP升级至HTTPS传输。iOS 9 与OS X 10.11以后版本已经默认使用ATS,而苹果也要求我们尽快采用ATS。ATS的好处是加强数据安全(客户端与服务器见的数据传输),防止信息泄露。关于HTTPS参阅TSL/SSL规范。
如果我们的服务器端还来不及做相关升级,那么作为前端我们可以暂时回滚至不安全的网络请求方式(依然使用HTTP),当然苹果不提倡长期这样做。具体方法:在info.plist中添加
NSAppTransportSecurity
NSAllowsArbitraryLoads
iOS9提供几种新的App Extension(神马是App Extension?可以理解为小插件,是一种运行在我们App之外的一段程序。):
网络扩展:
使用 Packet Tunnel Provider extension point 来实现自定义VPN隧道协议客户端。
使用App Proxy Provider extension point来实现一个透明网络代理协议的客户端。
使用Filter Data Provider 和 Filter Control Provider extension points 来实现动态的设备端网络内容过滤。 Safari扩展:
Contacts.framework 和 ContactsUI.framework 这2个新的面向对象的库取代了之前的Address Book 与 Address Book UI frameworks。
WatchConnectivity.framework 提供iPhone和与之配对的iWatch之间进行双向的文件、数据传输。这套框架能够让配对的两个设备上同时运行的App进行即时通信,也可以进行后台通信。
Address Book 和 Address Book UI frameworks。取而代之的是 Contacts 和 Contacts UI frameworks 。