You are on page 1of 3
Desarrollando aplicaciones nativas para Android con CH acceder a los componentes desarrollados en .NET que ejecutan en Mono, Gracias a esta coexistencia, aplicaciones nativas desarrolladas en Java pueden interactuar con las desarrolladas en .NET de manera natural a nivel de API Mono [x9 Dalvik Linux Kernel FIGURA 1 ARQUITECTURA DE MONO FOR ANDROID. TOMADO DEL SITIO DE XAMARIN. De manera experimental, Xamarin porté el cédigo de Android, de Java a Cf, eliminando la dependencia con Dalvik y logrando un Android 100% en Cit (proyecto XobotOS). Como resultado se obtuvo un incremento notable en el rendimiento del sistema. Este resultado se le atribuye a caracteristicas Unicas que tiene la plataforma .NET con respecto a Java, tales como la genericidad real, el uso de structs y las lamadas P/Invoke. La herramienta de conversion de cédigo de Java a Ci, desarrollada por Xamarin para este experimento, le permite a esta compafia ‘mejorar Mono for Android en tanto se puedan ir eliminando las dependencias con Dalvik posibilitando la ejecucién directa del cédigo sobre el Kernel de Linux. MI PRIMERA APLICACION CON XAMARIN STUDIO 0 VISUAL STUDIO Para empezar a desarrollar aplicaciones para Android tenemos dos posibles entarnos de desarrollo (IDE): © Xamarin Studio 4 ‘+ Visual Studio 2010/2012 Xamarin Studio es una versién personalizada para desarrollo mévil de MonoDevelop, que es el IDE oficial de Mono. Mono for Android, cuenta con una extensién para Visual Studio 2010/2012 que habilita la compilacién y la depuracién de aplicaciones Android. Lo interesante es que el mismo proyecto/solucién sirve tanto en Visual Studio como Kamarin Studio y se puede utilizar indistintamente tanto uno como el otro, ya que MonoDevelop, en el cual se basa Xamarin Studio, utiliza el mismo formato (In y .sproj) que Visual Studio. 3) Pagina DESARROLLANDO APLICACIONES NATIVAS PARA ANDROID CON C# Alejandro Tamayo Castillo RESUMEN fn esta entrega se mostrard la utilizacion de Mono for Android, componente que permite el desarrollo de aplicaciones para Android utilizando Clty Visual Studio, Mono for Android, desarrollado por Xamarin (compania fundada por Miguel de Icaza, patrocinadora de Mono) permite crear, depurar y empaquetar una aplicacién en un pk y utilzarla directamente en un teléfono Android. A diferencia de otros productos, Mono for Android permite €l desarrollo de aplicaciones nativas, significando que se integra al ecosistema Android e interactua con las aplicaciones nativas creadas en Java, utiliza la interfaz (UI) nativa del sistema operativo y sigue el modelo de desarrollo de Android, InTRODUCCION Android es un popular sistema operativo basado en Linux que ejecuta tanto en teléfonos como en tabletas. El kernel, siendo Linux, est desarrollado en C+, pero el corazén de Android es una implementacién de maquina Virtual de Java llamada Dalvik, creada por Google. Por tanto, todas las aplicaciones (Userland) se han venido desarrollando utlizando Java con la ayuda del Android Developer Tools, que es la mezcla de las herramientas de desarrollo de Android (SOK) junto @ una personalizacion del IDE Eclipse. El Android Developer Tools se puede obtener gratuitamente desde http://developer.android,com/tools/ Para desarrallar una aplicacién para Android, se debe conocer, primero, el ecosistema android (arquitectura, restricciones, funcionamiento) y luego se debe saber programar en Java que es el lenguaje de trabajo nativo de la plataforma, Existen otras alternativas para el desarrollo, como PhoneGap (http://phonegap.com/download), que utiizan HTMLS para el disefio de Ia interfaz de usuario (Ul) y JavaScript como lenguaje de desarrollo, pero tienen la desventaja de que al ser aplicaciones HTMLS que ejecutan en un entorno controlado (sandbox), el acceso a las caracteristicas nativas del dispositive es limitado y la experiencia de usuario en cuanto a interfaz (Ui) no es la misma que la de una aplicacién nativa ‘Mono for Android, intenta un acercamiento diferente. Basicamente intenta sustituir Java por CH, dejando el resto de los componentes intactos, de forma tal que la interfaz de usuario (Ul) se disefie de igual manera y la aplicacion desarrollada se integre al ecosistema Android como si fuese desarrollada propiamente en Java. Ademds, las herramientas de desarrollo se integran con Visual Studio, brindandole a un desarrollador .NET, la gran ventaja de desarrollar una aplicacién Android sin salirse del entorno de desarrollo conocido y utiizando el lenguaje C# que domina, Se puede obtener desde http://xamarin.com/download, LA APUESTA POR .NET vy C# Si bien es atractivo programar para Android en Ct, existen tres razones adicionales por lo cual es conveniente apostar por .NET y CH para el desarrollo de aplicaciones méviles: 1. Desarrollo Multiplataforma 2. Reutilizacién de bibliotecas de cédigo existentes 3. Interfaz de usuario nativa y rendimiento nativo Desarrollando aplicaciones nativas para Android con CH EI mercado de dispositivos méviles esté dominado fundamentalmente por tres plataformas: Android de Google, 0S de Apple y Windows Phone de Microsoft, que a pesar de ser minoritario muestra un discreto crecimiento. Para hacer una aplicacién que ejecute en estas plataformas de manera nativa, habria que programar en lenguajes y herramientas de desarrollo diferentes: Java en Android, Objective-C en iOS y Cit en Windows Phone. Para una empresa esto puede significar un reto, ya que tendria que mantener y darle soporte a tres cédigos fuentes diferentes, triplicando los esfuerzos. fs por ello que las alternativas multi-plataforma (como PhoneGap o Appcelerator Titanium) han cobrado fuerza ya que ayudan a abaratar los costos y simplificar el esfuerzo. En el caso de Xamarin, empresa fundada por Miguel de Icaza, se brinda una solucién integral (IDE+Plataforma) que posibilita la creacién de aplicaciones para iS, Android, Mac, Linux y Windows ya que cuenta con versiones de Mono asi come los compiladores y las herramientas de desarrollo necesarias para convertir de CH/.NET al cédigo native que ejecuta en cada una de estas plataformas, Contar con Cit y .NET nos permite reutilizar las bibliotecas de cédigo existentes que se hayan desarrollado previamente (incluso para otras aplicaciones .NET) y explotar los algoritmos escritos en C# por la comunidad. Utiizando Ia caracteristica Portable Class Library (PCL) de .NET, es posible incluso desarrollar la logica de la aplicacion una sola ver y desarrollar para cada plataforma slo el cédigo especfico que se requiera. De esta forma se simplifica el mantenimiento de la aplicacién Al obtener un resultado que compila directamente e interactua con las caracteristicas nativas del dispositive, se obtienen beneficios de rendimiento con respecto a las aplicaciones HTMLS que requieren capas de abstraccién ‘mas complejas para su ejecucién. Ademds, la experiencia de usuario (Ul) se mantiene intacta, ya que se utilizan los, rmismos componentes nativos de la plataforma para el desarrollo de la interfaz de usuario, Para valorar la apuesta por .NET/CH, también hay que tener en cuenta que las herramientas de desarrollo que brinda Xamarin tienen un cardcter comercial, yel costo de la licencia varia entre $299 y $999 en dependencia de si una licencia individual 0 empresarial. Existe también una variante gratuita limitada a 32Kb de cédigo IL y una licencia un 90% més barata para propésitos académicos ($99 la version empresarial que es la mas completa © incluye la integracién con Visual Studio). Por otra parte hay que tener en cuenta que la aplicacién compilada (en el caso de Android, un .apk) contendré el cédigo IL que se compilaré Just-In-Time (JIT) al ejecutar la aplicacién, por lo que se gastaré un poco més de memoria (tanto en espacio en disco como en RAM) para poder soportar el proceso de compilacion JIT. Finalmente, hay que decir que las herramientas de Xamarin se actualizan unos meses (2-3) después que sale la versién del sistema operativo y las herramientas de desarrollo nativas, que es un tiempo relativamente répido en que se incorporan las nuevas caracteristicas ala plataforma Mono. Recientemente Gartner reconocié a Xamarin como Visionaria en el campo del desarrollo de aplicaciones méviles (nttp://blog.xamarin.com/gartnerma), y resalté el rendimiento de Ia plataforma, la posibilidad de creacién de una interfaz de usuario (Ul) completamente nativa y la facilidad de acceso a las caracteristicas nativas de los dispositivos. ARQUITECTURA DE MONO FOR ANDROID ‘Mono es la implementacién de cédigo abierto (open source) de la plataforma .NET sobre Windows y Linux. En el caso de Android, Mono ejecuta sobre el Kernel de Linux, ala par de Dalvik, que es la maquina virtual de Java que soporta todo el ecosistema Android. Lo interesante en este caso (Figura 1) es la coexistencia de Mono con Dalvik. Primeramente hay que destacar los Android Callable Wrappers (ACW) que empaquetan la funcionalidad de Dalvik y la hace disponible como parte de la API de Mono, de forma tal que una aplicacién escrita en Cit pueda realizar llamadas a componentes escritos en Java que ejecuten en Dalvik. De manera inversa, estan los Managed Callable Wrappers que son proxies generadas en Java que le permiten a las aplicaciones ejecutando en Dalvik, poder 2|Pagina

You might also like