Дополнительные изменения платформ iOS 10
В этой статье рассматриваются дополнительные, незначительные изменения или улучшения существующих платформ для iOS 10.
Дополнения AV Foundation Framework
Платформа AVFoundation включает следующие улучшения:
- В iOS 10 разработчик больше не должен реализовывать различные поведения AVPlayerItem на основе типа контента. Просто задайте
Rate
свойство и AVFoundation определит, когда достаточно содержимого доступно для воспроизведения без остановки. - Новый класс AVCapturePhotoOutput заменяет устаревший
AVCaptureStillImageOutput
класс и предоставляет единый метод для обработки всех рабочих процессов фотографии, предоставляя сложный контроль и мониторинг процесса захвата и поддержку новых функций, таких как Live Photo и формат записи RAW. - Новый
AVPlayerLooper
класс упрощает циклику заданного фрагмента мультимедиа во время воспроизведения. - Класс
AVAssetDownloadURLSession
позволяет загружать и позже воспроизводить зашифрованные потоки FairPlay HLS. - По умолчанию класс AVCaptureSession автоматически поддерживает широкий цвет, широкоцветный захват при поддержке оборудования устройства. Дополнительные сведения см. в справочнике по совместимости устройств iOS Apple.
Дополнения AVKit
Платформа AVKit теперь включает новое UpdatesNowPlayingInfoCenter
свойство, указывающее, когда должен быть обновлен Центр сведений о воспроизведениях.
Усовершенствования основных данных
IOS 10 включает в себя следующие улучшения платформы основных данных:
- Объекты NSManagedObjectContext с хранилищами данных SQLite в режиме WAL Journal поддерживают новую функцию создания запросов, где контексты управляемых объектов (MOC) можно закрепить на определенных версиях базы данных для будущих транзакций получения и сбоя.
- Корневые объекты NSManagedObjectContext поддерживают одновременную сбой и извлечение без сериализации.
- Класс NSPersistentStoreCoordinator поддерживает пул хранилищ данных SQLite.
- Добавлены несколько новых удобных методов, что
NSManagedObject
упрощает получение и создание подклассов. - Использование высокого уровня
NSPersistenceContainer
для ссылки наNSPersistentStoreCoordinator
ресурсы конфигурации данных NSManagedObjectModel и других ресурсов конфигурации основных данных.
Дополнительные сведения см. в справочнике по Платформе данных Apple Core.
Усовершенствования основных образов
IOS 10 делает следующие улучшения платформы Core Image:
- Теперь разработчик может обрабатывать изображения в цветовом пространстве за пределами рабочего цветового пространства контекста Core Image, преобразовав его и из цветового пространства до и после обработки.
- Для устройств iOS, использующих ЦП A8 или A9, теперь поддерживается формат образа RAW. Core Image теперь обеспечивает поддержку декодирования необработанных изображений с встроенной камеры iSight или с 3-й сторонней камеры.
FilterWithImageData
Используйте методыFilterWithImageURL
класса CIFilter для обработки образов RAW. - Несколько улучшений производительности отрисовки были сделаны для
UIImage
отрисовки (при поддержке хранилищ образов Core Image) вUIImageView
объектах. UIImage
Объекты, помеченные широкой гаммой, будут отображаться как цвет широкой гаммы вUIImageView
объектах на устройствах iOS, поддерживающих широкий цвет.- Основной код ядра изображения теперь может запрашивать определенные форматы выходных данных пикселей.
- Метод
ImageWithExtent
класса CIFilter можно использовать для вставки пользовательской обработки в операцию фильтра. Основной образ вызывает заданный обратный вызов между фильтрами при обработке изображения для вывода или отображения.
Кроме того, добавлены следующие новые фильтры основных образов:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Дополнения основного движения
Платформа основного движения в iOS 10 включает события педометра, которые позволяют приложению получать быстрые уведомления о приостановке работы и возобновлении отслеживания пользователей в режиме реального времени. Используйте CMPedometer для регистрации событий переднего плана или фона пеedометра.
Усовершенствования фонда
В платформу Foundation для iOS 10 были внесены следующие усовершенствования:
Используйте новый класс NSMeasurementFormatter для форматирования локализованных измерений для отображения пользователю.
Используйте новый класс NSDateInterval для выполнения вычислений даты и интервала времени, таких как длительность, для сравнения интервалов и тестирования пересечений интервалов.
Используйте новый класс NSMeasurement для преобразования между различными единицами измерения (UOM) или вычислений по значениям в разных UOM.
Используйте новые классы NSUnit и NSDimension для представления конкретных UOM.
В класс NSLocal добавлены несколько новых свойств для получения локальных сведений и доступных форматов отображения.
Улучшения GameKit
В iOS 10 были внесены следующие улучшения в платформу GameKit:
- Приложение Game Center устарело и удалено из iOS. Если приложение использует GameKit, оно должно представить свой собственный интерфейс для отображения функций GameKit, таких как таблицы лидеров и т. д.
- Новый тип учетной записи только для iCloud реализован классом GKCloudPlayer .
- Новый класс GKGameSession предоставляет обобщенное решение для управления сохраняемым хранилищем данных в Game Center.
GKGameSession
поддерживает список игроков и приложение отвечает за реализацию того, как и когда дата участника хранится, извлекается или обменивается между игроками. Во многих случаях игровые сеансы могут заменить существующие совпадения на основе поворота, совпадения в режиме реального времени или постоянные методы сохранения игр.
Улучшения игрового процесса
В iOS 10 были реализованы следующие усовершенствования.
- Используйте новый класс GKMeshGraph , чтобы обеспечить высокопроизводительные и естественные пути.
- Добавлено процедурное создание шума и может использоваться для повышения реалистичности в естественных текстурах, добавления реализма в движения камеры и создания богатых игровых миров.
- Используйте пространственное секционирование для секционирования данных мира игры для эффективного поиска.
- Новый стратег Монте-Карло (GKMonteCarloStrategist) был добавлен для исчерпывающих возможных вычислений перемещения.
- 3D-поддержка добавлена в существующий агент и поведение поиска путей с помощью новых классов GKAgent3D и GKGraphNode3D .
- Новые классы GKScene и GKSKNodeComponent делают объединение GameplayKit и SpriteKit проще, чем когда-либо.
- Добавлен новый API дерева принятия решений (GKDecisionTree и GKDecisionNode) для улучшения ИИ для создания игр.
Улучшения HealthKit
В iOS 10 были внесены следующие улучшения в платформу HealthKit:
- Добавлены новые ключи метаданных для типов погоды (таких как
HKWeatherConditionClear
иHKWeatherConditionCloudy
) и типы тренировки (напримерHKWorkoutActivityTypeFlexibility
, иHKWorkoutActivityTypeWheelchairRunPace
) были добавлены. - Добавлен новый
HKCDADocument
класс для представления отформатированного документа (CDA). - Используйте новый класс HKWorkoutConfiguration , чтобы указать
ActivityType
иLocationType
выполнить тренировку. - Добавлен новый класс HKWheelchairUseObject и
WheelchairUse
метод класса HKHealthStore для работы с данными о работоспособности инвалидной коляски.
Улучшения HomeKit
В iOS 10 были улучшены следующие улучшения платформы HomeKit:
- Добавлены новые службы и характеристики.
- IPad можно настроить для работы в качестве Центра HomeKit для предоставления удаленного доступа к аксессуарам, запуска триггеров автоматизации и включения разрешений общего пользователя.
- Добавлена поддержка для аксессуаров камеры и двери.
- Для аксессуаров предоставляются дополнительные контексты и конфигурации.
Дополнительные сведения см. в нашей документации по HomeKit .
Усовершенствования металла
В iOS 10 были реализованы следующие усовершенствования:
- Трехмерные приложения и игры теперь могут использовать Tessellation для эффективной отрисовки сложных сцен и геометрии с помощью GPU.
- Обеспечивает точное управление выделением ресурсов для оптимизации производительности приложений на основе металла с помощью кучи ресурсов и целевых объектов отрисовки без памяти.
- Используйте специализацию функций для создания высокооптимизируемой коллекции материалов и функций сочетания света для сцены.
Дополнительные сведения см. в руководстве по программированию металла Apple.
Усовершенствования ModelIO
В платформе ModelIO в iOS 10 были реализованы следующие усовершенствования:
- Теперь поддерживается формат файла USD.
- Поддержка поля подписи добавлена в класс MDLVoxelArray .
- Используйте новый
MDLLightProbeIrradianceDataSource
класс, чтобы помочь в размещении Light Probe. - Используйте новый
MDLMaterialPropertyGraph
класс для легкой поддержки изменений среды выполнения моделей.
Улучшения фотографий
В iOS 10 были улучшены следующие усовершенствования.
- Используйте классы CIImageProcessorInput и CIImageProcessorOutput, чтобы воспользоваться новым компонентом обработчика образов Core для выполнения изменений.
- Редактирование фотографий в реальном времени теперь доступно для приложений, поддерживающих платформу "Фотографии" и расширения редактирования фотографий (для использования в приложениях "Фотографии" и Камера).
- Используйте новый класс PHLivePhotoEditingContext , чтобы применить изменения как к видео, так и к содержимому Live Photo.
Улучшения ReplayKit
В iOS 10 были внесены следующие улучшения в платформу ReplayKit:
- Используйте классы RPScreenRecorder, RPBroadcastActivityViewController и RPBroadcastController для поддержки вещания записанных носителей через сторонние сайты.
- Расширения вещания пользовательского интерфейса и широковещательной отправки необходимы для поддержки сторонних служб трансляции ReplayKit 3-й стороны в приложении.
Улучшения SceneKit
В платформе SceneKit в iOS 10 были улучшены следующие усовершенствования:
- Класс SCN Камера может обеспечить более высокую реалистичность с помощью функций и эффектов HDR. Используйте адаптивную экспозицию для создания автоматических эффектов или использования vignetting, цветной бахромы и градирования цветов для добавления эффектов заливки в игру.
- SceneKit теперь включает новую систему отрисовки на основе физических данных (PBR) для более реалистичных результатов с более простой разработкой активов.
- Используйте новую модель заливки SCNLightingModelPhysicalLyBased, чтобы продуктив широкий спектр реалистичных эффектов заливки, требуя только трех основных свойств (
Diffuse
Metalness
иRoughness
). - Так как заливка PBR лучше всего работает с освещением на основе среды, используйте
LightingEnvironment
свойство для назначения освещения на основе изображений всей сцене. IESProfileURL
Используйте свойство для импорта реальных световых светильников, определяющих освещение на основе реальных значений, таких как интенсивность (в люменях) и цветовая температура (в градусах Кельвин).- Функции камеры PBR и HDR обеспечивают лучшие результаты, чем традиционные методы отрисовки, и в результате SceneKit теперь выполняет все вычисления цвета в линейном цветовом пространстве (с помощью цветовой гаммы P3 на широкоцветных устройствах).
- Теперь цвет SceneKit соответствует всем цветам, считывая сведения о профиле цвета.
- SceneKit интерпретирует значения компонентов цвета в линейном цветовом пространстве RGB для всех типов шейдеров.
- Отрисовка линейного пространства цветов и широкий цвет можно отключить, указав
SCNDisableLinearSpaceRendering
SCNDisableWideGamut
ключи в приложенииInfo.plist
. - Создайте произвольные многоугольники (загруженные из файлов или созданные программным способом), чтобы указать геометрию с новым классом SCNGeometryPrimitiveTypePolygon .
- Так как SceneKit считывает и настраивает сведения о профиле цвета в изображениях текстур, используйте каталоги активов для всех изображений, чтобы обеспечить эти сведения.
Усовершенствования SpriteKit
В iOS 10 были внесены следующие улучшения в платформу SpriteKit:
- Пользовательские шейдеры могут предоставлять атрибуты (
SKAttribute
), которые можно настроить отдельно для каждого узла, использующего шейдер, указав значение атрибута (SKAttributeValue
). - Плитки теперь поддерживают квадратные, шестнадцатеричные и isoметрические фигуры плиток для 2D, 2.5D и параллельных прокрутки игр с помощью
SKTileMapMode
иSKTileGroup
SKTileGroupRule
SKTileSet
классов. - Используйте новый
SKWarpGeometry
класс, чтобы растянуть или исказить отрисовку SKSpriteNode или SKEffectNode. Новый класс SKAction можно использовать для анимации переходов между эффектами warp. - Класс SKView предоставляет несколько новых методов для точного управления тем, когда и как отрисовывается сцена.
Усовершенствования ScrollView
В элемент управления ScrollView 10.3 были внесены следующие улучшения:
UIScrollView
Теперь включитеIndexDisplayMode
свойство для управления отображением индекса, пока пользователь прокручивается как:UIScrollViewIndexDisplayMode
Automatic
— Отображение индекса управляется ОС.AlwaysHidden
— Отображение индекса всегда скрыто.
Улучшения UIKit
В iOS 10 были внесены следующие улучшения в платформу UIKit:
- Новый API UIPasteboard предоставляет новые параметры (например, ограничения времени существования) и автоматически объявляет совместимые типы контента для общих типов классов.
- Добавлена новая полностью интерактивная, объектная, прерванная поддержка анимации и может быть связана с жестами. Дополнительные сведения см. в справочнике по протоколу UIViewAnimating, справочнике по классу UIViewPropertyAnimator, справочнике по протоколу UITimingCurveProvider, UICubicTimingParameters Class Reference и UISpringTimingParameter Class Reference.
- Новое
UIPreviewInteraction
иUIPreviewInteractionDelegate
разрешить приложению разработчика предоставить пользовательский интерфейс для просмотра и всплывающих операций. - Новый
UIAccessibilityCustomRotor
класс позволяет приложению предоставлять пользовательские, контекстные функции для вспомогательных технологий, таких как Voice Over. UIAccessibilityIsAssistiveTouchRunning
Используйте символы,UIAccessibilityAssistiveTouchStatusDidChangeNotification
чтобы определить, включена ли поддержка AssistiveTouch.UIAccessibilityHearingDevicePairedEar
Используйте символы,UIAccessibilityHearingDevicePairedEarDidChangeNotification
чтобы получить состояние любых парных слуховых средств MFi.- Для поддержки динамического
UIFont
типа в метках, текстовых полях и текстовых полях используется новыйPreferredFontForTextStyle
метод класса. - Чтобы решить, должен ли элемент обновить шрифт при изменении устройства
UIContentSizeCategory
, используйтеAdjustsFontForContentSizeCategory
свойство делегатаUIContentSizeCategoryAdjusting
. - Метод
OpenURL
UIApplication
класса вызывается асинхронно и теперь поддерживает обработчик завершения, который вызывается после завершения открытого действия. - Инициируйте совместное использование CloudKit и изменяйте его свойства с помощью новых
UICloudSharingController
иUICloudSharingControllerDelegate
классов. - Воспользуйтесь преимуществами предварительно подготовленных ячеек, чтобы улучшить процесс прокрутки
UICollectionViews
с помощью новогоUICollectionViewDataSourcePrefetching
делегата. - Разработчик теперь может контролировать внешний вид значка для элементов панели вкладок (например, текст и цвет фона).
- Элемент управления обновления теперь поддерживается во всех подклассах представления прокрутки и представления прокрутки (например
UICollectionView
).
Усовершенствования WebKit
В iOS 10 были улучшены следующие улучшения платформы WebKit:
- В класс добавлена
WKWebView
поддержка просмотра и всплывающих окон.ShouldPreviewElement
Используйте метод, чтобы определить, должен ли данный веб-вид отображать предварительную версию.