Introducción a iOS 9Introduction to 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.This article introduces all of the new and modified APIs and features available in iOS 9 for Xamarin.iOS developers.

Apple ha agregado varias API y servicios nuevos en iOS 9 junto con muchas mejoras en las características existentes.Apple has added several new APIs and services in iOS 9 along with many enhancements to existing features.

Entrada táctil 3D3D Touch

Como novedad de iOS 9 y iPhone 6S y iPhone 6S Plus, 3D Touch agrega gestos sensibles a la presión a las aplicaciones de iOS.New to iOS 9 and the iPhone 6s and iPhone 6s Plus, 3D Touch adds pressure sensitive gestures to your iOS apps. Con el toque 3D, una aplicación de iPhone ahora no solo puede indicar que el usuario está tocando la pantalla del dispositivo, sino también la cantidad de presión que el usuario está ejerciendo y responder a los diferentes niveles de presión.With 3D Touch, an iPhone app is now able to not only tell that the user is touching the device's screen, it can also sense how much pressure the user is exerting and respond to the different pressure levels.

en 3D Touch se proporcionan las siguientes características a la aplicación:3D Touch provides the following features to your app:

  • Sensibilidad a la presión: ahora, las aplicaciones pueden medir el grado de dificultad o luz que el usuario toca con la pantalla y aprovechar esa información.Pressure Sensitivity - Apps can now measure how hard or light the user is touching the screen and take advantage of that information. Por ejemplo, una aplicación de dibujo puede hacer que una línea sea más gruesa o más delgada en función de cómo toque el usuario a la pantalla.For example, a painting app can make a line thicker or thinner based on how hard the user is touching the screen.
  • PEEK y pop : la aplicación ahora puede permitir que el usuario interactúe con sus datos sin tener que navegar fuera de su contexto actual.Peek and Pop - Your app can now let the user interact with its data without having to navigate out of their current context. Al presionar el dedo en la pantalla, pueden inspeccionarse en el elemento que le interesan (por ejemplo, al obtener una vista previa de un mensaje).By pressing hard on the screen, they can Peek at the item they are interested in (like previewing a message). Al presionar más duro, pueden entrar en el elemento.By pressing harder, they can Pop into the item.
  • Acciones rápidas : Piense en acciones rápidas como los menús contextuales que se pueden desplegar cuando un usuario hace clic con el botón derecho en un elemento de una aplicación de escritorio.Quick Actions - Think of Quick Actions like the contextual menus that can be popped-up when a user right-clicks on an item in a desktop app. Con las acciones rápidas, puede agregar accesos directos comunes y rápidos y fáciles de acceder a las funciones de la aplicación desde el icono de la pantalla principal del dispositivo iOS.Using Quick Actions, you can add common, quick and easy to access shortcuts to functions in your app from the Home screen icon on the iOS device.

Para obtener más información, consulte nuestra Introducción a la guía táctil 3D .To find out more, please see our Introduction to 3D Touch guide.

Seguridad de transporte de aplicaciónApp Transport Security

Como novedad de iOS 9, la seguridad de transporte de aplicaciones (ATS) exige conexiones seguras entre recursos de Internet (como el servidor back-end de la aplicación) y la aplicación.New to iOS 9, App Transport Security (ATS) enforces secure connections between internet resources (such as the app's back-end server) and your app. ATS garantiza que todas las comunicaciones de Internet se ajusten a los procedimientos recomendados de conexión segura, lo que evita la divulgación accidental de información confidencial, ya sea directamente a través de la aplicación o de una biblioteca que consume.ATS ensures that all internet communications conform to secure connection best practices, thereby preventing accidental disclosure of sensitive information either directly through your app or a library that it is consuming.

Dado que 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.Since ATS is enabled by default in apps built for iOS 9 and OS X 10.11 (El Capitan), all connections using NSUrlConnection, CFUrl or NSUrlSession will be subject to ATS security requirements. Si las conexiones no cumplen estos requisitos, se producirá un error con una excepción.If your connections do not meet these requirement, they will fail with an exception.

Para obtener más información sobre ATS, consulte nuestra guía de seguridad de transporte de aplicaciones .To find out more about ATS, please see our App Transport Security guide.

Multitarea para iPadMultitasking for iPad

Con iOS 9, Apple ha agregado compatibilidad con la multitarea para ejecutar dos aplicaciones al mismo tiempo en hardware de iPad específico.With iOS 9, Apple has added multitasking support for running two apps at the same time on specific iPad hardware. Como resultado, las aplicaciones de Xamarin. iOS ya no suponen que se trata de 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.As a result, your Xamarin.iOS apps can no longer assume that they are the only app running at any given time or that they have access to the full screen or resources of the device.

La multitarea se admite a través de las siguientes características:Multitasking for iPad is supported via the following features:

  • Deslizar sobre : permite al usuario ejecutar temporalmente una segunda aplicación iOS en un panel deslizante (en el lado derecho o izquierdo de la pantalla en función de la dirección del idioma) que cubre aproximadamente el 25% de la aplicación principal que se está ejecutando actualmente.Slide Over - Allows the user to temporarily run a second iOS app in a slide out panel (either on the right or left side of the screen based on language direction) that covers approximately 25% of the main app currently running. La diapositiva solo está disponible en un iPad Pro, iPad Air, iPad Air 2, iPad mini 2, iPad mini 3 o iPad Mini 4.Slide Over is available only on an iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3, or iPad Mini 4.
  • Vista en dos paneles : en el hardware de iPad compatible (solo iPad Air 2, iPad Mini 4 y iPad Pro), el usuario puede elegir una segunda aplicación y ejecutarla en paralelo con la aplicación que se está ejecutando en el modo de pantalla dividida.Split View - On supported iPad hardware (iPad Air 2, iPad Mini 4 and iPad Pro only), the user can pick a second app and run it side-by-side with the currently running app in a split screen mode. El usuario puede controlar el porcentaje de la pantalla principal que ocupa cada aplicación.The user can control the percentage of the main screen that each app occupies.
  • Imagen : para las aplicaciones que reproducen el contenido de vídeo, el vídeo ahora se puede reproducir en una ventana móvil y de tamaño variable que flota por las demás aplicaciones que se ejecutan actualmente en el dispositivo iOS.Picture in Picture - For apps that playback video content, the video can now be played in a moveable and resizable window that floats over the other apps currently running on the iOS device. El usuario tiene control total sobre el tamaño y la posición de esta ventana.The user has full control over the size and position of this window. Imagen en imagen solo está disponible en un iPad Pro, iPad Air, iPad Air 2, iPad mini 2, iPad mini 3 o iPad Mini 4.Picture in Picture is available only on an iPad Pro, iPad Air, iPad Air 2, iPad Mini 2, iPad Mini 3, or iPad Mini 4.

Para obtener más información acerca de las nuevas capacidades de multitarea de iOS 9, consulte la guía de multitarea para iPad .To find out more about the new multitasking abilities of iOS 9, please see our Multitasking for iPad guide.

Marcos de interfaz de usuario nuevos contactos y contactosNew Contacts and Contacts UI Frameworks

Con la introducción de iOS 9, Apple ha lanzado dos nuevos marcos de trabajo, contactos y ContactsUI, que reemplazan los marcos de interfaz de usuario de la libreta de direcciones y la libreta de direcciones existentes usados por iOS 8 y versiones anteriores.With the introduction of iOS 9, Apple has released two new frameworks, Contacts and ContactsUI, that replace the existing Address Book and Address Book UI frameworks used by iOS 8 and prior.

Estos nuevos marcos orientados a objetos proporcionan lo siguiente:These new, object-oriented frameworks provide the following:

  • Contactos : proporciona acceso de Xamarin. iOS a la información de contacto del usuario.Contacts – Provides Xamarin.iOS access to the user's contact information. Dado que la mayoría de las aplicaciones solo requieren acceso de solo lectura, este marco de trabajo se ha optimizado para el acceso seguro para subprocesos y de solo lectura.Because most apps only require read-only access, this framework has been optimized for thread safe, read-only access.
  • ContactsUI : proporciona elementos de interfaz de usuario de Xamarin. iOS para mostrar, editar, seleccionar y crear contactos en dispositivos iOS.ContactsUI – Provides Xamarin.iOS UI elements to display, edit, select and create contacts on iOS devices.

Para obtener más información, consulte nuestra documentación de la interfaz de usuario de contactos y contactos .For more information, see our Contacts and Contacts UI documentation.

Nuevas API de búsquedaNew Search APIs

La búsqueda se ha ampliado en iOS 9 para proporcionar nuevas formas de acceder a la información dentro de la aplicación de Xamarin. iOS.Search has been expanded in iOS 9 to provide great new ways to access information inside of your Xamarin.iOS app. Con las nuevas API de búsqueda, puede realizar búsquedas en el contenido de la aplicación a través de los resultados de búsqueda de Spotlight y de Safari, los recordatorios y las sugerencias de entrega y Siri.Using the new Search APIs, you can make your app's content searchable through Spotlight and Safari search results, Handoff and Siri Reminders and Suggestions. Esto permite a los usuarios acceder rápidamente a las actividades y la información en la aplicación.This allows users quick access to activities and information deep within your app.

Además, las nuevas API de búsqueda facilitan la integración de la búsqueda en la aplicación sin una experiencia de implementación de búsqueda anterior.Additionally, the new Search APIs make it easier to integrate search in your app without prior search implementation experience. Por este motivo, Apple notifica que normalmente tarda unas horas en hacer que el contenido de una aplicación de iOS 9 se pueda buscar de forma universal mediante la búsqueda de aplicaciones.Because of this, Apple claims that it typically takes a few hours to make an iOS 9 app's content universally searchable using App Search.

Para obtener más información, consulte nuestra documentación sobre mejoras de búsqueda .For more information, please see our Search Enhancements documentation.

Nueva vista de pilaNew Stack View

El control de vista de pila (UIStackView aprovecha la eficacia de las clases de diseño y tamaño automáticos para administrar una pila de subvistas (ya sea horizontal o verticalmente) que responde dinámicamente a la orientación y el tamaño de la pantalla del dispositivo iOS.The Stack View control (UIStackView leverages the power of Auto Layout and Size Classes to manage a stack of subviews (either horizontally or vertically) that dynamically responds to the iOS device's orientation and screen size.

Con el control de vista de pila, se reduce considerablemente la cantidad de trabajo necesaria para diseñar una interfaz de usuario.By using Stack View control, the amount of work required to layout a user interface is greatly reduced. 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.The layout of all subviews attached to a Stack View are managed automatically based on developer defined properties such as axis, distribution, alignment and spacing.

Para obtener más información, consulte nuestra Introducción a la documentación de la vista de pila.For more information, please see our Introduction to Stack View documentation.

Cambios en la vista de colecciónCollection View Changes

En iOS 9, la vista de colección (UICollectionView ahora permite arrastrar la reordenación de los elementos de forma predeterminada agregando un nuevo reconocedor de gestos predeterminado y varios métodos de compatibilidad nuevos.In iOS 9, the Collection View (UICollectionView now supports drag reordering of items out of the box by adding a new default gesture recognizer and several new supporting methods.

Con estos nuevos métodos, puede implementar fácilmente arrastrar y reordenar en la vista de colección y tener la opción de personalizar la apariencia de los elementos durante cualquier fase del proceso de reordenación.Using these new methods, you can easily implement drag-to-reorder in your Collection View and have the option of customizing the items appearance during any stage of the reordering process.

Para obtener más información sobre los cambios de la vista de recopilación para iOS 9, consulte nuestra guía de cambios en la vista de recopilación .To find out more about the Collection View changes for iOS 9, please see our Collection View Changes guide.

Mejoras en los juegosGame Enhancements

Con iOS 9, Apple ha realizado varias mejoras tecnológicas en las API de juegos que facilitan la implementación de gráficos de juegos y audio en la aplicación de Xamarin. iOS.With iOS 9, Apple has made several technological improvements to the Gaming APIs that make it easier to implement game graphics and audio in your Xamarin.iOS app. Entre ellas se incluyen la facilidad de desarrollo a través de los marcos de trabajo de alto nivel y el aprovechamiento de la capacidad de la GPU del dispositivo iOS para mejorar la velocidad y las capacidades gráficas con mejoras de bajo nivel.These include both ease of development through high-level frameworks and harnessing the power of the iOS device's GPU for improved speed and graphic abilities with low-level enhancements.

Esto incluye GameplayKit, ReplayKit, e/s de modelo, MetalKit y los sombreadores de rendimiento de metal junto con las nuevas características mejoradas de metal, SceneKit y SpriteKit.This includes GameplayKit, ReplayKit, Model I/O, MetalKit and Metal Performance Shaders along with new, enhanced features of Metal, SceneKit and SpriteKit.

Para obtener más información, consulte la documentación sobre mejoras de juegos .For more information, please see our Game Enhancements documentation.

Cambios de HomeKit FrameworkHomeKit Framework Changes

El marco de trabajo de HomeKit , introducido en iOS 8, proporciona la capacidad de configurar y controlar varios accesorios habilitados para HomeKit (por ejemplo, luces automatizadas, bloqueos de puertas y aperturas de puertas de garaje) desde una aplicación de Xamarin. iOS.The HomeKit framework, introduced in iOS 8, provides the ability to setup and control various HomeKit enabled accessories (such as automated lights, door locks and garage door openers) from a Xamarin.iOS app. Además de ser fácil de instalar y configurar, los accesorios de HomeKit se pueden controlar a través de comandos Siri orales.In addition to being easy to setup and configure, HomeKit accessories can be controlled via spoken Siri commands.

En iOS 9, Apple ha facilitado la instalación, amplió los tipos de accesorios admitidos y proporcionó más interacciones de accesorios (por ejemplo, el control de un accesorio de forma remota a través de iCloud).In iOS 9, Apple has made setup easier, expanded the types of accessories supported and provided more accessory interactions (such as controlling an accessory remotely via iCloud).

Para obtener más información, consulte nuestra Introducción a HomeKit, aplicación de ejemplo de HomeKitIntro iOS y documentación de HomeKit de Apple.For more information, see our Introduction to HomeKit, HomeKitIntro iOS Sample App and Apple's HomeKit documentation.

Cambios en el marco de entregaHandoff Framework Changes

Apple incorporó la entrega (también conocida como continuidad) en iOS 8 y OS X Yosemite (10,10) como una manera para que el usuario inicie una actividad en uno de sus dispositivos (iOS o Mac) y continúe esa misma actividad en otro de sus dispositivos (tal y como se identifica en el iClou del usuario). Cuenta d).Handoff (also known as Continuity) was introduced by Apple in iOS 8 and OS X Yosemite (10.10) as a way for the user to start an activity on one of their devices (either iOS or Mac) and continue that same activity on another of their devices (as identified by the user's iCloud Account).

La entrega se amplió en iOS 9 para admitir también nuevas funcionalidades de búsqueda mejoradas.Handoff was expanded in iOS 9 to also support new, enhanced Search capabilities. Para obtener más información, consulte nuestra documentación sobre mejoras de búsqueda .For more information, please see our Search Enhancements documentation. Para obtener más información sobre el uso de la entrega, consulte nuestra Introducción a la documentación de la entrega.For more information on using Handoff, please see our Introduction to Handoff documentation.

Nuevos puntos de extensiónNew Extension Points

En iOS 8, Apple presentó las extensiones: las bibliotecas que presenta el sistema operativo en contextos estándar, como en el centro de notificaciones, cuando el usuario solicita un teclado o cuando edita una foto.In iOS 8, Apple introduced Extensions — libraries that are presented by the operating system in standard contexts, such as within the Notification Center, when the user requests a keyboard, or when they are editing a photo.

Con iOS 9, Apple amplía la compatibilidad con las extensiones al proporcionar varios puntos de extensión nuevos que definen las directivas de uso y proporcionan las API para trabajar en un área determinada de la manera siguiente:With iOS 9, Apple is extending Extension support by providing several new Extension Points that define usage policies and provide APIs for working within a given area as follows:

  • Nuevo punto de extensión de unidad de audio : Use este punto de extensión para proporcionar efectos de audio, instrumentos musicales, generadores de sonido, etc., para su uso en otras aplicaciones de host de unidad de audio (como GarageBand).New Audio Unit Extension Point – Use this Extension Point to provide audio effects, musical instruments, sound generators, etc. for use within other Audio Unit host apps (such as GarageBand). Este punto de extensión también le permite vender unidades de audio (complementos de audio) en la tienda de aplicaciones.This Extension Point also allows you to sell Audio Units (audio plug-ins) on the App Store.
  • Nuevo punto de extensión de mantenimiento de índices : Use este punto de extensión para admitir la reindexación de datos de aplicaciones sin necesidad de volver a iniciar la aplicación.New Index Maintenance Extension Point — Use this Extension Point to support reindexing of app data without requiring an app relaunch.
  • Nuevos puntos de extensión de red (estos requieren permisos especiales de Apple):New Network Extension Points (these require special permission from Apple):
    • Extensión de proveedor de proxy de aplicación : Use este punto de extensión para implementar un proxy de red transparente personalizado del lado cliente.App Proxy Provider Extension — Use this Extension Point to implement a custom transparent client-side network proxy.
    • Extensión de proveedor de datos de filtro o de proveedor de control de filtros : Use estos puntos de extensión para implementar el filtrado de contenido de red dinámico en el dispositivo.Filter Data Provider / Filter Control Provider Extension - Use these Extension Points to implement dynamic network content filtering on-device.
    • Extensión de proveedor de túnel de paquetes : Use este punto de extensión para implementar un cliente del Protocolo de túnel VPN personalizado.Packet Tunnel Provider Extension — Use this Extension Point to implement a custom VPN tunneling protocol client-side.
  • Nuevos puntos de extensión de Safari:New Safari Extension Points:
    • 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 Explore la Web.Content Blocking Extension — Use this Extension Point to define a list of blocked content that will not be displayed when the user is browsing the 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.Shared Links Extension — Use this Extension Point to enable viewing of your app's content in Safari's Shared Links.

Para obtener más información, consulte nuestra Introducción a las extensiones y la documentación de la guía de programación de la extensión de aplicaciones de Apple.For more information, please see our Introduction to Extensions and Apple's App Extension Programming Guide documentation.

Mejoras de cadena de clavesKeychain Enhancements

En iOS 9, Apple ha mejorado la cadena de claves para proporcionar un nuevo tipo de clave de cifrado para las opciones Secure enclave y more protección de elementos como se indica a continuación:In iOS 9, Apple has enhanced the Keychain to provide a new encryption key type for the Secure Enclave and more item protection options as follows:

  • Nueva restricción de Touch ID que invalida los elementos de cadena de claves cuando se modifica la base de datos de huellas digitales.A new Touch ID constraint that invalidates Keychain items when the fingerprint database is modified.
  • Nuevas restricciones que permiten crear Access Control lista de entradas solo con Touch ID o el código de acceso.New constraints that allow creating Access Control List entries with Touch ID or Passcode only.
  • Nuevo contexto de autenticación que permite invocar la autenticación independiente de las llamadas SecItem.A new authentication context that allows you to invoke authentication separate from SecItem calls.
  • Access Control enumeración entropía (mediante la opción de contraseña de aplicación) para el cifrado de elementos de cadena de claves proporcionado por la aplicación.Access Control List entropy (using the Application Password option) for app-provided keychain item encryption.
  • Compatibilidad para generar y usar claves dentro del enclave seguro (a través del atributo kSecAttrTokenIDSecureEnclave).Support for generating and using keys inside the secure enclave (via the kSecAttrTokenIDSecureEnclave attribute).

Para obtener más información, consulte Touch ID and facial ID en Xamarin. iOS.For more information, please see Touch ID and Face ID in Xamarin.iOS.

Compatibilidad con idiomas de derecha a izquierdaRight-to-Left Language Support

En iOS 9, Apple ha facilitado la presentación de una interfaz de usuario volteada con más facilidad que nunca, ya que proporciona compatibilidad total con los idiomas de derecha a izquierda.In iOS 9, Apple has made presenting a flipped user interface easier than ever by providing full support for right-to-left languages. Entre estas estructuras se incluyen las siguientes:This includes the following:

  • Los controles estándar de UIKit se voltearán de derecha a izquierda en función de la configuración regional y de idioma de los dispositivos iOS.Standard UIKit controls will automatically flip right-to-left based on the iOS devices locale and language settings.
  • La clase UIView proporciona atributos que permiten definir cómo debe aparecer una vista determinada cuando se voltea de derecha a izquierda.The UIView class provides attributes that allow you to define how a given view should appear when flipped right-to-left.
  • La capacidad de voltear una imagen mediante programación usando la propiedad FlipsForRightToLeftLayoutDirection de la clase UIImage .The ability to flip an image programmatically by using the FlipsForRightToLeftLayoutDirection property of the UIImage class.

Para obtener más información, consulte la documentación del soporte técnico de Apple de derecha a izquierda .For more information, please see Apple's Supporting Right-to-Left Languages documentation.

Cambios adicionales en el marco de trabajoAdditional Framework Changes

Además de los cambios más importantes que se han descrito anteriormente, Apple ha realizado modificaciones y mejoras en varios marcos de trabajo existentes para iOS 9, entre los que se incluyen los siguientes:In addition to the major changes that we have covered above, Apple has made modifications and improvements to several existing frameworks for iOS 9 including the following:

  • Marco de trabajo de AV FoundationAV Foundation Framework
  • Marco de AVKitAVKit Framework
  • Marco de CloudKitCloudKit Framework
  • Marco de trabajoFoundation Framework
  • Marco de entregaHandoff Framework
  • Marco de HealthKitHealthKit Framework
  • Marco de HomeKitHomeKit Framework
  • Marco de autenticación localLocal Authentication Framework
  • Marco de MapKitMapKit Framework
  • Marco de PassKitPassKit Framework
  • Marco de servicios SafariSafari Services Framework
  • Marco de UIKitUIKit Framework

Para obtener más información, consulte la documentación adicional sobre los cambios en el marco de iOS 9 .For more information, please see our Additional iOS 9 Framework Changes documentation.

Funciones y API en desusoDeprecated APIs and Functions

Apple ha dejado de usar las siguientes API y funciones en iOS 9:Apple has deprecated the following APIs and functions in iOS 9:

  • Libreta de direcciones & interfaz de usuario de la libreta de direcciones: estas API se han sustituido por los marcos de IU Contact y Contact UI.Address Book & Address Book UI - These APIs have been replaced by the Contact and Contact UI frameworks. Para obtener más información, consulte nuestra documentación de la interfaz de usuario de contactos y contactos .For more information, see our Contacts and Contacts UI documentation.
  • CBCentralManager : se han quitado los métodos RetrievePeripherals y RetrieveConnectedPeripherals de la clase CBCentralManager en iOS 9.CBCentralManager - The RetrievePeripherals and RetrieveConnectedPeripherals methods of the CBCentralManager class have been removed in iOS 9. Llamar a estos métodos hará que una aplicación se bloquee al emparejar un accesorio o el inicio de la aplicación.Calling these methods will cause an app to crash when pairing an accessory or on app launch.
  • FetchAllChanges : se devolvió la FetchAllChanges de la clase CKFetchRecordChangesOperation y se quitará en iOS 9.FetchAllChanges - The FetchAllChanges of the CKFetchRecordChangesOperation class was depreciated and will be removed in iOS 9.
  • Media Player : el marco de Media Player está en desuso en iOS 9.Media Player - The Media Player framework has been deprecated in iOS 9. En su lugar, use las API AVKit o AV Foundation.Use either AVKit or AV Foundation APIs instead.

Para obtener una lista completa de las desuso específicas de la API, consulte la documentación de diferencias de la API de iOS 9,0 de Apple.For a complete list of specific API deprecations, see Apple's iOS 9.0 API Diffs documentation.

Aplicaciones de ejemplo de iOS 9iOS 9 Sample Apps

Tenemos algunas muestras específicas de iOS 9 para empezar:We have some iOS 9-specific samples to get started:

Consulte también las partes de iOS de estos ejemplos (Companion Mac OS X versiones disponibles):Also check out the iOS portions of these samples (companion Mac OS X versions coming!):