iOS 9 新特性

这篇文章介绍了iOS9开发相关的简介,现在发布的设备都会搭载iOS9。这篇文章也列出了详细描述新特性的文章。

iPad多线程增强

iOS9使用Slider Over, Split View, Picture in Picture增强了iPad上的多线程用户体验。Slide Over特性可以让用户启动第二个APP。Split View属性可以让用户在iPad Air2上使用两个app。Picture in Picture(PiP)可以在其他app的windows上显示一个悬浮框来看视频。

用户才能决定什么时候在屏幕上显示两个app。开发者不能控制。虽然Split View和Slide Over是由用户控制的,开发者仍然需要做不少事情来保障多线程体验。

  • 最关键的是app需要高效的使用系统资源,这样在和其他app分享系统的时候才能更好的运行。在低内存的情况下,系统会退出占用内存多的app。
  • 如果还没有适配,确保使用size classes,这样app在分屏时可以很好的展示。

在Split View和Slide Over中, 由用户来控制是否使用PiP来在另一个运行中的app上显示视频。如果播放视频不是你的主要功能话,就不需要为PiP体验做额外工作。

要体验Picture in Picture的话,使用AVKit或者AV Foundation APIs。Media Player framework中定义的播放视频的API在iOS9中已经弃用了,他们也不支持PiP。

搜索

iOS9中的搜索给用户提供了一种访问信息的新的方式, 当你的内容可以被搜索时, 用户可以通过Spotlight, Safari搜索结果,Handoff, 以及Siri 来访问你app中的内容。使用搜索相关的API, 你可以决定哪些内容被索引,哪些内容显示在搜索结果中,以及用户点击后跳转到app或网站的什么地方。

隐私保护是iOS9搜索的一个基本属性。为了在提供一个好的搜索体验的同时保护用户隐私,iOS9做了下面的事

  • 私人的设备端索引。每个设备有一个私人的索引信息,他们不会被分享到苹果或同步到其他设备。当你在用户设备上建立索引时,只有那个用户会看到搜索结果。
  • 苹果服务器端索引。服务端索引只存储公开的内容以及你网站上合适的内容。

iOS9提供了下面的API来帮助你搜索内容:

  • NSUSerActivity类提供了一些新方法和属性,来让你创建内容。所有app都可以使用USUserActivity API来给用户创建有用的内容。
  • Core Spotlight framework提供了API在设备端添加app相关内容的索引并且可以跳转到app指定界面。
  • Web markup可以让网页相关的内容被搜索到,可以帮助你增强用户体验。
  • 全局链接可以替换HTTP或HTTPS链接。全局的链接对于所有用户的适用。如果用户安装了app,链接直接把用户带进app。如果没有装app,这个链接会在safari中打开网站。

游戏

iOS9做了一些技术上的增强让实现游戏的图形和声音属性更便捷。用户可以使用上层库来快速开发,也可以使用底层库来自己控制GPU。

GameplayKit

GameplayKit(Gameplaykit.framword)提供了创建游戏的基础技术。使用Gameplaykit结合上层的图形引擎(比如SceneKit活着SpriteKit)就可以完成一个游戏了。这个框架提供了模块化的结构来创造游戏。

  • 随即工具
  • Entiey-更好的功用游戏里的组件
  • 状态机-让代码更简洁

GameplayKit也包含了常用的游戏算法,这样你可以少花点时间在算法上,有更多的时间在游戏机制上。比如GameplayKit中下面的一些算法:

  • 在回合对战游戏中智能的计算最大最小值
  • 自动模拟移动行为
  • 规则系统:基于数据的游戏逻辑,模糊推理,以及行为。

Model I/O

Model I/O(ModelIO.framework)提供了一个系统级别的3D模型资源。可以使用这个框架做很多事情,比如:

  • 导入网格数据,材料描述,灯光和摄像头设置,以及其他流行软件或游戏引擎生成的数据文件。
  • 处理或创建以下数据:把灯光信息放入网格,或者创建天空的纹理。
  • 和MetalKit, GLKit,SceneKit API协作工作,高效的加载数据到GPU渲染
  • 导出或产生多种格式的数据

MetalKit

MetalKit(MetalKit.framework)提供了很多方法和类来减少创建Metal app的难度。MetalKit支持下面三块的开发:

  • 纹理加载帮助你简单的从各种资源加载纹理。支持常用的PNG和JPEG,同时也支持KTX和PVR。
  • 模型处理提供了基于Metal的方法让和模型交互更容易。也可以使用这些方法在模型和网格之间传递数据。
  • 界面管理提供了Metal界面的标准实现。这样可以大量节省图形渲染的代码

Metal Performance Shaders

Metal Performance Shaders(MetalPerformanceShaders.framework)提供了图形计算方法,在Metal app中使用起来非常方便。它会高效利用支持Metal的iOS GPU。

它会使配所有支持的硬件,不需要为特殊的iOS GPU单独写代码。MetalPerformanceShader对象可以与Metal app无缝衔接。

这个框架同时也提供了下面的功能:

  • 高斯模糊-由MPSImageGaussianBlur类提供
  • 图片直方图-由MPSImageHistogram类提供
  • sobel边缘检测-由MPSImageSobel类提供

Metal新功能

Metal(Metal.framework)增加了一些新功能来让app的图形渲染更佳高效。包括以下功能:

  • 增强了Metal Shading语言以及Metail标准库
  • 计算着色的范围更广
  • 增加了一些纹理模版
  • 增强阴影质量

SceneKit新功能

SceneKit(SceneKit.framework)在iOS9中的新功能,包括:

  • 支持Metal渲染。可以查看SCNView和SCNSceneRenderer类
  • Xcode中添加了新的Scene编辑器。可以更快的创建游戏。
  • 位置音频。使用SCNAudioPlayer和SCNNode类来添加音频来根据位置自动播放。

SpriteKit新功能

SpriteKit(SpriteKit.framework)在iOS9中的新功能,包括:

  • 支持Metal渲染。在支持Metal的设备上,会自动使用metal渲染,就算是使用OpenGL ES。
  • Xcode中加强了场景编辑器以及新的动作编辑器。可以更快创建游戏。
  • 相机焦点(查看SKCameraNode对象)可以更容易的创建可滚动的游戏。
  • 位置音频。

App Thinning

App thining自动的帮助你为不同的平台开发以及发布优化过的安装包。App thinning包括下面的内容:

  • Slicing。App Store只分发安装必须的内容
  • 按需资源。app的附加资源保存在appstore上,当需要的时候异步的下载资源。
  • Bitcode.app提交的时候, 会被编译为64位和32位,appstore分发的时候分发对应版本。

支持从右到左的语言

iOS9支持从右到左的语言,让提供一个翻转的界面更容易。

  • 标准的UIKit控件自动翻转从右到左的内容。
  • UIView定义了一些属性让你可以制定如何显示从右到左的内容。
  • UIImage添加了imageFlippedForRightToLeftLayoutDirection方法,让用代码翻转图片更容易。

APP传输安全

APP传输安全(ATS)增加了app和后台安全连接。ATS防止意外泄漏,提供了安全方面的默认行为,也很好实现。在iOS9和OS X v10.11之后默认打开。你应该尽快实现ATS,不管是创建新APP或者更新APP。

如果是开发新app,应该只使用HTTPS。如果是已有app,现在应该尽量使用HTTPS,并且计划尽快迁移其他接口。另外,使用上层API通讯需要使用TLS 1.2加密。如果不实用这种连接,会抛出异常。如果app需要请求不安全的域名,需要在app的Info.plist中申明。

Extension Points

iOS9提供了一些新的插件点(插件点定义了创建插件时,那个区域的使用策略以及提供的API)。如下:

  • 网络插件:

    • 使用Packet Tunnel Provider插件点来实现客户端的VPN协议通道。
    • 使用App Proxy Provider插件点来实现客户端自定义的网络协议。
    • 使用Filter Data Provider和Filter Control Provider插件点来实现动态的,基于设备的内容过滤。
    • 每个网络插件点都需要苹果的特殊许可,
  • Safari插件
    • 使用分享链接插件来让用户在Safari的共享链接中查看你的内容。
    • 使用屏蔽内容插件来在用户使用Safari浏览网页时屏蔽内容。
  • 维护索引插件可以不打开app就重新索引app的数据
  • 音频插件让你的app可以提供音乐,音效,生成声音。这个插件点包含了一个完成的音频插件模块并且可以在appstore上卖音乐。

通讯录以及通讯录UI

iOS9提供了Contacts.framework和ContactsUI.framework。他们提供了基于对象的实现。可以替换Address BookheAddress Book UI framework。

手表通讯

手表通讯框架(WatchConnectivity.framework)提供了iPhone和配对的手表之间的双向通讯。使用这个框架来对应iOS app的界面和手表中的界面。这个框架在两个app都运行时支持实时消息,其他情况支持后台消息。

钥匙串

钥匙串提供了更过保护项以及一个新的加密类型。

Swift加强

其他框架更新

AV Foundation Framework

AV Foundation(AVFoundation.framework)增加了AVSpeechSynthesisVoice API可以让你指定声音作为标识。可以使用name和quality属性来获取声音信息。

AVKit Framework

AVKit(AVKit.framework)包括AVPictureInPictureController和AVPlayerViewController类,可以帮助你实现画中画。

CloundKit Framework

如果有CloudKit app,可以使用CloudKit web service或者CloudKit JS,一个JavaScript库,提供了访问app中数据的网页接口。前提是你的数据库定义了网页接口的schema。

Foundation Framework

Foundation(Foundation.framework)包含下面的加强:

  • 按需加载NSBundle资源的API
  • 支持Strings文件
  • 增强NSProcessInfo

HealthKit Framework

HealthKit(HealthKit.framework)包含下面的增强:

  • 支持新的追踪领域。
  • 可以批量删除记录。

Local Authentication Framework

  • 可以获得当前注册的手指信息,这样在注册或删除手指信息时可以做相应的处理。
  • 支持取消用户用密码认证的提示
  • 支持钥匙串访问控制,调用钥匙串时进行身份认证
  • 支持重用TouchID匹配。

MapKit Framework

  • MapKit支持查询公交站以及公交导航
  • 地图支持3D模式
  • Annotations可以完全自定义
  • Mapkit的搜索结果以及CLGeocoder可以为结果提供时区

PassKit Framework

  • iOS9中, 苹果支付支持存储储蓄卡和信用卡。
  • 在app中可以直接添加卡片到苹果支付。

Safari Service Framework

SFSafariViewController可以在app中显示网页内容。它和Safari中的网站共享数据,拥有Safari的很多属性,比如自动填充。和Safari不同的是,SFSafariViewController界面定制的职能显示一个界面,有一个完成按钮可以把用户带回到app。

如果app只是显示网页内容,但是不需要定制内容,可以考虑把WKWebView或UIWebView换成SFSafariViewController。

UIKitFramework

  • UIStackView类,可以帮助你管理一组子界面,他们自动水平活着竖直排列。
  • UIView,NSLayoutANchor和NSLayoutDimension中新的布局锚点(比如leadingAnchor和widthAnchor),让布局更容易。
  • 新的布局引导帮助你更好的布局界面以及定义界面如何绘制。
  • 新的UIApplicationDelegate可以用来打开或修改文档,不需要拷贝以前的文档。要支持这个功能的话, app需要在Info.plist中把LSSupportsOpeningDocumentsInPlace设置为YES。
  • UITextInputAssistantItem类,可以帮助你放置快捷按钮。
  • 增强了Touch事件。
  • 增强了UIKit,比如支持非矩形的边框,UIFieldBehavior类,支持多种区域类型,也可以自定义。
  • UIUserNotificationAction的新behavior属性,可以支持在通知中输入文字。
  • 新的NSDataAsset类,可以更容易的从内存或者图形设备中获取数据。
  • 所有标准的UIKit控件都支持从右到左的语言。另外,导航,手势,collection,table的布局都支持翻转。

弃用的API

下面的API已弃用。

  • Address Book和Address Book UI framework。使用Contacts和Contacts UI framework替代
  • Foundation框架中的NSURLConnection API。 使用NSURLSessionAPI替代
时间: 2024-10-31 05:33:41

iOS 9 新特性的相关文章

iOS iOS8新特性-UIAlertController

iOS iOS8新特性--UIAlertController 1. iOS7及iOS7之前警告类控件有UIAlertView和UIActionSheet 1.1 UIAlertView的使用 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"警告" message:@"这是一个UIAlertView" delegate:nil cancelButtonTitle:@"取消" oth

iOS 8新特性之扩展(Extension)

本文由海水的味道收集整理,欢迎转载 当前版本 0.0.1  iOS 8新特性之扩展 一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据. 而在引入扩展之后,其他app可以与扩展进行数据交换.基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,它拥有自己的bundle, b

iOS 9应用开发教程之iOS 9新特性

iOS 9应用开发教程之iOS 9新特性 iOS 9开发概述 iOS 9是目前苹果公司用于苹果手机和苹果平板电脑的最新的操作系统.该操作系统于2015年6月8号(美国时间)被发布.本章将主要讲解iOS 9的新特性.以及使用Xcode 7.0如何编写一个简单的iOS 9的应用程序等内容. iOS 9新特性 在2015年6月8日即北京时间2015年6月9日的WWDC大会上,苹果公司代表讲解了很多iOS 9带来的新特性.本节将讲解一些主要的特性. Siri语音助手智能化 Siri语音助手的智能性能主要

iOS开发——新特性OC篇&IOS9 SDK新特性

iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍(@onevcat)对WWDC上透露的iOS 9 SDK新特性的总结,分享给广大的iOS开发者. 年年岁岁花相似,岁岁年年人不同.今年的 WWDC 一如既往的热闹,得益于 Apple 的随机抽选机制,这两年有更多的中国开发者有机会亲临现场进行体验,并与全球开发者取得更多的交流.更多的开发者可能只能在

iOS 8 新特性 (扩展)

一.扩展概述 扩展(Extension)是iOS 8中引入的一个非常重要的新特性.扩展让app之间的数据交互成为可能.用户可以在app中使用其他应用提供的功能,而无需离开当前的应用. 在iOS 8系统之前,每一个app在物理上都是彼此独立的,app之间不能互访彼此的私有数据. 而在引入扩展之后,其他app可以与扩展进行数据交换.基于安全和性能的考虑,每一个扩展运行在一个单独的进程中,它拥有自己的bundle, bundle后缀名是.appex.扩展bundle必须包含在一个普通应用的bundle

iOS开发——新特性OC篇&Objective新特性

Objective新特性 Overview 自 WWDC 2015 推出和开源 Swift 2.0 后,大家对 Swift 的热情又一次高涨起来,在羡慕创业公司的朋友们大谈 Swift 新特性的同时,也有很多像我一样工作上依然需要坚守着 Objective-C 语言的开发者们.今年的 WWDC 中介绍了几个 Objective-C 语言的新特性,还是在“与 Swift 协同工作”这种 Topic 里讲的,越发凸显这门语言的边缘化了,不过有新特性还是极好的,接下来,本文将介绍下面三个主要的新特性:

iOS 8 新特性

这篇文章会介绍iOS8开发相关的主要特性. App 插件 通过支持插件,iOS8让我们可以系统指定的区域进行扩展,也就是为用户的特定需求提供自定义的方法.例如:可以通过App插件帮助用户分享他们的内容到社交网站.在用户安装了这个插件后,当他在App中点击分享按钮时就可以选择这个插件了.自定义的插件提供接受,认证,发布用户内容的功能.系统会在分享菜单中列出他们并且在用户点击后实例化他们. 在Xcode中,可以通过添加预先配置好的带插件的app来创建它.当用户安装有插件的app后,用户可以在设置中启

iOS开发——新特性OC篇&Swift 2.0新特性

Swift 2.0新特性 转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不

iOS开发——新特性界面(UICollectionView)

没一款app在刚下载或者更新之后,app有些特色功能需要向用户传递,这个时候我们就要使用新特新界面,用户刚打开软件能看到各种展示图片,左右滑动还可以切换图片,那么新特性界面是如何实现的呢,下面我就用介绍下用如何代码去实现性特性界面,用的是iOS中的UICollectionView,自定义cell去实现的. CollectionViewCell.h中 #import <UIKit/UIKit.h> @interface CollectionViewCell : UICollectionViewC

iOS开发——新特性OC篇&amp;IOS9 系统新特性

IOS9 系统新特性 2015年6月89号凌晨召开的WWDC 2015苹果开发者大会发布了全新的iOS 9系统,PC6小编今天给大家整理了这次iOS9的系统更新带来了哪些新的功能与升级,本次新功能一览,我们分为iOS 9 for iPhone和iOS 9 for iPad两部分来介绍. 一.iOS 9 for iPhone 1.每周收到10亿条指令的Siri,在识别的速度和准确率上都提高了40%,Siri的功能也得到了丰富,可以用来查找图片.视频,也能让它提醒你看完网页上的文章. 2.为了体现智