Recuerde: mucho ha cambiado desde hoy 31/03/2016
Xamarin es una empresa detrás del proyecto mono y más. El proyecto Mono es una implementación .net en plataformas que no son de Windows. Xamarin ahora es propiedad de Microsoft.
mono framework consta de (como .net framework):
- ¿Por qué las aplicaciones móviles no son tan completas como los sitios web?
- ¿Cuáles son los mejores frameworks de C ++ para desarrollar aplicaciones y juegos en Android?
- ¿Qué tan difícil es para un programador hacerse cargo del mantenimiento y desarrollo de una aplicación que originalmente fue codificada por otra persona?
- ¿Qué llevaré para estudiar primero? Mi pasión es hacer negocios creando aplicaciones móviles.
- ¿Puedes hacer una aplicación móvil con Haskell?
- tiempo de ejecución mono (CLR Common Language Runtime ~ JVM)
- Bibliotecas de clase base de BCL .net (conjunto de bibliotecas administradas Langugage de infraestructura común CIL) para cadena, archivo IO, red, … lo que sea
- conjunto de utilidades de línea de comandos (compiladores, enlazadores, firma de código, generadores de proxy de jabón …)
- IDE llamado MonoDevelop – Visual Studio en Linux y MacOSX
Entonces, las cosas anteriores son como .net y estas cosas fueron de código abierto bajo GPL, hoy MIT.
En los últimos 5-6 años, el equipo de Xamarin creó tiempo de ejecución modificado y herramientas para iOS y Android que se integraron en MonoDevelop y este IDE se llamaba Xamarin.Studio. Las herramientas se aprovechan en iOS y Android toolchain, lo que utilizan Object-C / Swift y los desarrolladores de Android.
Para iOS, se agregó el concepto de AoT (compilación anticipada) porque iOS (Apple) no permitía el código interpretado (VM como JVM). AoT es equivalente a ART (tiempo de ejecución avanzado en ANdroid) donde el bytecode (dex) se precompila durante la compilación en nativo y no se interpreta en Dalvik VM (JVM).
Bridge es solo una nomenclatura: esta es una capa delgada (en términos de Xamarin, enlaces) que permite llamadas de C # a c / c ++ / objectivo-c / java, capa de interoperabilidad. En java esto se llama JNI y en .net PInvoke. Nada nuevo. Las herramientas y la base de conocimiento y la sinergia del equipo lo hicieron posible.
¿Es marco? Sí.
¿Es compilador? Sí. Conjunto de compiladores.
¿Es traductor de código? Jein (Ja und nein en alemán) tiene algunas herramientas que hacen algo similar, pero no es AST to AST traductor (transpiler).
Podría ir más profundo, pero esto es suficiente para empezar.