Introducción a iOS 10

Con el nuevo SDK de iOS 10, Apple ha incluido nuevas API y servicios que permiten al desarrollador crear nuevas categorías de aplicaciones y características. Una aplicación de iOS ahora puede ampliar las aplicaciones Messages, Siri, Phone y Maps para proporcionar una funcionalidad enriquecida y atractiva al usuario final que anteriormente no estaba disponible.

Para obtener más información sobre iOS 10, consulte la documentación de iOS + Apps de Apple.

Novedades de iOS 10

Apple ha agregado varias nuevas API y servicios en iOS 10 junto con muchas mejoras en las características existentes, entre las que se incluyen:

Adaptación a True Tone Display

La tecnología True Tone Display de Apple usa el sensor de luz ambiente en un dispositivo iOS para ajustar dinámicamente el color y la intensidad de la pantalla para que coincidan con las condiciones de iluminación actuales. iOS 10 proporciona la nueva clave UIWhitePointAdaptivityStyle que se puede agregar al archivo Info.plist de la aplicación y controla cómo True Tone aplica el cambio de color estándar.

Los siguientes valores están disponibles:

  • UIWhitePointAdaptivityStyleStandardValor predeterminado: use la adaptación estándar de punto blanco.
  • UIWhitePointAdaptivityStyleReading: se usa para aplicaciones centradas en la lectura.
  • UIWhitePointAdaptivityStyleGame: se usa para aplicaciones centradas en el juego.
  • UIWhitePointAdaptivityStyleVideo: se usa para aplicaciones centradas en vídeo.
  • UIWhitePointAdaptivityStylePhoto: se usa para aplicaciones centradas en la fotografía en las que la fidelidad de color es más importante que los ajustes ambientales de punto blanco.

Extensiones de aplicación

Apple ha proporcionado varios nuevos puntos de extensión de aplicación en iOS 10:

  • Directorio de llamadas
  • Interfaz de usuario de intenciones e intenciones
  • Mensajes
  • Contenido de las notificaciones
  • Notification Services
  • Paquete de pegatinas

Además, las extensiones de aplicación de teclado de terceros tienen las siguientes mejoras:

  • La nueva propiedad DocumentInputMode de la clase UITextDocumentProxy puede determinar el idioma de entrada de un documento y permitir que la extensión de teclado se alinee con ese idioma.
  • El nuevo método HandleInputModeList permite que la extensión del teclado muestre el menú del selector de teclado del sistema en respuesta a la tecla Globe que se pulsa.

Para obtener más información, consulta nuestra Introducción a extensiones, Integración de aplicaciones de mensajes, Introducción a sugerencias proactivas, Introducción a SiriKit, Introducción a las notificaciones de usuario y Guía de programación de extensiones de aplicaciones de Apple.

Mejoras en las búsquedas de aplicaciones

Core Spotlight en iOS 10 proporciona varias mejoras en la búsqueda de aplicaciones, como:

  • Popularidad de vínculos profundos de crowdsourced (con privacidad diferencial): proporciona una manera de promover el contenido de la aplicación vinculada profunda en los resultados de búsqueda.
  • Búsqueda en la aplicación: use la nueva CSSearchQuery clase para proporcionar la capacidad de búsqueda de Spotlight en la aplicación similar a cómo funcionan las aplicaciones Mail, Messages y Notes.
  • Continuación de búsqueda: permite que un usuario inicie una búsqueda en Spotlight o Safari, abra una aplicación y continúe con esa búsqueda.
  • Visualización de los resultados de validación: la herramienta de validación App Search API de Apple ahora muestra una representación visual del marcado y la vinculación profunda de un sitio web al realizar pruebas previas.
  • Uso compartido de imágenes de aplicación de mensajes: Permite que las imágenes en la aplicación populares proporcionadas para compartir en mensajes (a través de una extensión de aplicación de mensajes) aparezcan en las búsquedas de Contenido destacado.

Para obtener más información, vea nuestra guía de Mejoras de búsqueda de aplicaciones.

Mejoras de Apple Pay

Apple ha realizado varias mejoras en Apple Pay en iOS 10 que permiten al usuario realizar pagos seguros de sitios web y a través de la interacción con Siri y Maps.

Con iOS 10, se han agregado varias API nuevas que funcionan con iOS y watchOS para admitir redes de pago dinámicas y un nuevo entorno de prueba de espacio aislado.

Además, el marco PassKit se ha ampliado para admitir Apple Pay fuera de UIKit y para permitir que los emisores de tarjetas presenten sus tarjetas desde sus aplicaciones.

Para obtener más información, consulte nuestra guía de mejoras de Apple Pay.

Iconos de aplicación alternativos

Apple ha agregado varias mejoras a iOS 10.3 que permiten a una aplicación administrar su icono:

  • ApplicationIconBadgeNumber: obtiene o establece el distintivo del icono de la aplicación en Springboard.
  • SupportsAlternateIcons: si es true, la aplicación tiene un conjunto alternativo de iconos.
  • AlternateIconName: devuelve el nombre del icono alternativo seleccionado actualmente o null si se usa el icono principal.
  • SetAlternameIconName: use este método para cambiar el icono de la aplicación al icono alternativo especificado.

Para obtener más información, consulte nuestra guía de iconos de aplicaciones alternativos.

Introducción a CallKit

La nueva API CallKit en iOS 10 proporciona una manera de integrar aplicaciones VOIP con la interfaz de usuario de iPhone y proporcionar una interfaz y experiencia conocidas al usuario final. Con esta API, los usuarios pueden ver e interactuar con las llamadas VOIP desde la pantalla de bloqueo del dispositivo iOS y administrar contactos mediante el favoritos de la aplicación Phone y vistas recientes.

Además, CallKit API proporciona la capacidad de crear extensiones de aplicación que pueden asociar un número de teléfono con un nombre (identificador de llamador) o indicar al sistema cuándo se debe bloquear un número (bloqueo de llamadas).

Para obtener más información, consulte nuestra guía de Introducción a Callkit.

Integración de aplicaciones de mensajes

iOS 10 permite la inclusión de una extensión de aplicación de mensajes en la solución Xamarin.iOS que se integra con la aplicación Mensajes y presenta una nueva funcionalidad al usuario. La extensión puede enviar texto, pegatinas, archivos multimedia y mensajes interactivos. Hay dos tipos de extensión de la aplicación Messages disponibles:

  • Paquetes de pegatinas: contiene una colección de pegatinas que el usuario puede agregar a un mensaje. Los paquetes de pegatinas se pueden crear sin escribir ningún código.
  • Aplicación iMessage: puede presentar una interfaz de usuario personalizada dentro de la aplicación Mensajes para seleccionar pegatinas, escribir texto, incluidos archivos multimedia (con conversiones de tipos opcionales) y crear, editar y enviar mensajes de interacción.

Para obtener más información, consulte nuestra guía de integración de aplicaciones de mensajes.

Mejoras del publicador de noticias

Con iOS 10, Apple permitirá a cualquier persona de las principales revistas y nuevas organizaciones a blogueros e editores independientes suscribirse y productos y entregar contenido a la aplicación Apple News. Para obtener más información, consulte la documentación de Recursos de noticias de Apple.

Provisión de comentarios hápticos

En el iPhone 7 y iPhone 7 Plus, Apple ha incluido nuevas respuestas hápticas que proporcionan formas adicionales de interactuar físicamente con el usuario. Use las nuevas opciones de respuestas táctiles para llamar la atención del usuario y reforzar sus acciones.

Varios elementos integrados de la interfaz de usuario ya proporcionan comentarios hápticos, como selectores, conmutadores y controles deslizantes. iOS 10 ahora agrega la capacidad de desencadenar elementos hápticos mediante programación con una subclase concreta de la clase UIFeedbackGenerator.

Para obtener más información, consulte nuestra guía Provisión de comentarios hápticos.

Sugerencias proactivas

iOS 10 presenta nuevas formas de impulsar la interacción con una aplicación al permitir que el sistema presente de forma proactiva información útil automáticamente al usuario en momentos adecuados. Al igual que iOS 9 proporcionó la capacidad de agregar búsqueda profunda a la aplicación mediante Sugerencias de Spotlight, Handoff y Siri, con iOS 10 una aplicación puede exponer la funcionalidad que el sistema puede presentar al usuario desde las siguientes ubicaciones:

  • El modificador de aplicaciones
  • La pantalla de bloqueo
  • CarPlay
  • Maps
  • Interacciones de Siri
  • Sugerencias de QuickType

Una aplicación expone esta funcionalidad al sistema mediante una colección de tecnologías como NSUserActivity, marcado web, Core Spotlight, MapKit, Media Player y UIKit.

Para obtener más información, consulte nuestra guía de Introducción a sugerencias proactivas.

Solicitud de revisión de aplicaciones

Nuevo en iOS 10.3, el método RequestReview() permite que una aplicación de iOS pida al usuario que la tasa o la revise. Aunque se puede llamar a este método en cualquier momento en el que tenga sentido en la experiencia del usuario, el proceso de revisión se rige y controla mediante la directiva de App Store. Como resultado, este método puede o no mostrar una alerta y nunca debe llamarse en respuesta a una acción del usuario, como pulsar un botón.

Para obtener más información, consulte nuestra guía de Solicitud de revisión de aplicaciones.

Mejoras de seguridad y privacidad

Apple ha realizado varias mejoras en seguridad y privacidad en iOS 10 que ayudarán al desarrollador a mejorar la seguridad de sus aplicaciones y garantizar la privacidad del usuario final.

Como resultado, las aplicaciones que se ejecutan en iOS 10 (o posterior) deben declarar estáticamente su intención de acceder a características específicas o información del usuario escribiendo una o varias claves específicas de privacidad en sus archivos de Info.plist que explican al usuario por qué la aplicación quiere obtener acceso.

Para obtener más información, consulte nuestra guía de Mejoras de seguridad y privacidad.

SiriKit

Novedad de iOS 10, SiriKit permite que una aplicación de Xamarin.iOS proporcione servicios accesibles para el usuario mediante Siri en un dispositivo iOS. Esta funcionalidad se proporciona en una o varias extensiones de aplicación con los nuevos marcos de Intenciones y UI de intenciones.

SiriKit admite los siguientes dominios de servicio:

  • Llamadas de audio o vídeo.
  • Reservar un viaje.
  • Administrar entrenamientos.
  • Mensajería.
  • Buscar fotos.
  • Enviar o recibir pagos.

Cuando el usuario realiza una solicitud de Siri que implica uno de los servicios de la extensión de aplicación, SiriKit envía a la extensión un objeto Intent que describe la solicitud del usuario junto con los datos auxiliares. A continuación, la extensión de aplicación genera el objeto Response adecuado para el Intent dado, que detalla cómo la extensión puede controlar la solicitud.

Aunque Siri normalmente controla toda la interacción del usuario, la extensión de la aplicación puede usar el marco de interfaz de usuario de la intención para presentar una interfaz de usuario completa y personalizada con la personalización de marca y la información adicional de la aplicación.

Para obtener más información, consulte nuestra guía de Introducción a SiriKit.

Reconocimiento de voz

iOS 10 incluye una nueva API de voz que permite a la aplicación admitir el reconocimiento continuo de voz y transcribir la voz (de secuencias de audio en directo o grabadas) en texto.

Dado que el reconocimiento de voz requiere la transmisión y el almacenamiento temporal de datos en los servidores de Apple, la aplicación debe solicitar el permiso del usuario para realizar el reconocimiento mediante la inclusión de la clave NSSpeechRecognitionUsageDescription en su archivo Info.plist y la llamada al método SFSpeechRecognizer.RequestAutorization.

Para obtener más información, consulte nuestra guía de Introducción al reconocimiento de voz.

Notificaciones de usuario

Novedades de iOS 10, el marco de notificaciones de usuario permite la entrega y el control de notificaciones locales y remotas. Con este marco, la aplicación o la extensión de aplicación pueden programar la entrega de notificaciones locales especificando un conjunto de condiciones, como la ubicación o la hora del día.

Además, la aplicación o la extensión pueden recibir (y potencialmente modificar) notificaciones locales y remotas cuando se entregan al dispositivo iOS del usuario.

El nuevo marco de interfaz de usuario de notificación de usuario permite a la aplicación o extensión de aplicación personalizar la apariencia de las notificaciones locales y remotas cuando se presentan al usuario.

Para obtener más información, consulte nuestra guía de Marco de notificaciones de usuario.

Cuenta de suscriptor de vídeo

Como novedad de iOS 10, el marco de la cuenta de suscriptor de vídeo permite que las aplicaciones que admiten streaming autenticado o vídeo a petición se autentiquen con su proveedor de televisión por cable o satélite mediante una experiencia de inicio de sesión único para el usuario final.

Color amplio

iOS 10 extiende la compatibilidad con formatos de píxeles de rango extendido y espacios de color de gama ancha en todo el sistema, incluidos marcos como Core Graphics, Core Image, Metal y AVFoundation. La compatibilidad con dispositivos con pantallas de color ancho se facilita aún más al proporcionar este comportamiento a lo largo de toda la pila de gráficos.

Además, UIKit se ha modificado para trabajar en el nuevo espacio de colores extendido sRGB, lo que facilita la combinación de colores en amplias gamas de colores sin una pérdida significativa de rendimiento.

Apple ofrece los siguientes procedimientos recomendados al trabajar con colores amplios:

  • UIColor ahora usa el espacio de colores sRGB y ya no fijará los valores del 0.0 en el intervalo 1.0. Si la aplicación se basa en el comportamiento anterior de fijación, deberá modificarse para iOS 10.
  • El entorno de dibujo se configurará para el espacio de colores sRGB al realizar el dibujo de UIView personalizado en un iPad Pro.
  • Si la aplicación realiza una representación personalizada de UIImages, use la nueva clase UIGraphicsImageRender para especificar el uso de los formatos de intervalo extendido o de intervalo estándar.
  • Cuando se usa una API de bajo nivel, como Core Graphics o Metal para proporcionar procesamiento de imágenes, el desarrollador debe usar un espacio de colores de intervalo extendido y un formato de píxel que admita valores de punto flotante de 16 bits. Cuando sea necesario, el desarrollador tendrá que fijar manualmente los valores de los componentes de color.
  • Los gráficos principales, los sombreadores de rendimiento de imagen principal y metal proporcionan nuevos métodos para convertir entre los dos espacios de color.

Para más información, vea nuestra guía Introducción a Wide Color.

Mejoras de widget

Apple ha introducido varias mejoras en el sistema de widgets para asegurarse de que los widgets tienen un aspecto excelente en cualquier fondo que exista en la nueva pantalla de bloqueo de iOS 10. La propiedad NotificationCenterVibrancyEffect está en desuso y se ha reemplazado por las nuevas propiedades WidgetPrimaryVibrancyEffect o WidgetSecondaryVibrancyEffect. Además, los widgets ahora contienen una propiedad NCWidgetDisplayMode que permite al desarrollador describir la cantidad de contenido disponible y permite al usuario expandir y contraer el contenido.

Para obtener más información, consulte nuestra guía de mejoras de widgets de búsqueda y pantalla principal.

Cambios de marco adicionales

Además de los principales cambios y adiciones del marco enumerados anteriormente, Apple ha realizado muchos cambios de marco menores adicionales en iOS 10.

Para obtener más información, consulte nuestra guía de cambios adicionales del marco.

Interfaces API desusadas

Las siguientes API han quedado en desuso en iOS 10:

  • Las clases CKDiscoverAllContactsOperation, CKDiscoveredUserInfo, CKDiscoverUserInfosOperation y CKFetchRecordChangesOperation han quedado en desuso en CloudKit para iOS 10. Use las clases CKDiscoverAllUserIdentitiesOperation, CKUserIdentity y CKFetchRecordZoneChangesOperation (que admiten el uso compartido de registros) en su lugar.
  • Varias API de CKSubscription (como suscripciones basadas en zonas y basadas en consultas) han quedado en desuso. Use las API CKRecordZoneSubscription y CKQuerySubscription en su lugar.
  • Los símbolos NSPersistentStoreCoordinator relacionados con el contenido omnipresente han quedado en desuso.
  • ADBannerView, ADInterstitialAd y los símbolos relacionados de la clase UIViewController han quedado en desuso.
  • Los símbolos SKUniform relacionados con los valores de punto flotante han quedado en desuso.
  • Las clases UILocalNotification, UIMutableUserNotificationAction, UIMutableUserNotificationCategory, UIUserNotificationAction, UIUserNotificationCategory y UIUserNotificationSettings de UIKit han quedado en desuso. Use el marco de notificaciones de usuario en su lugar.
  • Los métodos HandleActionForLocalNotification, HandleActionForRemoteNotification, DidReceiveLocalNotification y DidReceiveRemoteNotification de WatchKit han quedado en desuso. Use los métodos HandleActionForNotification y DidReceiveNotification en su lugar.
  • Los métodos DidReceiveLocalNotification y DidReceiveRemoteNotification de WKExtensionDelegate han quedado en desuso. Cree una instancia de UNUserNotificationCenterDelegate que implemente los métodos adecuados y asígnelo a la propiedad Delegate del objeto UNUserNotificationCenter.
  • 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.

Consulte la documentación de diferencias de API de iOS 9.3 a iOS 10.0 de Apple para obtener una lista completa de desusos.