¿Cómo funciona Xamarin?

Incluso Windows está escrito con c / c ++ (kernel.dll, win32.dll). Entonces, ¿cómo funciona la aplicación .net con el sistema operativo Windows? A través del sistema PInvoke, para los desarrolladores de Java, esto sería JNI (Java Native Interface). PInvoke no solo se usa para comunicarse con el sistema operativo Windows, sino que se usa comúnmente para bibliotecas de números como PJSIP (implementación de pila SIP-VoIP), OpenCV (visión por computadora), OpenEars (voz a texto), etc.
Algunas API win32.dll están expuestas en BCL (.net base Class Libraries), por lo que los desarrolladores de Microsoft hicieron PInvoke por nosotros, pero a veces debe hacerlo usted mismo.

  1. Lea los archivos de encabezado * h / * hpp / * h ++ para asignar la API de c / c ++ a C # (cálculo de referencias)
  2. compile (compilación cruzada) * .c / *. cpp / *. c ++ archivos para objetar archivos y vincularlos a bibliotecas estáticas (iOS) o dinámicas (Android)
  3. incrustar bibliotecas de 2. en el proyecto .net
  4. generar envoltorio c # para exponer el mundo # 2 a c #

Esto se llama enlace (o envoltura, puente) nativo de c / c ++.

Ahora Xamarin es gratuito y de código abierto pronto, por lo que podemos dar un poco más de detalles sobre la tecnología.

Lo que el equipo de Xamarin tuvo que hacer es vincular (hacer los enlaces) a los archivos jar de Java (paso 2) y las bibliotecas estáticas de Object-c de iOS (* .a) que son ligeramente diferentes de c / c ++ (recuerde que el objetivo-c es un superconjunto de c: las herramientas son muy parecidas).

Este paso – los enlaces incluyeron varias herramientas (por plataforma) y mucho conocimiento de la plataforma.

Intente vincular cualquier biblioteca / marco de Android o iOS. Esto es lo que hizo el equipo de Xamarin, pero para las bibliotecas del sistema operativo.

Si tiene problemas para encontrar la biblioteca. Ping me tengo mucho en mi lista. Trabajo en el equipo de componentes de Xamarin

Xamarin es multiplataforma porque utiliza un lenguaje (C #) que puede compilarse en el código nativo (en términos generales) de varias arquitecturas de destino diferentes, e incluye interfaces con Android, iOS y otras plataformas.

No es tan diferente de por qué un programa escrito en C o C ++ (o cualquiera de una docena de otros lenguajes compilados) puede compilarse para ejecutarse en múltiples plataformas (incluidos Android e iOS, a pesar de los idiomas nativos).

Xamarin va más allá de C o C ++ al permitir que los desarrolladores creen código de manera multiplataforma al agregar interfaces directas entre C # y las API nativas. También agregan su propia capa de biblioteca que le permite crear componentes de interfaz de usuario multiplataforma. Si está utilizando C o C ++ en Android o iOS, normalmente tiene que pasar por Java u Objective-C para hablar con las API nativas, respectivamente. (Con algunas excepciones).

Xamarin es una empresa propiedad de Microsoft. Con una base de código compartida C #, los desarrolladores pueden usar las herramientas de Xamarin para escribir aplicaciones nativas de Android, iOS y Windows con interfaces de usuario nativas y compartir código en múltiples plataformas, incluyendo Windows y macOS. Xamarin creó Mono, Mono para Android y MonoTouch, que son implementaciones multiplataforma de la Infraestructura de lenguaje común (CLI) y las Especificaciones de lenguaje común (Microsoft .NET).

Xamarin ofrece dos productos comerciales: Xamarin.iOS y Xamarin.Android. Ambos están construidos sobre Mono. En iOS, el compilador anticipado de Xamarin (AOT) compila las aplicaciones Xamarin.iOS directamente en el código de ensamblaje ARM nativo. En Android, el compilador de Xamarin se compila en lenguaje intermedio, que luego se compila Just-in-Time (JIT) en ensamblado nativo cuando se inicia la aplicación. En ambos casos, las aplicaciones de Xamarin utilizan un tiempo de ejecución que maneja automáticamente cosas como la asignación de memoria, la recolección de basura, etc.

Consulte http://blog.ifourtechnolab.com/c … para obtener más información sobre Xamarin y tecnologías de aplicaciones móviles similares.

Las tecnologías móviles están abriendo el camino a innumerables oportunidades para las empresas que buscan agilizar sus procesos de línea de negocios o interactuar con más clientes. El mercado móvil está despegando tan rápido que las empresas no solo preguntan si deberían invertir en aplicaciones móviles, sino que ya están tratando de encontrar formas de acelerar sus ciclos de desarrollo para que siempre puedan salir con nuevas y mejores aplicaciones. El problema es que cualquiera que intente crear una aplicación que involucre a una variedad de usuarios tiene que descubrir cómo manejar la diversidad de dispositivos móviles en el mercado

Contrata a los desarrolladores de xamarin para crear aplicaciones nativas para dispositivos Apple, Android y Windows con un solo lenguaje, C # y un único IDE, ya sea Visual Studio o Xamarin Studio.

Cualquiera que sea el IDE que utilice, tendrá todos los kits de desarrollo de software (SDK) asociados no solo con la plataforma Windows (C # y Visual Studio son herramientas de Windows) sino también con Android y Apple. Entonces, en lugar de tener que dominar todos los idiomas, puede crear aplicaciones móviles nativas para múltiples tipos de dispositivos usando solo uno.

Todo comienza con C #, pero Xamarin traduce (o compila) toda la codificación para que funcione en las otras plataformas de dispositivos. – Xamarin.iOS realiza una compilación completa de Ahead of Time (AOT) para producir un binario ARM que sea compatible con la App Store de Apple. – Xamarin.Android utiliza la compilación Just in Time (JIT) para dispositivos Android.

Xamarin conecta todas las bibliotecas de Android (Java) e iOS (objetivo C) en C # y escribimos aplicaciones móviles con esas bibliotecas.

Cuando se compila el proyecto Xamarin, las llamadas a la biblioteca se reemplazan por las API nativas reales de la plataforma y se pasan a su compilador de plataforma correspondiente (Android SDK o iOS XCode) para hacer una compilación.

Xamarin es multiplataforma por su capacidad de crear aplicaciones para diferentes plataformas (Windows, Android e iOS) que tienen una mayoría de código igual para las 3 aplicaciones de plataforma.

Con Xamarin, uno puede desarrollar aplicaciones que mantengan la lógica de negocios (alrededor del 60-70% del código) de la aplicación para las 3 plataformas y que tengan que trabajar solo en la interfaz de usuario para las diferentes plataformas. ¿Por qué la interfaz de usuario? – Bueno, es mejor dar una apariencia nativa en lugar de tener la misma sensación en todas las plataformas.

Escribir aplicaciones para varias plataformas con solo C # y con muy poco o ningún conocimiento sobre otros lenguajes de plataforma como java u objetivo C es la mayor fortaleza de Xamarin.

Prueba este curso completo: