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
NSPersistenceContainer
para hacer referencia aNSPersistentStoreCoordinator
, 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
oFilterWithImageURL
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 objetosUIImageView
. - Los objetos
UIImage
etiquetados como de gama amplia se representarán como colores de gama amplia en objetosUIImageView
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
yHKWeatherConditionCloudy
) y tipos de entrenamiento (comoHKWorkoutActivityTypeFlexibility
yHKWorkoutActivityTypeWheelchairRunPace
). - 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
yLocationType
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:
- Utilice las clases RPScreenRecorder, RPBroadcastActivityViewController y RPBroadcastController para admitir la transmisión de medios grabados a través de sitios de terceros.
- Las extensiones Broadcast UI y Broadcast Upload son necesarias para admitir los servicios de transmisión de terceros de ReplayKit en la aplicación.
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
yRoughness
). - 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
ySCNDisableWideGamut
enInfo.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
ySKTileSet
. - 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 propiedadIndexDisplayMode
para controlar cómo se muestra el índice mientras el usuario se desplaza como unUIScrollViewIndexDisplayMode
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
yUIPreviewInteractionDelegate
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
yUIAccessibilityAssistiveTouchStatusDidChangeNotification
para determinar si AssistiveTouch está habilitado. - Utilice los símbolos
UIAccessibilityHearingDevicePairedEar
yUIAccessibilityHearingDevicePairedEarDidChangeNotification
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 claseUIFont
. - Para decidir si un elemento debe actualizar su fuente cuando cambie
UIContentSizeCategory
del dispositivo, utilice la propiedadAdjustsFontForContentSizeCategory
del delegadoUIContentSizeCategoryAdjusting
. - El método
OpenURL
de la claseUIApplication
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
yUICloudSharingControllerDelegate
. - Aproveche las celdas capturadas previamente para mejorar la experiencia de desplazamiento de
UICollectionViews
con el nuevo delegadoUICollectionViewDataSourcePrefetching
. - 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étodoShouldPreviewElement
para determinar si una vista web determinada debe mostrar una vista previa.