Xamarin, desarrollo mobile multiplataforma en C#

Buenas!

Hace un tiempo he comenzado el desafío de desarrollar aplicaciones móviles usando Xamarin. Para los que no lo conocen, Xamarin es una plataforma que nos permite desarrollar en C# aplicaciones para Android, iOS, Windows Phone y aplicaciones universales de Windows, siendo las mismas nativas para cada una de estas plataformas.

A diferencia de otras alternativas, la clave que nos ofrece Xamarin es el poder generar aplicaciones nativas para cada una de las plataformas móviles mencionadas anteriormente. Pero a su vez nos permite diseñar y realizar parte de nuestros desarrollos genéricos, permitiendo que la lógica Core de nuestra aplicación pueda ser compartida entre las distintas plataformas, en vez de tener que desarrollar y resolver las mismas problemáticas en diferentes lenguajes.

¿Y esto cómo lo logra? La siguiente imagen es una explicación simple y clara del planteamiento que propone:

mobile application development platform

Veamos en detalle cada uno de los puntos que se plantean:

  • Shared C# App Logic: Es aquí donde podremos realizar nuestro desarrollo que es cross-platform al 100%. Para ello haremos podremos hacer uso de todas aquellas funcionalidades del framework .NET pensadas para ejecutarse en todas las plataformas. Esto implica que habrá algunas features específicas no disponibles, aunque en mi experiencia lo que he necesitado ha estado disponible.
  • Shared C# User Interface Code: Este punto variará dependiendo de los enfoques de diseño que usemos, ya que según nuestras necesidades podremos ir por una interfaz algo más estándar compartidas entre todas las plataformas, o bien interfaces 100% personalizadas cada plataforma, generando como consecuencia desarrollos totalmente separados en lo que a interfaz se refiere.
  • Platfotm-specific C#: Aquí es el punto donde sí o sí haremos desarrollos 100% dedicados a la plataforma, aunque a través de C#. Esto implica que podremos usar tanto las funcionalidades nativas de cada una a través de dicho lenguaje, a la vez que podremos agregar librerías desarrolladas en el lenguaje nativo de cada plataforma.

¿Qué es lo mejor de todo esto? Que no son tres cosas que van por separado, sino que estos tres puntos se combinan en la medida en que lo estemos necesitando. De esta forma podemos lograr compartir todo aquella lógica de negocio (persistencia en bases de datos, llamadas a servicios, autenticación, procesamiento de información, etc.), la cual generalmente se lleva una gran cantidad de nuestro tiempo en el desarrollo de aplicaciones móviles, resolviendo una y otra vez lo mismo pero en diferentes lenguajes y frameworks.

Además de que no perdemos acceso a funcionalidades nativas, ni nuestra aplicación irá más lento por usar Xamarin: el resultado de una aplicación desarrollada con Xamarin es una aplicación nativa, la cual es capaz de usar todas las APIs del sistema operativo que necesite.

Finalmente, para cerrar esta pequeña introducción, les comento que contamos con dos alternativas como IDE de desarrollo:

  • Si somos usuarios de Windows tenemos el soporte desde Visual Studio instalando los componentes de Xamarin sobre el mismo.
  • En caso de usar Mac, contamos con el IDE Xamarin Studio.

Para los que venimos del desarrollo diario con Visual Studio, es una muy buena opción poder mantener dicho IDE. Además de ser uno de los mejores del mercado, con el desarrollo en Xamarin seguimos manteniendo todas las funcionalidades del mismo en general (como por ejemplo la gestión de paquetes Nuget, Intellisense, debuggers, etc) a la vez que se suman algunas adicionales de Xamarin en sí (Profiling, Componentes y herramientas de edición asociadas al desarrollo móvil).

En próximos posts iremos viendo desde cómo configurar nuestro entorno, a las alternativas/enfoques de implementación con los que contamos.

Gracias por leer!

 

 

Anuncios

2 comentarios en “Xamarin, desarrollo mobile multiplataforma en C#

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s