Share via


Cambios adicionales de iOS 10 Frameworks

En este artículo se tratan cambios adicionales, menores o mejoras en los marcos existentes para iOS 10.

Adiciones de AV Foundation Framework

El marco AVFoundation incluye las siguientes mejoras:

  • En iOS 10, el desarrollador ya no tiene que implementar diferentes comportamientos de AVPlayerItem en función del tipo de contenido. Simplemente establezca la propiedad Rate y AVFoundation determinará cuándo hay suficiente contenido disponible para la reproducción sin detención.
  • La nueva clase AVCapturePhotoOutput reemplaza a la clase AVCaptureStillImageOutput en desuso y proporciona un método unificado para controlar todos los flujos de trabajo de fotografía proporcionando un control sofisticado y la supervisión del proceso de captura y compatibilidad con nuevas características como Live Photos y el formato de captura RAW.
  • La nueva clase AVPlayerLooper facilita el bucle de un elemento multimedia determinado durante la reproducción.
  • La clase AVAssetDownloadURLSession permite la descarga y posterior reproducción de secuencias HLS cifradas de FairPlay.
  • De forma predeterminada, la clase AVCaptureSession admite automáticamente la captura de ancho de gama y ancho de color cuando el hardware del dispositivo lo admite. Para obtener más información, consulte Referencia de compatibilidad de dispositivos iOS de Apple.

Adiciones de AVKit

El marco AVKit ahora incluye la nueva propiedad UpdatesNowPlayingInfoCenter para indicar cuándo se debe actualizar el Centro de información en reproducción.

Mejoras de datos principales

iOS 10 incluye las siguientes mejoras en el marco Core Data:

  • Los objetos NSManagedObjectContext con almacenes de datos SQLite en el modo WAL Journal admiten la nueva función de generación de consultas donde los contextos de objetos administrados (MOC) se pueden anclar a versiones específicas de bases de datos para futuras transacciones de recuperación y fallas.
  • Los objetos raíz NSManagedObjectContext admiten errores y recuperación simultáneos sin serialización.
  • La clase NSPersistentStoreCoordinator mantiene un grupo de almacenes de datos SQLite.
  • Se han agregado varios métodos de conveniencia nuevos a NSManagedObject lo que facilita la realización de capturas y creación de subclases.
  • Uso del nivel alto NSPersistenceContainerpara hacer referencia a NSPersistentStoreCoordinator, NSManagedObjectModel y otros recursos de configuración de Core Data.

Para obtener más información, consulte la Referencia de Core Data Framework de Apple.

Mejoras en la imagen principal

iOS 10 realiza las siguientes mejoras en el marco Core Image:

  • El desarrollador ahora puede procesar imágenes en un espacio de colores fuera del espacio de color de trabajo del contexto de imagen principal convirtiendo y fuera del espacio de color antes y después del procesamiento.
  • En el caso de los dispositivos iOS que usan las CPU A8 o A9, ahora se admite el formato de imagen RAW. Core Image ahora proporciona compatibilidad con la descodificación de imágenes RAW desde la cámara iSight integrada o desde una cámara de terceros. Utilice los métodos FilterWithImageData o FilterWithImageURL de la clase CIFilter para procesar imágenes RAW.
  • Se han realizado varias mejoras en el rendimiento de la renderización UIImage (cuando está respaldada por almacenes de imágenes Core Image) en objetos UIImageView.
  • Los objetos UIImage etiquetados como de gama amplia se representarán como colores de gama amplia en objetos UIImageView en dispositivos iOS que admitan ancho de colores.
  • El código de kernel de imagen principal ahora puede solicitar formatos de salida de píxeles específicos.
  • El método ImageWithExtent de la clase CIFilter se puede utilizar para insertar el procesamiento personalizado en la operación de filtrado. Core Image invocará la devolución de llamada dada entre filtros al procesar una imagen para la salida o la presentación.

Además, se han agregado los siguientes nuevos filtros de Core Image:

  • CINinePartTiled
  • CINinePartStretched
  • CIHueSaturationValueGradient
  • CIEdgePreserveUpsampleFilter
  • CIClamp

Adiciones de Core Motion

Novedad de iOS 10, el marco Core Motion incluye eventos de podómetro que permiten que una aplicación reciba notificaciones rápidas y en tiempo real cuando el usuario pausa y reanuda el seguimiento mientras corre. Utilice CMPedometer para registrarse en eventos de podómetro en primer plano o en segundo plano.

Mejoras básicas

Se han realizado las siguientes mejoras en el marco Foundation para iOS 10:

  • Utilice la nueva clase NSMeasurementFormatter para dar formato a las medidas localizadas para mostrar al usuario final.

  • Utilice la nueva clase NSDateInterval para realizar cálculos de intervalo de fecha y hora, como duraciones, para comparar intervalos y pruebas de intersecciones de intervalos.

  • Utilice la nueva clase NSMeasurement para convertir entre diferentes unidades de medida (UOM) o realizar cálculos sobre valores en diferentes UOM.

  • Utilice las nuevas clases NSUnit y NSDimension para representar unidades de medida específicas.

  • Se han agregado varias propiedades nuevas a la clase NSLocal para adquirir información local y los formatos de visualización disponibles.

Mejoras de GameKit

Se han realizado las siguientes mejoras en el marco GameKit en iOS 10:

  • La aplicación Game Center ha quedado en desuso y se ha quitado de iOS. Si la aplicación usa GameKit, debe presentar su propia interfaz para mostrar características de GameKit, como tablas de clasificación, etc.
  • La clase GKCloudPlayer ha implementado un nuevo tipo de cuenta exclusiva de iCloud.
  • La nueva clase GKGameSession proporciona una solución generalizada para administrar el almacenamiento de datos persistentes en Game Center. GKGameSession mantiene una lista de jugadores y la aplicación es responsable de implementar cómo y cuándo se almacena, recupera o intercambia entre jugadores la fecha de los participantes. En muchas instancias, las sesiones de juego pueden reemplazar las coincidencias basadas en turnos existentes, las coincidencias en tiempo real o los métodos de guardado de juegos persistentes.

Mejoras de GameplayKit

Se han realizado las siguientes mejoras en el marco de GameplayKit en iOS 10:

  • Utilice la nueva clase GKMeshGraph para proporcionar caminos de alto rendimiento y aspecto natural.
  • Se ha agregado la generación de ruidos de procedimientos y se puede usar para mejorar el realismo en texturas de aspecto natural, agregar realismo a los movimientos de cámara y ayudar a generar mundos de juego enriquecidos.
  • Usa Particionado del espacio para crear particiones de los datos del mundo del juego para una búsqueda eficaz.
  • Un nuevo estratega de Monte Carlo (GKMonteCarloStrategist) se ha agregado para un cálculo exhaustivo de posibles movimientos.
  • La compatibilidad con 3D se ha agregado a los comportamientos existentes de agente y búsqueda de rutas de acceso mediante las nuevas clases GKAgent3D y GKGraphNode3D.
  • Las nuevas clases GKScene y GKSKNodeComponent hacen que combinar GameplayKit y SpriteKit sea más fácil que nunca.
  • Se ha agregado una nueva API de árbol de decisiones (GKDecisionTree y GKDecisionNode) para mejorar la IA de construcción de juegos.

Mejoras de HealthKit

Se han realizado las siguientes mejoras en el marco HealthKit en iOS 10:

  • Se han agregado nuevas claves de metadatos para tipos meteorológicos (como HKWeatherConditionClear y HKWeatherConditionCloudy) y tipos de entrenamiento (como HKWorkoutActivityTypeFlexibility y HKWorkoutActivityTypeWheelchairRunPace).
  • Se ha agregado la nueva clase HKCDADocument para representar un documento con formato de Arquitectura de Documentos Clínicos (CDA).
  • Utilice la nueva clase HKWorkoutConfiguration para especificar ActivityType y LocationType del entrenamiento.
  • El nuevo HKWheelchairUseObject y el método WheelchairUse de la clase HKHealthStore se han agregado para trabajar con datos de salud relacionados con sillas de ruedas.

Mejoras de HomeKit

Se han realizado las siguientes mejoras en el marco HomeKit en iOS 10:

  • Se han agregado nuevos servicios y características.
  • Un iPad se puede configurar para que actúe como un HomeKit Hub para proporcionar acceso a accesorios remotos, ejecutar desencadenadores de automatización y habilitar permisos de usuario compartidos.
  • Se ha agregado compatibilidad para accesorios de cámara y timbre.
  • Se han proporcionado más contextos y configuraciones para accesorios.

Consulte nuestra documentación de Introducción a HomeKit para obtener más información.

Mejoras de metal

Se han realizado las siguientes mejoras en el marco metal en iOS 10:

  • Las aplicaciones y juegos 3D ahora pueden utilizar Tessellation para representar de forma eficaz escenas complejas y geometría mediante la GPU.
  • Proporcione un control específico de la asignación de recursos para optimizar el rendimiento de las aplicaciones basadas en metal mediante montones de recursos y destinos de representación sin memoria.
  • Utilice la especialización de funciones para crear una colección altamente optimizada de funciones de combinación de materiales y luz para una escena.

Para obtener más información consulte la Guía de programación de metales de Apple.

Mejoras de ModelIO

Se han realizado las siguientes mejoras en el marco ModelIO en iOS 10:

  • Ahora se admite el formato de archivo USD.
  • Se ha agregado compatibilidad con campos de distancia firmados a la clase MDLVoxelArray.
  • Utilice la nueva clase MDLLightProbeIrradianceDataSource para ayudar en la colocación de sondeo de luz.
  • Utilice la nueva clase MDLMaterialPropertyGraph para admitir fácilmente los cambios en tiempo de ejecución en los modelos.

Mejoras de fotos

Se han realizado las siguientes mejoras en el marco Fotos en iOS 10:

  • Utilice las clases CIImageProcessorInput y CIImageProcessorOutput para aprovechar la nueva función del procesador Core Image para realizar ediciones.
  • La edición de fotos en directo ahora está disponible para aplicaciones que admiten el marco Fotos y las extensiones de edición de fotos (para su uso dentro de las aplicaciones Fotos y Cámara).
  • Use la nueva clase PHLivePhotoEditingContext para aplicar modificaciones tanto al vídeo como al contenido todavía de Live Photos.

Mejoras de ReplayKit

Se han realizado las siguientes mejoras en el marco ReplayKit en iOS 10:

Mejoras de SceneKit

Se han realizado las siguientes mejoras en el marco SceneKit en iOS 10:

  • La clase SCNCamera puede proporcionar mayor realismo mediante el uso de funciones y efectos HDR. Utilice la exposición adaptativa para crear efectos automáticos o utilice viñetas, franjas de color y gradación de color para agregar efectos de relleno al juego.
  • SceneKit ahora incluye un nuevo sistema de representación basada en física (PBR) para obtener resultados más realistas con la creación de recursos más sencilla.
  • Utilice el nuevo modelo de sombreado SCNLightingModelPhysicallyBased para producir una amplia gama de efectos de sombreado realistas mientras requiere solo tres propiedades fundamentales (Diffuse, Metalness y Roughness).
  • Dado que el sombreado PBR funciona mejor con la iluminación basada en el entorno, utilice la propiedad LightingEnvironment para asignar iluminación basada en imágenes a toda una escena.
  • Utilice la propiedad IESProfileURL para importar accesorios de luz reales que definen la iluminación basada en valores reales, como la intensidad (en lúmenes) y la temperatura del color (en grados Kelvin).
  • Las características de la cámara PBR y HDR proporcionan mejores resultados que las técnicas de representación tradicionales y, como resultado, SceneKit ahora realiza todos los cálculos de color en un espacio de color lineal (mediante la gama de colores P3 en pantallas de dispositivo de color ancho).
  • El color de SceneKit ahora coincide con todos los colores leyendo la información del perfil de color.
  • SceneKit interpreta los valores de los componentes de color en un espacio de color RGB lineal para todos los tipos de sombreador.
  • La representación del espacio de color lineal y el color ancho se pueden deshabilitar especificando las claves SCNDisableLinearSpaceRendering y SCNDisableWideGamut en Info.plist de la aplicación.
  • Compile polígonos arbitrarios (cargados desde archivos o generados mediante programación) para especificar geometría con la nueva clase SCNGeometryPrimitiveTypePolygon.
  • Puesto que SceneKit lee y ajusta la información del perfil de color en las imágenes de textura, utilice catálogos de activos para todas las imágenes para asegurarse de que se proporciona esta información.

Mejoras de SpriteKit

Se han realizado las siguientes mejoras en el marco de SpriteKit en iOS 10:

  • Los sombreadores personalizados pueden proporcionar atributos (SKAttribute) que se pueden configurar por separado por cada nodo que usa el sombreador proporcionando un valor de atributo (SKAttributeValue).
  • Los mapas de iconos ahora admiten formas de mosaico cuadradas, hexagonales e isométricas para las clases 2D, 2.5D y desplazamiento lateral mediante las clases SKTileMapMode, SKTileGroup, SKTileGroupRule y SKTileSet.
  • Utilice la nueva clase SKWarpGeometry para ajustar o distorsionar la representación de SKSpriteNode o SKEffectNode. La nueva clase SKAction se puede utilizar para animar transiciones entre efectos de deformación.
  • La clase SKView proporciona varios métodos nuevos para brindar un control detallado sobre cuándo y cómo se representa una escena.

Mejoras de ScrollView

Se han realizado las siguientes mejoras en el control ScrollView en iOS 10.3:

  • UIScrollView ahora incluye la propiedad IndexDisplayMode para controlar cómo se muestra el índice mientras el usuario se desplaza como un UIScrollViewIndexDisplayMode de:
    • Automatic: El sistema operativo controla la visualización del índice.
    • AlwaysHidden: La visualización del índice siempre está oculta.

Mejoras de UIKit

Se han realizado las siguientes mejoras en el marco UIKit en iOS 10:

  • La nueva API UIPasteboard proporciona nuevas opciones (como limitaciones de duración) y declarará automáticamente tipos de contenido compatibles para tipos de clases comunes.
  • Se ha agregado un nuevo soporte de animación interrumpible, totalmente interactivo y basado en objetos, que se puede vincular a gestos. Para obtener más información, consulte Referencia del protocolo UIViewAnimating, Referencia de la clase UIViewPropertyAnimator, Referencia del protocolo UITimingCurveProvider, Referencia de la clase UICubicTimingParameters y Referencia de la clase UISpringTimingParameter de Apple.
  • Los nuevos UIPreviewInteraction y UIPreviewInteractionDelegate permiten que la aplicación del desarrollador proporcione una interfaz personalizada para operaciones de Peek & Pop.
  • La nueva clase UIAccessibilityCustomRotor permite que la aplicación proporcione funcionalidad personalizada y específica del contexto a tecnologías de asistencia como Voice Over.
  • Utilice los símbolos UIAccessibilityIsAssistiveTouchRunning y UIAccessibilityAssistiveTouchStatusDidChangeNotification para determinar si AssistiveTouch está habilitado.
  • Utilice los símbolos UIAccessibilityHearingDevicePairedEar y UIAccessibilityHearingDevicePairedEarDidChangeNotification para obtener el estado de los audífonos MFi emparejados.
  • Para admitir el tipo dinámico en etiquetas, campos de texto y cuadros de texto, utilice el nuevo método PreferredFontForTextStyle de la clase UIFont.
  • Para decidir si un elemento debe actualizar su fuente cuando cambie UIContentSizeCategory del dispositivo, utilice la propiedad AdjustsFontForContentSizeCategory del delegado UIContentSizeCategoryAdjusting.
  • El método OpenURL de la clase UIApplication se llama de forma asincrónica y ahora admite un controlador de finalización al que se llama una vez completada la acción de apertura.
  • Inicie el uso compartido de CloudKit y modifique sus propiedades mediante las nuevas clases UICloudSharingController y UICloudSharingControllerDelegate.
  • Aproveche las celdas capturadas previamente para mejorar la experiencia de desplazamiento de UICollectionViews con el nuevo delegado UICollectionViewDataSourcePrefetching.
  • El desarrollador ahora puede controlar la apariencia del distintivo para los elementos de la barra de pestañas (como el texto y el color de fondo).
  • El control Actualizar ahora se admite en todas las subclases de vista de desplazamiento y vista de desplazamiento (por ejemplo, UICollectionView).

Mejoras de WebKit

Se han realizado las siguientes mejoras en el marco de WebKit en iOS 10:

  • Se ha agregado compatibilidad con Peek & Pop a la clase WKWebView. Use el método ShouldPreviewElement para determinar si una vista web determinada debe mostrar una vista previa.