Дополнительные изменения платформ 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:

Улучшения SceneKit

В платформе SceneKit в iOS 10 были улучшены следующие усовершенствования:

  • Класс SCN Камера может обеспечить более высокую реалистичность с помощью функций и эффектов HDR. Используйте адаптивную экспозицию для создания автоматических эффектов или использования vignetting, цветной бахромы и градирования цветов для добавления эффектов заливки в игру.
  • SceneKit теперь включает новую систему отрисовки на основе физических данных (PBR) для более реалистичных результатов с более простой разработкой активов.
  • Используйте новую модель заливки SCNLightingModelPhysicalLyBased, чтобы продуктив широкий спектр реалистичных эффектов заливки, требуя только трех основных свойств (DiffuseMetalnessиRoughness).
  • Так как заливка PBR лучше всего работает с освещением на основе среды, используйте LightingEnvironment свойство для назначения освещения на основе изображений всей сцене.
  • IESProfileURL Используйте свойство для импорта реальных световых светильников, определяющих освещение на основе реальных значений, таких как интенсивность (в люменях) и цветовая температура (в градусах Кельвин).
  • Функции камеры PBR и HDR обеспечивают лучшие результаты, чем традиционные методы отрисовки, и в результате SceneKit теперь выполняет все вычисления цвета в линейном цветовом пространстве (с помощью цветовой гаммы P3 на широкоцветных устройствах).
  • Теперь цвет SceneKit соответствует всем цветам, считывая сведения о профиле цвета.
  • SceneKit интерпретирует значения компонентов цвета в линейном цветовом пространстве RGB для всех типов шейдеров.
  • Отрисовка линейного пространства цветов и широкий цвет можно отключить, указав SCNDisableLinearSpaceRenderingSCNDisableWideGamut ключи в приложении Info.plist.
  • Создайте произвольные многоугольники (загруженные из файлов или созданные программным способом), чтобы указать геометрию с новым классом SCNGeometryPrimitiveTypePolygon .
  • Так как SceneKit считывает и настраивает сведения о профиле цвета в изображениях текстур, используйте каталоги активов для всех изображений, чтобы обеспечить эти сведения.

Усовершенствования SpriteKit

В iOS 10 были внесены следующие улучшения в платформу SpriteKit:

  • Пользовательские шейдеры могут предоставлять атрибуты (SKAttribute), которые можно настроить отдельно для каждого узла, использующего шейдер, указав значение атрибута (SKAttributeValue).
  • Плитки теперь поддерживают квадратные, шестнадцатеричные и isoметрические фигуры плиток для 2D, 2.5D и параллельных прокрутки игр с помощью SKTileMapModeи SKTileGroupSKTileGroupRuleSKTileSet классов.
  • Используйте новый 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 .
  • Метод OpenURLUIApplication класса вызывается асинхронно и теперь поддерживает обработчик завершения, который вызывается после завершения открытого действия.
  • Инициируйте совместное использование CloudKit и изменяйте его свойства с помощью новых UICloudSharingController и UICloudSharingControllerDelegate классов.
  • Воспользуйтесь преимуществами предварительно подготовленных ячеек, чтобы улучшить процесс прокрутки UICollectionViews с помощью нового UICollectionViewDataSourcePrefetching делегата.
  • Разработчик теперь может контролировать внешний вид значка для элементов панели вкладок (например, текст и цвет фона).
  • Элемент управления обновления теперь поддерживается во всех подклассах представления прокрутки и представления прокрутки (например UICollectionView).

Усовершенствования WebKit

В iOS 10 были улучшены следующие улучшения платформы WebKit:

  • В класс добавлена WKWebView поддержка просмотра и всплывающих окон. ShouldPreviewElement Используйте метод, чтобы определить, должен ли данный веб-вид отображать предварительную версию.