jueves, 7 de noviembre de 2013

Desarrollando apps móviles con C# gracias a Xamarin


Desarrollando apps móviles con C#

Cada vez son más necesarias las aplicaciones móviles tanto en el sector empresarial como en el del entretenimiento. A pesar de esta necesidad, a la hora de desarrollar aplicaciones móviles las empresas tienen que enfrentarse a los problemas de la segmentación de los dispositivos y se ven obligadas a desarrollar la misma aplicación varias veces en diferentes plataformas para cubrir una amplia cuota de mercado. 

Afortunadamente en los últimos años todo un nuevo ecosistema de plataformas de desarrollo para la construcción de aplicaciones móviles multiplataforma ha surgido. Entre estas nuevas soluciones se incluyen Appcelerator, PhoneGap, Xamarin, por mencionar algunas.
La plataforma Xamarin permite desarrollar aplicaciones 100% nativas utilizando el lenguaje de programación C# como base para las plataformas iOS, Android, Mac y Windows Phone.

Características de Xamarin
Algunas de las principales características de Xamarin son:
  • Lenguaje de Programación C#: Permite utilizar una sintaxis conocida ya por muchos desarrolladores e integra características sofisticadas como Generics, Linq y Parallel Task.
  • Framework Mono .NET: Proporciona una implementación multiplataforma utilizando todas las características con las que cuenta Microsoft .NET.
  • Compilador: Dependiendo de la plataforma seleccionada produce una aplicación nativa o una aplicación .NET integrada.
  • Herramientas IDE: Cuenta con el IDE de Xamarin Studio y  el plug-in de Xamarin para integración con Visual Studio
  • Soporte de multiplataforma móvil: Xamarin ofrece soporte multiplataforma sofisticado para las tres principales plataformas móviles: iOS, Android y Windows Phone. Las aplicaciones pueden ser escritas para compartir hasta el 75% del código entre plataformas. Además, Xamarin ofrece acceso a los recursos comunes de las 3 plataformas.
















Xamarin se divide principalmente en dos componentes: Xamarin.iOs también conocido como MonoTouch y Xamarin.Android también conocido como Mono.Android, los dos están basados en Mono: un framework de .NET de código abierto que cumple con el estándar ECMA publicado de .NET. La característica principal de Mono es que es compatible en un gran número de plataformas: Linux, Unix, FreeBSD,  Mac OSX, Microsot Windows,  etc.

En el caso de iOs, Xamarin utiliza su compilador “Ahead of Time” el cual compila directamente el código de la aplicación a nativo; en el caso de  Android Xamarin compila la aplicación a un código intermedio (IL  Intermediate Lenguage) para posteriormente ser compilado a nativo cuando la aplicación se inicia.
En ambos casos para iOs y Android se comparten algunas características  como lo son : garbage Collection, asignación de memoria e interpolaridad de plataformas.

El ambiente de desarrollo de Xamarin es una remasterización del IDE de MonoDevelop (IDE utilizado en Mono) , rediseñado para ser usado en los sistemas operativos Windows y Mac. Incluye un constructor de interfaces gráficas para Android y se integra con el constructor de interfaces de XCode para simplificar la tarea de diseñar la interfaz del usuario.

El IDE autocompleta el código para los diferentes APIs. El depurador permite poner breakpoints, visualizar los hilos de ejecución y el valor de las variables. Cuenta además con “Intellisense”, lo que significa que muestra los errores semánticos en la medida que uno va escribiendo. Se puede además elegir el esquema de color para esta característica o bien crear un esquema propio; además de que ofrece como alternativa la integración con Visual Studio.













A modo de conclusión, Xamarin es una herramienta perfecta para todos aquellos desarrolladores que  tengan experiencia utilizando el lenguaje de programación C#, el único inconveniente que le encontraría es que si hay  una variación considerable entre utilizar Xamarin para Android y Xamarin para iOs, teniendo que re-trabajar muchas partes del código para cada plataforma, situación que en el caso de Titanium se da en un porcentaje mucho menor.


Acerca del Autor

Salvador Luna Hernández es un ingeniero en mecatrónica y tecnólogo en informática y computación del Centro de Enseñanza Técnica Industrial, actualmente colabora con Dawcons como desarrollador en .NET en el área de software a la medida. Puedes seguirlo en Twitter.

5 comentarios:

  1. Podrían indicar algunos ejemplos de las variaciones entre Xmarin para Android y Xamarin para iOS, gracias.

    ResponderEliminar
    Respuestas
    1. La siguiente semana publicaremos una nueva entrada al blog en la cual se mostrarán dichas variaciones entre Xamarin para Android y Xamarin para iOS.

      Eliminar
  2. Hola Alejandro,

    ¡Muchas gracias por tu comentario! Las nuevas publicaciones las estamos agregando en nuestro nuevo blog http://dwsoftware.mx/blog/, inscríbete y sigue actualizado en temas de tecnologías de la información, muchas gracias por tu preferencia.

    ResponderEliminar
  3. DevRabbit is an affordable Web and Mobile App development company US based and at Hyderabad.

    DevRabbit's Xamarin Consulting services here sіmply wіsh to saу your article іs as amazing.

    ResponderEliminar