Compartir vía


Plataforma Apple (iOS y Mac)

Uso compartido de código

Para los elementos del código que no tienen elementos de interfaz de usuario, la mejor manera de compartir código entre iOS y Mac sigue siendo el uso de bibliotecas de clases portables.

Para el código que tiene que hacer algún trabajo de interfaz de usuario y, sin embargo, desea compartir, debe usar proyectos compartidos que le permiten colocar código para compartir en un solo proyecto y tenerlo compilado con Mac e iOS cuando se hace referencia.

Unified API

Unified API para proyectos de iOS y Mac usa los mismos espacios de nombres para los marcos de trabajo para que se pueda usar el mismo archivo de código en ambas plataformas, para un uso compartido de código sin problemas. También permite compilaciones de 32 y 64 bits. Unified API ha sido el valor predeterminado de la plantilla desde principios de 2015 y se recomienda para todos los proyectos nuevos: solo se pueden enviar proyectos de Unified API a App Store.

API clásicas

Nota:

Desuso del perfil clásico: a medida que se agregan nuevas plataformas en Xamarin.iOS, estamos empezando a dejar de usar gradualmente las características del perfil clásico (monotouch.dll). Por ejemplo, se quitó la opción que no es NRC (new-ref-count). NRC siempre se ha habilitado para todas las aplicaciones unificadas (es decir, que no es NRC nunca era una opción) y no tiene ningún problema conocido. Las versiones futuras quitarán la opción de usar Boehm como recolector de elementos no utilizados. Esta también era una opción que nunca estaba disponible para las aplicaciones unificadas. La eliminación completa del soporte técnico clásico está programada para otoño de 2016 con el lanzamiento de Xamarin.iOS 10.0.

Las API de Xamarin.iOS y Xamarin.Mac originales (no unificadas) dificultaban el uso compartido de código porque los marcos nativos tenían prefijos de espacio de nombres MonoTouch. o MonoMac.. Proporcionamos algunos espacios de nombres vacíos que permiten a los desarrolladores compartir código agregando instrucciones using que hacen referencia a espacios de nombres MonoMac y MonoTouch en el mismo archivo, pero esto era un poco feo. La API clásica solo debe seguir usándose en aplicaciones heredadas que se distribuyen internamente (se recomienda actualizar a Unified API).

Actualización del modelo clásico al Unified API

Hay instrucciones detalladas para actualizar cualquier aplicación del modelo clásico al Unified API.

Enlace de bibliotecas de Objective-C

Xamarin le permite traer bibliotecas nativas a las aplicaciones con enlaces. En esta sección se explica cómo:

  • cómo funcionan los enlaces,
  • cómo compilar manualmente un proyecto de enlace que le permite incorporar código Objective-C a Xamarin y
  • cómo usar nuestra herramienta Objective Sharpie para ayudar a automatizar el proceso.

Referencias nativas

Tipos nativos de Mac/iOS

Para admitir código de 32 y 64 bits de forma transparente desde C# y F#, estamos introduciendo nuevos tipos de datos. Puede encontrar más información sobre ellas aquí.

Creación de aplicaciones de 32 y 64 bits

Lo que necesita saber para admitir aplicaciones de 32 y 64 bits.

Trabajo con tipos nativos en aplicaciones multiplataforma

En este artículo se describe el uso de los nuevos tipos nativos de Unified API de iOS (nint, nuint, nfloat) en una aplicación multiplataforma en la que el código se comparte con dispositivos que no son iOS, como sistemas operativos Android o Windows Phone. Proporciona información sobre cuándo se deben usar los tipos nativos y proporciona varias soluciones posibles a los casos en los que el nuevo tipo debe usarse con código multiplataforma.

Selector de pila HttpClient e implementación de SSL/TLS

El nuevo selector de pila HttpClient controla qué implementación de HttpClient se va a usar en la aplicación Xamarin.iOS, Xamarin.tvOS y Xamarin.Mac. Ahora puede cambiar a una implementación que use los transportes nativos de iOS, tvOS o OS X (NSUrlSession o CFNetwork según el sistema operativo).

SSL (Capa de socket seguro) y su sucesor, TLS (seguridad de la capa de transporte), proporcionan compatibilidad con HTTP y otras conexiones de red a través de System.Net.Security.SslStream. La nueva opción de compilación de implementación de SSL/TLS cambia entre la propia pila TLS de Mono y otra con tecnología de la pila TLS de Apple presente en Mac e iOS.