Introducción a iOS 9

En este artículo se presentan todas las API y características nuevas y modificadas disponibles en iOS 9 para desarrolladores de Xamarin.iOS.

The iOS 9 logo

Apple ha agregado varias API y servicios en iOS 9 junto con muchas mejoras de las características existentes.

Entrada táctil 3D

Una novedad de iOS 9 e iPhone 6 e iPhone 6 Plus, 3D son los gestos sensibles a la presión 3D Touch para las aplicaciones iOS. Con 3D Touch, una aplicación de iPhone ahora no solo puede saber que el usuario toca la pantalla del dispositivo, sino que también puede saber cuánta presión ejercer el usuario y responder a los distintos niveles de presión.

3D Touch proporciona las siguientes características a la aplicación:

  • Sensibilidad a la presión: las aplicaciones ahora pueden medir la fuerza con la que el usuario toca la pantalla y aprovechar esa información. Por ejemplo, una aplicación de dibujo puede hacer que una línea sea más gruesa o más fina en función de la fuerza con la que el usuario toca la pantalla.
  • Peek and Pop: ahora la aplicación puede permitir que el usuario interactúe con sus datos sin tener que navegar fuera de su contexto actual. Al presionar con firmeza en la pantalla, pueden ver (Peek) el elemento en que le interesa (similar a obtener una vista previa de un mensaje). Al presionar con más fuerza, pueden entrar (Pop) en el elemento.
  • Acciones rápidas: imagine que Acciones rápidas son como los menús contextuales que aparecen cuando un usuario hace clic con el botón derecho en un elemento de una aplicación de escritorio. Con Acciones rápidas, puede agregar accesos directos comunes, rápidos y fáciles de acceder a las funciones de la aplicación desde el icono de la pantalla Inicio del dispositivo iOS.

Para más información, vea nuestra guía Introducción a 3D Touch.

Seguridad de transporte de aplicación

Como novedad de iOS 9, App Transport Security (ATS) aplica conexiones seguras entre los recursos de Internet (como el servidor de back-end de la aplicación) y la aplicación. ATS garantiza que todas las comunicaciones de Internet se ajustan a los procedimientos recomendados de conexión segura, lo que evita la divulgación accidental de información confidencial directamente desde la aplicación o desde una biblioteca que consuma.

Como ATS está habilitado de forma predeterminada en las aplicaciones compiladas para iOS 9 y OS X 10.11 (El Capitan), todas las conexiones que usan NSUrlConnection, CFUrl o NSUrlSession estarán sujetas a los requisitos de seguridad de ATS. Si las conexiones no cumplen estos requisitos, se producirá un error con una excepción.

Para más información sobre ATS, vea nuestra guía Seguridad de transporte de aplicaciones.

Multitarea para iPad

Con iOS 9, Apple ha agregado compatibilidad multitarea para ejecutar dos aplicaciones al mismo tiempo en hardware específico de iPad. Como resultado, las aplicaciones de Xamarin.iOS ya no pueden suponer que son la única aplicación que se ejecuta en un momento dado o que tienen acceso a la pantalla completa o a los recursos del dispositivo.

La multitarea para iPad se admite mediante las siguientes características:

  • Deslizar: permite al usuario ejecutar temporalmente una segunda aplicación de iOS en un panel deslizante (ya sea en el lado derecho o izquierdo de la pantalla, en función de la dirección del idioma) que abarca aproximadamente el 25 % de la aplicación principal actualmente en ejecución. Deslizar solo está disponible en iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 o iPad Mini 4.
  • Vista dividida: solo en hardware de iPad compatible (iPad Air 2, iPad Mini 4 e iPad Pro) el usuario puede elegir una segunda aplicación y ejecutarla en paralelo con la aplicación actualmente en ejecución en un modo de pantalla dividida. El usuario puede controlar el porcentaje de la pantalla principal que ocupa cada aplicación.
  • Imagen dentro de imagen: en el caso de las aplicaciones que reproducen contenido de vídeo, el vídeo ahora se puede reproducir en una ventana móvil y que se puede cambiar tamaño que flota sobre las demás aplicaciones que se ejecutan actualmente en el dispositivo iOS. El usuario tiene control total sobre el tamaño y la posición de esta ventana. Imagen dentro de imagen solo está disponible en iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3 o iPad Mini 4.

Para más información sobre las nuevas funcionalidades multitarea de iOS 9, vea nuestra guía Multitarea para iPad.

Nuevos marcos Contacts y ContactsUI

Con la introducción de iOS 9, Apple ha lanzado dos marcos nuevos, Contacts y ContactsUI, que reemplazan los marcos de interfaz de usuario de libreta de direcciones y libreta de direcciones existentes usados en iOS 8 y versiones anteriores.

Estos nuevos marcos orientados a objetos proporcionan lo siguiente:

  • Contactos: proporciona a Xamarin.iOS acceso a la información de contacto del usuario. Como la mayoría de las aplicaciones solo necesitan acceso de solo lectura, este marco se ha optimizado para el acceso seguro para subprocesos y de solo lectura.
  • ContactsUI: proporciona elementos de la interfaz de usuario de Xamarin.iOS para mostrar, editar, seleccionar y crear contactos en dispositivos iOS.

Para más información, vea la documentación sobre Contactos y la interfaz de usuario de Contactos.

Nuevas API de búsqueda

La búsqueda se ha ampliado en iOS 9 para proporcionar nuevas formas excelentes de acceder a la información dentro de la aplicación de Xamarin.iOS. Con las nuevas API de búsqueda, puede hacer que el contenido de la aplicación se pueda buscar desde los resultados de la búsqueda de Spotlight y Safari, recordatorios y sugerencias de Siri, y Handoff. Esto permite a los usuarios acceder rápidamente a actividades e información almacenadas de forma profunda dentro de la aplicación.

Además, las nuevas API de búsqueda facilitan la integración de la búsqueda en la aplicación sin experiencia de implementación de búsqueda previa. Por este motivo, Apple afirma que normalmente se tarda unas horas en hacer que el contenido de una aplicación de iOS 9 se pueda buscar universalmente mediante Buscar aplicación.

Para más información, vea la documentación sobre Mejoras de búsqueda.

Nueva Vista de pila

El control Vista de pila (UIStackView) aprovecha la eficacia de las clases de diseño automático y tamaño para administrar una pila de subvistas (ya sea de forma horizontal o vertical) que responde dinámicamente a la orientación y el tamaño de pantalla del dispositivo iOS.

Al usar el control Vista de pila, se reduce considerablemente la cantidad de trabajo necesario para el diseño de una interfaz de usuario. El diseño de todas las subvistas adjuntas a una vista de pila se administra automáticamente en función de las propiedades definidas por el desarrollador, como el eje, la distribución, la alineación y el espaciado.

Para más información, consulte la documentaciónIntroducción a la vista de pila.

Cambios en la vista de colección

En iOS 9, la vista de colección (UICollectionView) ahora admite la reordenación de elementos de serie mediante la adición de un nuevo reconocedor de gestos predeterminado y varios métodos auxiliares.

Con estos nuevos métodos, puede implementar fácilmente la acción de arrastrar para reordenar en la vista de colección y tiene la opción de personalizar la apariencia de los elementos durante cualquier fase del proceso de reordenación.

Para más información sobre los cambios de la vista de colección para iOS 9, vea la guía Cambios en la vista de colección.

Mejoras en los juegos

Con iOS 9, Apple ha realizado varias mejoras tecnológicas en las API de juegos que facilitan la implementación de gráficos y audio de juegos en la aplicación Xamarin.iOS. Entre ellas se incluye la facilidad de desarrollo mediante marcos generales y el aprovechamiento de la potencia de la GPU del dispositivo iOS para mejorar la velocidad y las capacidades gráficas con mejoras de bajo nivel.

Esto incluye GameplayKit, ReplayKit, Model I/O, MetalKit y Metal Performance Shaders, junto con nuevas características mejoradas de Metal, SceneKit y SpriteKit.

Para más información, vea la documentación sobre Mejoras de los juegos.

Cambios en el marco HomeKit

El marco HomeKit, introducido en iOS 8, ofrece la capacidad de configurar y controlar varios accesorios habilitados para HomeKit (como luces automatizadas, bloqueos de puerta y aperturas de puertas de garaje) desde una aplicación de Xamarin.iOS. Además de ser fáciles de instalar y configurar, los accesorios de HomeKit se pueden controlar mediante comandos de Siri hablados.

En iOS 9, Apple ha facilitado la configuración, ha ampliado los tipos de accesorios admitidos y ha proporcionado más interacciones de accesorios (por ejemplo, el control remoto de un accesorio desde iCloud).

Para más información, vea la documentación Introducción a HomeKit, Aplicación de ejemplo de iOS HomeKitIntro y HomeKit de Apple.

Cambios en el marco Handoff

Apple introdujo Handoff (también conocido como Continuidad) en iOS 8 y OS X Yosemite (10.10) como una manera de que el usuario inicie una actividad en uno de sus dispositivos (ya sea iOS o Mac) y continúe con esa misma actividad en otro de sus dispositivos (según la identificación por la cuenta de iCloud del usuario).

Handoff se ha expandido en iOS 9 para admitir también nuevas funcionalidades de búsqueda mejoradas. Para más información, vea la documentación sobre Mejoras de búsqueda. Para más información sobre el uso de Handoff, vea la documentación Introducción a Handoff.

Nuevos puntos de extensión

En iOS 8, Apple introdujo extensiones: bibliotecas que presenta el sistema operativo en contextos estándar, como dentro del Centro de notificaciones, cuando el usuario solicita un teclado o cuando edita una foto.

Con iOS 9, Apple amplía la compatibilidad con las extensiones y ofrece varios puntos de extensión nuevos que definen directivas de uso y proporcionan API para trabajar en un área determinada de la siguiente manera:

  • Nuevo punto de extensión de Audio Unit: use este punto de extensión para proporcionar efectos de audio, instrumentos musicales, generadores de sonido, etc., para su uso en otras aplicaciones host de Audio Unit (como GarageBand). Este punto de extensión también permite vender Audio Units (complementos de audio) en App Store.
  • Nuevo punto de extensión de mantenimiento de índices: use este punto de extensión para admitir la reindexación de los datos de la aplicación sin necesidad de volver a iniciar una aplicación.
  • Nuevos puntos de extensión de red (necesitan permiso especial de Apple):
    • Extensión del proveedor de proxy de aplicación: use este punto de extensión para implementar un proxy de red transparente del lado cliente personalizado.
    • Filtrar proveedor de datos o Filtrar extensión del proveedor de control: use estos puntos de extensión para implementar el filtrado dinámico de contenido de red en el dispositivo.
    • Extensión del proveedor de túnel de paquetes: use este punto de extensión para implementar un protocolo de túnel VPN personalizado del lado cliente.
  • Nuevos puntos de extensión de Safari:
    • Extensión de bloqueo de contenido: use este punto de extensión para definir una lista de contenido bloqueado que no se mostrará cuando el usuario navegue por la web.
    • Extensión de vínculos compartidos: use este punto de extensión para habilitar la visualización del contenido de la aplicación en los vínculos compartidos de Safari.

Para más información, vea la documentación Introducción a las extensiones y la Guía de programación de extensiones de aplicaciones de Apple.

Mejoras de Acceso a Llaveros

En iOS 9, Apple ha mejorado Acceso a Llaveros para proporcionar un nuevo tipo de clave de cifrado para el enclave seguro y más opciones de protección de elementos como se muestra a continuación:

  • Nueva restricción de Touch ID que invalida los elementos de Acceso a Llaveros cuando se modifica la base de datos de huellas digitales.
  • Nuevas restricciones que permiten crear listas de control de acceso solo con Touch ID o Código de acceso.
  • Nuevo contexto de autenticación que permite invocar la autenticación independiente de las llamadas a SecItem.
  • Entropía de lista de control de acceso (mediante la opción Contraseña de aplicación) para el cifrado de elementos de Acceso a Llaveros proporcionados por la aplicación.
  • Compatibilidad con la generación y el uso de claves dentro del enclave seguro (mediante el atributo kSecAttrTokenIDSecureEnclave).

Para más información, vea Touch ID y Face ID en Xamarin.iOS.

Compatibilidad con idiomas de derecha a izquierda

En iOS 9, Apple ha hecho que la presentación de una interfaz de usuario volteada sea más fácil que nunca al proporcionar compatibilidad total con idiomas de derecha a izquierda. Entre estas estructuras se incluyen las siguientes:

  • Los controles UIKit estándar se voltearán automáticamente de derecha a izquierda en función de la configuración regional y del idioma de los dispositivos iOS.
  • La clase UIView proporciona atributos que permiten definir cómo debe aparecer una vista determinada cuando se voltea de derecha a izquierda.
  • La capacidad de voltear una imagen mediante programación con la propiedad FlipsForRightToLeftLayoutDirection de la clase UIImage.

Para más información, vea la documentación sobre Compatibilidad con idiomas de derecha a izquierda de Apple.

Cambios de marco adicionales

Además de los principales cambios descritos anteriormente, Apple ha realizado modificaciones y mejoras en varios marcos existentes para iOS 9, incluidos los siguientes:

  • Marco AV Foundation
  • Marco AVKit
  • Marco CloudKit
  • Marco Foundation
  • Marco Handoff
  • Marco HealthKit
  • Marco HomeKit
  • Marco de autenticación local
  • Marco MapKit
  • Marco PassKit
  • Marco de servicios de Safari
  • Marco UIKit

Para más información, vea la documentación sobre Cambios adicionales de marco en iOS 9.

API y funciones en desuso

Apple ha dejado en desuso las siguientes API y funciones en iOS 9:

  • Libreta de direcciones e interfaz de usuario de libreta de direcciones: estas API se han reemplazado por los marcos Contacto e interfaz de usuario de contacto. Para más información, vea la documentación sobre Contactos y la interfaz de usuario de Contactos.
  • CBCentralManager: The los métodos RetrievePeripherals y RetrieveConnectedPeripherals de la clase CBCentralManager se han quitado en iOS 9. La llamada a estos métodos hará que una aplicación se bloquea al emparejarse con un accesorios o al iniciarse.
  • FetchAllChanges: el valor FetchAllChanges de la clase CKFetchRecordChangesOperation ha quedado en desuso y se quitará en iOS 9.
  • Reproductor multimedia: el marco de Reproductor multimedia ha quedado en desuso en iOS 9. En su lugar, use las API AVKit o AV Foundation.

Para obtener una lista completa de las API específicas en desuso, vea la documentación Diferencias de API de iOS 9.0 de Apple.

Aplicaciones de ejemplo de iOS 9

Hay algunos ejemplos específicos de iOS 9 para empezar:

Consulte también las partes de iOS de estos ejemplos (próximamente se incluirán versiones complementarias de Mac OS X):