Introducción a iOS 8Introduction to iOS 8

Con iOS 8, Apple ha proporcionado una gran cantidad de nuevas plataformas y API para entusiasmar a los desarrolladores. En esta guía se presentarán estas nuevas API y verá cómo iOS 8 puede beneficiar a los desarrolladores y a los usuarios.With iOS 8, Apple has provided a plethora of new frameworks and APIs to excite and delight developers. In this guide we will introduce these new APIs and see how iOS 8 can benefit both developers and users.

iOS 7 ha cambiado visualmente la interfaz de usuario de iOS completa de lo que los usuarios y desarrolladores tuvieron previsto, directamente desde el primer SO de iPhone.iOS 7 visually changed the entire iOS user interface from what users and developers had come to expect, right from the first iPhone OS. IOS 8 continúa con esto proporcionando muchos marcos de trabajo a los desarrolladores, lo que permite a los usuarios controlar casi todos los aspectos de su vida directo desde su iPhone.IOS 8 continues with this by providing many frameworks for developers, which allows users to control almost every aspect of their life straight from their iPhone. Por ejemplo, el mantenimiento y la idoneidad se pueden analizar con HealthKit, los códigos de acceso se obsoleta con autenticación biométrica mediante LocalAuthentication, las extensiones de aplicaciones abren un canal de comunicación entre aplicaciones de terceros y HomeKit permiten la posibilidad de convertir su casa en una casa.For example health and fitness can be analyzed with HealthKit, passcodes are obsolescent with biometric authentication using LocalAuthentication, App extensions open up a communication channel between 3rd party apps, and HomeKit allows the ability to turn your house into a Home of the Future.

Si iOS 7 fuera a la luz de los usuarios, iOS 8 se centra en la imluz de los desarrolladores con una amplia gama de herramientas de Tasty nuevas.If iOS 7 was about delighting users, iOS 8 focuses on delighting developers with a whole range of these tasty new tools.

En esta guía se presentan las nuevas API para desarrolladores de Xamarin. iOS.This guide introduces the new APIs for Xamarin.iOS developers.

También hay algunas API que han quedado en desuso en iOS 8, que se detallan al final de este documento.There are also a few APIs that have been deprecated in iOS 8, which are detailed at the end of this document.

RequisitosRequirements

Los siguientes elementos son necesarios para crear aplicaciones de iOS 8 en Visual Studio para Mac:The following are required to create iOS 8 apps in Visual Studio for Mac:

  • Xcode 7 e iOS 8 o posterior : las API de Xcode y iOS más recientes de Apple deben instalarse y configurarse en el equipo del desarrollador.Xcode 7 and iOS 8 or newer – Apple’s latest Xcode and iOS APIs need to be installed and configured on the developer’s computer.
  • Visual Studio para Mac : la versión más reciente de Visual Studio para Mac debe estar instalada y configurada en el dispositivo del usuario.Visual Studio for Mac – The latest version of Visual Studio for Mac should be installed and configured on the user device.
  • dispositivo o simulador de iOS 8 : un dispositivo iOS que ejecuta la versión más reciente de iOS 8 para realizar pruebas.iOS 8 Device or Simulator – An iOS device running the latest version of iOS 8 for testing.

Hogar y ocioHome and Leisure

iOS 8 ha ayudado a la plantación sólida de Apple y al dispositivo iOS directamente en el corazón de su hogar mediante el uso de HomeKit y HealthKit.iOS 8 has helped to firmly plant Apple, and the iOS device straight into the heart of your home through the use of HomeKit and HealthKit. En esta sección, veremos cómo funcionan ambos marcos de trabajo nuevos y cómo se pueden integrar en la aplicación de Xamarin. iOS.In this section, we will look at how both these new frameworks work, and how they can be integrated into your Xamarin.iOS application.

HomeKitHomeKit

El control de sus dispositivos desde su iPhone no es una nueva aplicación de tecnología; muchos productos conectados-Home pueden controlarse a través de una aplicación iOS.Controlling your appliances from your iPhone is not a new application of technology; many connected-home products can be controlled via an iOS app. Sin embargo, HomeKit ahora lleva un paso más allá mediante la promoción de un protocolo común para dispositivos de automatización de inicio y la disponibilidad de una API pública para determinados fabricantes, como iHome, Philips y Honeywell.However HomeKit now takes this a step further by promoting a common protocol for home automation devices, and by making a public API available to certain manufacturers, such as iHome, Philips and Honeywell. Para el usuario, esto significa que pueden controlar casi todos los aspectos de su hogar sin problemas desde dentro de una aplicación.To the user, this means that they can control almost every aspect of their home seamlessly from inside one application. Es irrelevante que sepan que usan una bombilla de Philips Hue o una alarma anidada.It is irrelevant for them to know they are using a Philips Hue lightbulb, or a Nest alarm. Los usuarios también pueden encadenar varios procesos de inicio inteligente juntos en "escenas".Users can also chain numerous smart home processes together into "Scenes".

Con HomeKit, las aplicaciones de terceros y Siri pueden detectar accesorios y agregarlos a su base de datos de configuración de inicio personal, editarlos y actuar sobre ellos, y comunicarse con los accesorios y sus servicios para realizar una acción.With HomeKit, third-party apps and Siri can discover accessories and add them to their personal home configuration database, edit and act upon this data, and communicate with accessories and their services to perform an action.

ConfiguraciónConfiguration

En el diagrama siguiente se muestra la jerarquía básica de la configuración de HomeKit Accessories:The diagram below shows the basic hierarchy of the configuration of HomeKit accessories:

Para empezar a trabajar con HomeKit, los desarrolladores deberán asegurarse de que el perfil de aprovisionamiento tenga seleccionado el servicio HomeKit.To get started with HomeKit, developers will need to make sure that their provisioning profile has the HomeKit service selected. Apple también ha proporcionado a los desarrolladores un complemento de HomeKit Simulator para Xcode.Apple has also provided developers with a HomeKit simulator add-in for Xcode. Esto se puede encontrar en el Centro para desarrolladores de Apple, en Hardware IO Tools for Xcode.This can be found in the Apple Developer Center, under Hardware IO Tools for Xcode.

Para obtener más información, consulte nuestra guía de HomeKit .For more information, please see our HomeKit guide.

HealthKitHealthKit

HealthKit es un marco de trabajo incluido en iOS 8 que proporciona un almacén de datos centralizado, coordinado y seguro para la información relacionada con el estado.HealthKit is a framework introduced in iOS 8 that provides a centralized, coordinated, and secure datastore for health-related information. El sistema operativo garantiza la privacidad y seguridad de la información de estado y, con la aplicación de mantenimiento, un panel para el usuario.The operating system ensures the privacy and security of health information and, with the Health app, a dashboard for the user. Con el permiso del usuario, las aplicaciones pueden leer y escribir una amplia variedad de información de estado.With the user’s permission, applications can read and write a broad variety of health information.

Para más información sobre cómo usar esto en la aplicación de Xamarin. iOS, consulte la Introducción a la guía de HealthKit.For more information on using this in your Xamarin.iOS app, refer to the Introduction to HealthKit guide.

Extender la funcionalidad de iPhoneExtending iPhone Functionality

Con iOS8, se proporciona a los desarrolladores un mayor control sobre quién puede usar su aplicación y una mayor capacidad para la comunicación más abierta entre aplicaciones de terceros.With iOS8, developers are being given much more control over who can use their app, and increased capability for more open communication between third party apps. Características como extensiones de aplicación y selector de documentos abren un mundo de posibilidades para cómo se pueden usar las aplicaciones en el ecosistema de Apple.Features such as App Extensions and Document Picker open a world of possibilities for how applications can be used in Apple’s ecosystem.

Extensiones de aplicacionesApp Extensions

Las extensiones de aplicación, para simplificar, son una manera de que las aplicaciones de terceros se comuniquen entre sí.App Extensions, to oversimplify, are a way for third party apps to communicate with one another. Para mantener los estándares de alta seguridad y para mantener la integridad de las aplicaciones en espacio aislado, esta comunicación no se produce directamente entre las aplicaciones.To maintain high security standards and to uphold the integrity of the sandboxed apps, this communication doesn’t happen directly between applications. En su lugar, se lleva a cabo mediante una extensión en el centro.Instead, it is carried out by an Extension in the middle.

El primer paso para crear una extensión de aplicación es definir el punto de extensión correcto, lo que es importante para garantizar el comportamiento y la disponibilidad de las API correctas.The first step in creating an App Extension is to define the correct extension point—this is important in ensuring the behavior and availability of the correct APIs. Para crear una extensión de aplicación en Visual Studio para Mac, agréguela a una aplicación existente agregando un nuevo proyecto a la solución.To create an App Extension in Visual Studio for Mac, add it to an existing application by adding a new project to your solution.

En el cuadro de diálogo nuevo proyecto , vaya a C# > iOS > Unified API > extensiones, como se muestra en la siguiente captura de pantalla:In the New Project dialog navigate to C# > iOS > Unified API > Extensions, as illustrated in the screenshot below:

El cuadro de diálogo nuevo proyecto proporciona siete plantillas de proyecto nuevas para crear extensiones de aplicación y se describen a continuación.The New Project dialog provides seven new project templates for creating App Extensions, and are discussed below. Tenga en cuenta que muchas de las extensiones se relacionan con otras API nuevas de iOS, como selector de documentos:Notice that many of the extensions relate to other new APIs in iOS, such as Document Picker:

  • Acción : permite a los desarrolladores crear botones de acción personalizados únicos que permiten a los usuarios realizar ciertas tareas.Action – This allows developers to create unique custom action buttons allowing users to performs certain tasks
  • Teclado personalizado : permite a los desarrolladores agregar a la gama de teclados de Apple integrados mediante la adición de uno personalizado.Custom Keyboard – This allows developers to add to the range of built in Apple Keyboards by adding their own custom one. El teclado popular, Swype, lo usa para traer su teclado a iOS.The popular keyboard, Swype uses this to bring their keyboard to iOS.
  • Selector de documentos : contiene un controlador de vista selector de documentos que permite a los usuarios tener acceso a archivos fuera del espacio aislado de la aplicación.Document Picker – This contains a Document Picker View Controller which allows users to access files outside the application’s sandbox.
  • Proveedor de archivos de selector de documentos : proporciona almacenamiento seguro para los archivos que usan el selector de documentos.Document Picker File Provider – This provides secure storage for files using the Document Picker.
  • Edición de fotografías : expande los filtros y las herramientas de edición que proporciona Apple en la aplicación fotos para ofrecer a los usuarios más control y más opciones al editar sus fotos.Photo Editing – This expands on the filters and editing tools already provided by Apple in the Photos application to give users more control and more options when editing their photos.
  • Hoy en día , esto proporciona a las aplicaciones la capacidad de mostrar widgets en la sección hoy del centro de notificaciones.Today – This gives applications the ability to display widgets in the Today section of Notification Center.

Para obtener más información sobre el uso de extensiones de aplicaciones en Xamarin, consulte la guía Introducción a las extensiones de aplicaciones .For more information on using App Extensions in Xamarin, refer to the Introduction to App Extensions guide.

Touch IDTouch ID

Touch ID se incorporó en iOS 7 como medio para autenticar al usuario, similar a un código de acceso.Touch ID was introduced in iOS 7 as a means of authenticating the user—similar to a passcode. Sin embargo, se limitó a desbloquear el dispositivo, usar la tienda de aplicaciones, usar iTunes y autenticar solo la cadena de claves de iCloudHowever, it was limited to unlocking the device, using the App Store, using iTunes, and authenticating the iCloud keychain only

Ahora hay dos maneras de usar Touch ID como mecanismo de autenticación en aplicaciones de iOS 8 mediante la API de autenticación local.There are now two ways to use Touch ID as an authentication mechanism in iOS 8 applications using the Local Authentication API. Actualmente no es posible usar la autenticación local para autenticarse de forma remota.It is currently not possible to use Local Authentication to authenticate remotely.

En primer lugar, ayuda a los servicios de cadena de claves existentes mediante el uso de nuevas listas de claves Access Controls (ACL).Firstly, it aids the existing Keychain services through the use of new Keychain Access Control Lists (ACLs). Los datos de cadena de claves se pueden desbloquear con la autenticación correcta de la huella digital de los usuarios.Keychain data can be unlocked with the successful authentication of a users fingerprint.

En segundo lugar, LocalAuthentication proporciona dos métodos para autenticar la aplicación localmente.Secondly, LocalAuthentication provides two methods to authenticate your application locally. Los desarrolladores deben usar CanEvaluatePolicy para determinar si el dispositivo es capaz de aceptar el ID. de Touch y, a continuación, EvaluatePolicy para iniciar la operación de autenticación.Developers should use CanEvaluatePolicy to determine if the device is capable of accepting Touch ID, and then EvaluatePolicy to start the authentication operation.

Para obtener más información sobre Touch ID e información sobre cómo integrarlo en una aplicación de Xamarin. iOS, consulte Touch ID and facial ID en las guías de Xamarin. iOS .For more information on Touch ID and to learn how to integrate it into a Xamarin.iOS application, see Touch ID and Face ID in Xamarin.iOS guides.

Selector de documentosDocument Picker

El selector de documentos funciona con una unidad de usuarios iCloud para permitir al usuario abrir archivos que se han creado en otra aplicación, importarlos y manipularlos y volver a exportarlos.Document Picker works with a users iCloud drive to allow the user to open files that have been created in a different app, import and manipulate them and export them back out again. Esto crea un flujo de trabajo intuitivo y, por lo tanto, una experiencia mucho mejor para los usuarios.This creates an intuitive workflow, and therefore a much better experience, for users. la sincronización de iCloud lleva un paso más allá: los cambios realizados en una aplicación también se reflejarán de forma coherente en todos los dispositivos.iCloud syncing takes this one step further—any changes made in one application will also be reflect consistently across all your devices.

Para obtener más información sobre el selector de documentos con más detalle y obtener información sobre cómo integrarlo en una aplicación de Xamarin. iOS, consulte la guía de Introducción a selector de documentos .To learn about the Document Picker in more depth, and to learn how to integrate it into a Xamarin.iOS application, refer to the Introduction to The Document Picker guide.

HandoffHandoff

La entrega, que forma parte de la característica de continuidad más grande, lleva un paso más allá de la integración de OS X e iOS.Handoff, which is part of the larger Continuity feature, takes a step further towards integrating OS X and iOS. Esto incluye la eliminación multiplataforma, la capacidad de realizar llamadas de iPhone, SMS en el iPad y Mac y mejoras en el tethering del iPhone.This includes cross-platform AirDrop, the ability to take iPhone calls, SMS on the iPad and Mac, and improvements in tethering from your iPhone.

La entrega funciona con iOS 8 y Yosemite, y requiere que una cuenta de iCloud inicie sesión en todos los dispositivos que quiera usar.Handoff works with iOS 8 and Yosemite, and requires an iCloud account to be logged in to all the different devices you want to use. Debe funcionar con la mayoría de las aplicaciones de Apple preinstaladas, como Safari, iWork, mapas, calendarios y contactos.It should work with most pre-installed Apple apps, including Safari, iWork, Maps, Calendars, and Contacts.

Para obtener más información, consulte nuestra guía de entrega .For more information, please see our Handoff guide.

Guiones gráficos unificadosUnified Storyboards

iOS 8 incluye un nuevo mecanismo más sencillo de usar para crear la interfaz de usuario, el guión gráfico unificado.iOS 8 includes a new simpler to use mechanism for creating the user interface—the unified storyboard. Con un solo guión gráfico para cubrir todos los tamaños de pantalla de hardware diferentes, se pueden crear vistas rápidas y receptivas en un estilo real "diseñar una vez, usar muchos".With a single storyboard to cover all of the different hardware screen sizes, fast and responsive views can be created in a true "design once, use many" style.

Antes de iOS8, los desarrolladores usaban UIInterfaceOrientation para distinguir entre los modos vertical y horizontal, y UIInterfaceIdiom para distinguir entre los dispositivos iOS.Prior to iOS8, developers used UIInterfaceOrientation to distinguish between portrait and landscape modes, and UIInterfaceIdiom to distinguish between iOS devices. En iOS8, ya no es necesario crear guiones gráficos independientes para dispositivos iPhone e iPad; la orientación y el dispositivo se determinan mediante el uso de clases de tamaño.In iOS8 it is no longer necessary to create separate storyboards for iPhone and iPad devices—orientation and device are determined by using Size Classes.

Cada dispositivo se define mediante una clase de tamaño, en el eje vertical y horizontal, y hay dos tipos de clases de tamaño en iOS 8:Every device is defined by a Size Class, in both the vertical and the horizontal axis, and there are two types of size classes in iOS 8:

  • Normal : es para un tamaño de pantalla grande (por ejemplo, un iPad) o un gadget que da la impresión de un gran tamaño (por ejemplo, un UIScrollViewRegular - this is for either a large screen size (such as an iPad) or a gadget that gives the impression of a large size (such as a UIScrollView
  • Compacto : es para dispositivos más pequeños (por ejemplo, el iPhone).Compact - this is for smaller devices (such as the iPhone). Este tamaño tiene en cuenta la orientación del dispositivo.This size takes into account the orientation of the device.

Si se usan juntos los dos conceptos, el resultado es una cuadrícula de 2 x 2 que define los diferentes tamaños posibles que se pueden usar en las distintas orientaciones, como se puede ver en el diagrama siguiente:If the two concepts are used together, the result is a 2 x 2 grid that defines the different possible sizes that can be used in both the differing orientations, as seen in the following diagram:

Para obtener más información sobre las clases de tamaño, consulte la Introducción a los guiones gráficos unificados.For more information about size classes, refer to the Introduction to Unified Storyboards.

Kit fotográficoPhoto Kit

Photo kit es un nuevo marco que permite que las aplicaciones consulten la biblioteca de imágenes del sistema y creen interfaces de usuario personalizadas para ver y modificar su contenido.Photo Kit is a new framework that allows applications to query the system image library and create custom user interfaces to view and modify its contents. Incluye varias clases que representan recursos de imagen y vídeo, así como colecciones de recursos como álbumes y carpetas.It includes a number of classes that represent image and video assets, as well as collections of assets such as albums and folders.

Para obtener más información, consulte nuestra guía de PhotoKit .For more information, please see our PhotoKit guide.

JuegosGames

Kit de escenasScene Kit

El kit de escenas es una API de gráficos de escenas 3D que simplifica el trabajo con gráficos 3D.Scene Kit is a 3D scene graph API that simplifies working with 3D graphics. Se presentó por primera vez en OS X 10,8 y ahora se ha incorporado a iOS 8.It was first introduced in OS X 10.8, and has now come to iOS 8. Con el kit de escenas, crear visualizaciones 3D envolventes y juegos en 3D esporádicos no requiere experiencia en OpenGL.With Scene Kit creating immersive 3D visualizations and casual 3D games does not require expertise in OpenGL. Al basarse en conceptos comunes de los gráficos de escenas, el kit de escenas abstrae las complejidades de OpenGL y OpenGL ES, lo que facilita enormemente la adición de contenido 3D a una aplicación.Building on common scene graph concepts, Scene Kit abstracts away the complexities of OpenGL and OpenGL ES, making it very easy to add 3D content to an application. Sin embargo, si es un experto en OpenGL, el kit de escenas también tiene una gran compatibilidad para la vinculación directa con OpenGL.However, if you are an OpenGL expert, Scene Kit has great support for tying in directly with OpenGL as well. También incluye numerosas características que complementan los gráficos 3D, como la física, y se integran con muchos otros marcos de trabajo de Apple, como la animación básica, la imagen principal y el kit de Sprite.It also includes numerous features that complement 3D graphics, such as physics, and integrates very well with several other Apple frameworks, such as Core Animation, Core Image and Sprite Kit.

Para obtener más información, consulte nuestra documentación de SceneKit .For more information, please see our SceneKit documentation.

Kit de SpriteSprite Kit

El kit de sprites, el marco de juego de 2D de Apple, tiene algunas nuevas características interesantes en iOS 8 y OS X Yosemite.Sprite Kit, the 2D game framework from Apple, has some interesting new features in iOS 8 and OS X Yosemite. Entre ellas se incluyen la integración con el kit de escenas, compatibilidad con el sombreador, iluminación, sombras, restricciones, generación normal de mapas y mejoras físicas.These include integration with Scene Kit, shader support, lighting, shadows, constraints, normal map generation, and physics enhancements. En concreto, las nuevas características de la física hacen que sea muy fácil agregar efectos realistas a un juego.In particular, the new physics features make it very easy to add realistic effects to a game.

Para obtener más información, consulte nuestra documentación de SpriteKit .For more information, please see our SpriteKit documentation.

Otros cambiosOther Changes

Además de los principales cambios en iOS 8 que se han descrito anteriormente, Apple ha actualizado Adicionalmente muchos marcos de trabajo existentes.As well as the major changes in iOS 8 that are described above, Apple has additionally updated many existing frameworks. Estos se detallan a continuación:These are detailed below:

  • Imagen principal : Apple se ha ampliado en su marco de procesamiento de imágenes agregando mejor compatibilidad para la detección de regiones rectangulares y códigos QR dentro de las imágenes.Core Image – Apple has expanded upon its image processing framework by adding better support for the detection of rectangular regions, and QR codes inside images. Mike Bluestein explora esta entrada de blog titulada detección de imágenes en iOS 8Mike Bluestein explores this in his blog post entitled Image Detection in iOS 8

Interfaces API desusadasDeprecated APIs

Con todas las mejoras realizadas en iOS 8, una serie de API han quedado en desuso.With all the improvements made in iOS 8, a number of APIs have deprecated. Algunos de ellos se detallan a continuación.Some of these are detailed below.

  • UIApplication : los métodos y las propiedades que se usan para registrar notificaciones remotas han quedado en desuso.UIApplication – The methods and properties used for registering remote notifications have deprecated. Son registerForRemoteNotificationTypes y enabledRemoteNotificationTypes.These are registerForRemoteNotificationTypes and enabledRemoteNotificationTypes.

  • UIViewController : las clases traits y size han reemplazado a los métodos y las propiedades que se usan para describir la orientación de la interfaz.UIViewController – Traits and size classes have replaced the methods and properties used to describe interface orientation. Consulte la Introducción a los guiones gráficos unificados para obtener más información sobre cómo usarlos.Refer to the Introduction to Unified Storyboards for more information on how to use these.

  • UISearchDisplayController : se ha reemplazado por UISearchController en iOS8.UISearchDisplayController – This has been replaced by UISearchController in iOS8.

ResumenSummary

En este artículo se han examinado algunas de las nuevas características introducidas por Apple en iOS 8.In this article we looked at some of the new features introduced by Apple in iOS 8.