Saltar al contenido

La mejor guía para tomar Cursos de Xamarin

¿Estás en búsqueda de un curso de Xamarin donde puedas aprender los fundamentos de ésta tecnología? Ó tal vez buscas un curso en el cual se toquen temas avanzados sobre el desarrollo con Xamarin Forms? Si tu respuesta es afirmativa, ¡éste sitio es para tí! Aquí analizamos los mejores cursos de Xamarin online tanto en español como en inglés, para que te animes a tomar uno de ellos, y veas cómo tu conocimiento crece.

Curso de Xamarin
Curso de Xamarin

¿Porqué tomar un curso de Xamarin?

Si estás buscando acelerar tu carrera profesional, a través del desarrollo de aplicaciones multiplataforma, definitivamente deberías de tomar un curso de Xamarin para hacerlo de forma rápida. Como desarrollador de software, puedo decirte que al tomar un curso, no sólo aprendes conceptos nuevos, sino que de cierta forma, extraes una parte de toda la experiencia del desarrollador que te está enseñando, por lo que te ahorrarás muchos dolores de cabeza cuando desarrolles por tu cuenta las aplicaciones.

¿Qué debería de tomar?: ¿Tutorial de Xamarin ó Curso de Xamarin Online?

La gran diferencia entre tomar un tutorial de xamarin, y tomar un curso de Xamarin, es que en un tutorial, muchas veces se tocan los conceptos de forma básica, y regularmente no se lleva un órden secuencial. Aunque muchos youtubers hacen videos en forma de tutorial, éstos no están pensados en un órden para que el aprendizaje sea incremental, obviando muchas veces conceptos que  para ellos son “básicos”.

Por otra parte, en un curso completo de Xamarin, se especifica de antemano el público objetivo, es decir, si el curso va dirigido a desarrolladores que recién empiezan en la tecnología, ó si va enfocado a desarrolladores con más experiencia. De igual forma, al ser un curso, una serie de videos con duración larga, ten por seguro que se tocarán temas a profundidad para que no queden dudas sin resolver, aunque, si te has quedado con alguna duda, en los cursos que te mostraremos, puedes realizar preguntas en una sección especial, con lo que podrás interactuar con el instructor, despejando todas las dudas que te puedan haber quedado.

¿Qué tipo de cursos de programación Xamarin estás buscando?

Hoy en día existen muchos cursos de Xamarin en línea, así que puede que no sepas por donde empezar. En tutorialxamarin.com, los hemos clasificado para que elijas tu curso de forma correcta.

¿Existen cursos de Xamarin Gratis?

Claro que los hay, hemos encontrado un curso corto sobre Xamarin Forms que el mismo autor de nuestra reseña de el mejor curso de Xamarin Forms 2018 ha hecho. Cabe destacar que al ser un Curso de Xamarin gratis, los temas que se tocan son los fundamentos

En el curso de xamarin en español gratis, se tratan temas como Conceptos de Xamarin, instalación, tipos de componentes, creación de proyectos, adición de interactividad, data binding, listas, eventos, layouts, navegación y la creación de una agenda 100% funcional. Como podemos notar, aunque se trate de un curso de xamarin forms gratis, se tocan temas que son fundamentales para el desarrollo con Xamarin.

¿Existen algún curso de xamarin en pdf?

Esta es una muy buena pregunta, y es que como parte del equipo de cursos de xamarin microsoft, se ha publicado un libro que toca todos los fundamentos del desarrollo de aplicaciones con Xamarin. Este es un curso gratis de xamarin en formato libro, el cual puedes encontrar en la siguiente URL:

Creating Mobile Apps with Xamarin.Forms book

¿Qué es Xamarin?

Xamarin, es una plataforma de desarrollo multiplataforma para dispositivos móviles, aunque, como van las cosas, esta tecnología tiene toda la pinta de convertirse en más que una plataforma para dispositivos móviles, ya que existen planes y desarrollos en fase preliminar, que apuntan a que podremos desarrollar aplicaciones también tanto para la plataforma MAC OS, como para la plataforma Linux, ¿Interesante verdad? El desarrollo en Xamarin, se lleva a cabo principalmente a través de código C#, lo que te permite, si has trabajado previamente con .NET, de desarrollar aplicaciones utilizando todo el conocimiento previamente adquirido (Linq, expresiones lambda, tareas asíncronas, etc). La ventaja de Xamarin, es que las aplicaciones resultantes, son aplicaciones 100% nativas, las cuales renderizan los controles propios de la plataforma, a diferencia de otras plataformas que simulan el look & feel.

A través de Xamarin, es posible reutilizar el código escrito en C#, para compartirlo entre múltiples plataformas, por lo que, si se hace una buena separación de código, puedes compartir entre el 70% – 90% de código. El código que principalmente se comparte, es el que tiene que ver con lógica de negocios, por ejemplo, clases que consumen un servicio REST, clases que llevan a cabo operaciones, entre otras. El código que no puede compartirse, es el código que tiene que ver con funcionalidades nativas de cada plataforma, y que por lo tanto, se implementa de forma diferente en todas las plataformas, como por ejemplo, el uso de los sensores.

Podrías preguntarte: ¿Y si no sé programar con C#? Bueno, realmente aprender a programar con C# es muy parecido a programar con Java (más sencillo según mi opinión), así que, si vienes del mundo de Android, se te facilitarán aún más las cosas, además de que tendrás una gran ventaja, ya que conoces previamente el ciclo de vida de las aplicaciones en Android.

¿Cómo instalar Xamarin en Windows?

Para llevar a cabo la instalación de Xamarin, simplemente debes dirigirte al enlace de descarga de Visual Studio, desde donde tendremos que seleccionar la opción para descargar la versión comunidad, ya que las otras opciones son de pago:

Posteriormente, se nos abrirá un instalador, en el cual analizaremos cada una de las secciones.

Cargas de trabajo

En este apartado, podremos seleccionar el tipo de desarrollo que deseamos llevar a cabo en nuestros equipos, en el caso de Xamarin, tendremos que seleccionar la opción para que nos agregue el apartado de Desarrollo para dispositivos móviles con .NET, y en dado caso de que queramos desarrollar para Windows con Universal Windows Platform, deberemos de seleccionar el apartado marcado a la derecha en la siguiente imagen que se llama: “Herramientas de la plataforma universal de Windows para Xamarin”:

Seleccionando componentes de Visual Studio
Seleccionando componentes de Visual Studio

Componentes Individuales

La sección de Componentes Individuales, nos permitirá agregar alguna característica que no forme parte del desarrollo para móviles, como por ejemplo, el Diseñador de clases:

Seleccionando componentes adicionales
Seleccionando componentes adicionales

Paquetes de Idioma

Esta sección, nos permitirá cambiar el idioma de nuestro Visual Studio, por ejemplo, a mí me gusta desarrollar con el IDE en inglés, por lo que he seleccionado esta opción:

Seleccionando paquete de idiomas
Seleccionando paquete de idiomas

Ubicaciones de instalación

Por último, este apartado nos permitirá, cambiar la ruta por defecto de la instalación de Visual Studio

Cambiando la ruta de instalación de Visual Studio
Cambiando la ruta de instalación de Visual Studio

Xamarin Studio

Si te has encontrado con este término mientras investigabas en la web, debes saber una cosa: Xamarin Studio no existe más desde la adquisición de Xamarin por parte de Microsoft. La forma de instalar Xamarin en la MAC, es a través de Visual Studio for Mac, el cual puedes descargar desde aquí.

Una vez que descarguemos el instalador, podremos abrir el archivo descargado, e iniciar el proceso de instalación dando click en el botón grande que aparece:

Instalar Xamarin en la MAC
Instalar Xamarin en la MAC

Después de este paso, se descargarán algunos archivos adicionales, y finalmente, nos saldrá un cuadro de diálogo bastante sencillo, que nos preguntará qué queremos instalar, tendremos que seleccionar si queremos desarrollar para Android, iOS, macOS y .NET Core + ASP.NET Core. Si te fijas, aquí no aparece la plataforma de UWP, ya que no estamos en un equipo Windows, por lo que no podremos utilizar los SDK´s de Windows nativos, dicho de otra forma, no es posible desarrollar para Windows desde la MAC:

Instalando Visual Studio for Mac
Instalando Visual Studio for Mac

Por último, simplemente tendremos que dar click en Iniciar la instalación para instalar los componentes necesarios.

Tipos de proyectos en Xamarin

Si quieres aprender a programar en Xamarin, debes tener en cuenta que existen dos sabores para programar aplicaciones móviles, ambos nos permiten compartir el código entre plataformas, la diferencia radica en cómo lo hacen. Este tipo de proyectos, es donde alojaremos el código que deseamos compartir entre las diferentes plataformas. Es decir, aquí compartiremos la lógica de negocios, que tenga que ver por ejemplo, con el consumo de un servicio REST, e inclusive, si utilizamos Xamarin Forms, será en este proyecto donde compartiremos los archivos de interfaz gráfica, que renderizarán los controles en cada plataforma, con la ventaja de que sólo definiremos los layouts una sola vez.

Tipos de proyectos Shared (Compartidos)

La estructura de un proyecto Shared ó compartido es la siguiente:

Proyecto compartido
Proyecto compartido

Si te fijas bien, la primer característica de este tipo de proyectos, es el ícono verde a la izquierda, así es como podemos identificar rápidamente que se trata de un proyecto Shared. Por otra parte, fíjate que únicamente tiene archivos, más no referencias a ensamblados externos, ó un archivo de configuración de ensamblado. Esto es debido a que en un proyecto Shared, los archivos son copiados cuando se lleva a cabo la compilación del proyecto que hace referencia al mismo. Por ejemplo, en la imagen anterior, tengo un proyecto de Android también, por lo que pasaré a agregar la referencia al proyecto compartido (click derecho sobre References):

Agregando referencia de proyecto compartido
Agregando referencia de proyecto compartido

Quiero que te fijes, que estamos en la pestaña de Shared Projects y no en la de Assemblies. Una vez hecho esto, tendremos disponibles los recursos del proyecto Shared como parte del proyecto de Android, lo que implicará, que la próxima vez que compilemos, los archivos del proyecto Shared serán también compilados y tratados como parte del proyecto de Android.

Tipos de proyectos PCL (Portable Class Library)

Este tipo de proyectos están marcados como obsoletos por parte del equipo de Microsoft. De hecho, en las nuevas versiones de Visual Studio, este tipo de proyectos ya no aparece como parte de las plantillas. Sin embargo, considero importante que conozcas cómo se vería, en dado caso de que te llegues a encontrar con uno. Este es su aspecto:

Proyecto PCL
Proyecto PCL

Visual Studio sigue siendo capaz de abrir este tipo de proyectos, y podemos darnos cuenta que se trata de este tipo de proyecto, debido a la palabra Portable. A diferencia de un proyecto Shared, este tipo de proyectos sí contienen un apartado de References, lo que quiere decir que podemos agregar referencias de ensamblados externos ó de terceros, y que este tipo de proyectos, sí generará un ensamblado ó archivo .dll, el cual podremos agregar en otros proyectos. De hecho, si expando la pestaña del proyecto de Xamarin Android, podremos apreciar dicha referencia.

Referencia en proyecto Xamarin Android
Referencia en proyecto Xamarin Android

Este tipo de proyectos estaba regido por algo que se llamaba “Perfil”, el cual, básicamente era un match entre las clases ó funcionalidades que empataran en todas las plataforma, lo cual era a veces un dolor de cabeza. A modo de ejemplo, supón que tenías una aplicación desarrollada para Xamarin utilizando un PCL, y todo funcionaba a la perfección. Resulta que meses después, te pedían utilizar dicha biblioteca tal como está, en un proyecto Silverlight (tecnología también obsoleta por cierto). Abres tu solución desarrollada, agregas un proyecto tipo Silveright, agregas la referencia, y ¡boom! Te dice que el perfil que seleccionaste no abarca Silverlight. Tratas de ampliar el “match” para abarcar Silverlight, y resulta que hay funcionalidad que no es soportada por Silverlight. Eso significa, que tendrías que volver a desarrollar código para la plataforma, dejando de lado tu PCL.

Tipos de proyectos .NET Standard

El tipo de proyecto de hoy en día. Estos proyectos, nos permiten, al igual que con un proyecto portable, generar un ensamblado ó dll, el cual podremos utilizar posteriormente en proyectos de otras plataformas. La gran diferencia con un proyecto tipo PCL, es que .NET Standard, como lo dice su nombre, es un estándar. ¿A qué se refiere ello? Imagina el estándar HTML5, ¿Qué es lo que define? Básicamente, una serie de etiquetas que el desarrollador podrá utilizar para que los navegadores lo interpreten de forma correcta. Esa es la clave, estándar y navegadores. Pasándolo al mundo de .NET, .NET Standard es el estándar, que define un conjunto de funcionalidades ó clases, que todas las plataformas que implementen el estándar deben cumplir. Esto quiere decir, que las diferentes tecnologías de .NET, como por ejemplo, .NET Core ó Xamarin, serían el equivalente de los navegadores Web.

.NET Standard, ha tenido diferentes versiones a lo largo del tiempo, hoy en día, la versión que ha perdurado ya bastante tiempo es la versión 2.0, la cual incluye APIs para serialización, xml, networking, IO, Threading y las características básicas como primitivos, colecciones, reflection, entre otros.

Un proyecto de este tipo, tiene la siguiente estructura:

Estructura .NET Standard
Estructura .NET Standard

Como puedes apreciar, en este tipo de proyectos, ya no tenemos la sección de Referencias, aunque ojo, sí podemos seguir agregando referencias como en un proyecto tipo PCL. Al final de cada árbol, si te fijas, realmente lo que tenemos son ensamblados ó archivos dll.

Formas de atacar el desarrollo Multiplataforma en Xamarin Forms

Como parte de las plantillas incluidas en Xamarin, contamos con opciones tanto individuales para programar en una plataforma en específico, o bien, con opciones para programar en una sola solución, varios proyectos. Estas opciones son las siguientes:

Xamarin Android: 

Xamarin Android, es la forma en la cual podemos desarrollar aplicaciones, en dado caso de que únicamente queramos atacar el desarrollo para Android con un lenguaje C#. La estructura de este tipo de proyectos, es bastante similar a la estructura que tendrías en un proyecto en Android Studio, ya que realmente, al final, Xamarin Android es un conjunto de Wrappers que permiten enlazar nuestras clases de nuestras bibliotecas .NET, con las clases de las bibliotecas nativas de JAVA. Es por esta razón, que tenemos al final de nuestros desarrollos, una aplicación 100% nativa, con controles nativos y funcionalidad nativa. En este tipo de proyectos no es necesario que contemos con un proyecto PCL, Shared o .NET Standard, ya que podemos elegir no compartir el código con ninguna otra plataforma, tal vez, porque quieres crear aplicaciones Android con el lenguaje C# que ya conoces. Cabe destacar, que como parte de este tipo de proyecto, contamos con un editor visual de interfaces gráficas, y debemos hacer uso de Actividades de Android, es decir, deberemos aprender sobre la estructura de proyectos de Android y su funcionamiento, sí o sí. La estructura de un proyecto Xamarin Android, se mira así:

Proyecto Xamarin Android
Proyecto Xamarin Android

Si has trabajado con Android anteriormente, podrás darte cuenta que existen todos los elementos que en una aplicación Android tradicional, con la diferencia de que se encuentra estructurada de una forma diferente. Como he dicho anteriormente, si has trabajado con Android, no te costará mucho ponerte al día con Xamarin Android.

Xamarin iOS

Xamarin iOS, es la forma en la cual podemos desarrollar aplicaciones para la plataforma iOS de Apple, a través de código C#. De igual forma que en un proyecto tipo Xamarin Android, en el tipo de proyecto Xamarin iOS, contaremos con los elementos de una aplicación nativa de iOS, desde un editor visual, en el que podremos fácilmente crear interfaces gráficas, hasta archivos específicos que controlen el ciclo de vida de la aplicación. Xamarin iOS es un conjunto de bibliotecas, que nos permiten codificar con código C#, pero apuntando internamente a las clases y bibliotecas nativas de iOS, lo que nos permitirá al final, tener una aplicación 100% nativa. Es importante recalcar, que deberemos aprender sobre el ciclo de vida de la aplicaciones iOS, así como de la estructura y funcionamiento de cada uno de sus componentes, para poder crear apliaciones de este tipo. Un proyecto tipo Xamarin iOS se mira así:

Estructura de aplicación Xamarin iOS
Estructura de aplicación Xamarin iOS

De nuevo, si has trabajo con la plataforma de iOS, podrás darte cuenta que cuentas con los mismos elementos que con una aplicación iOS tradicional, por lo que acostumbrarte a desarrollar con Xamarin iOS no debería representar ningún problema.

Xamarin Forms

A mi parecer, un proyecto súper interesante, ya que, a diferencia de un proyecto nativo para una plataforma en específico, donde únicamente podremos compartir la lógica de negocios de la aplicación, con Xamarin Forms podemos compartir también la interfaz gráfica. Así como lo oyes, el equipo de Xamarin, decidió ir un paso más allá, y creó este proyecto, el cual es realmente, un kit de interfaz gráfica, donde podemos crear layouts de interfaz gráfica, los cuales generarán, por cada plataforma, su implementación de forma nativa. Hoy en día, el proyecto se encuentra bastante maduro, y se puede llegar a compartir alrededor del 90% del código (si no es que más), hablando de código de lógica de negocios, como de código de interfaz gráfica. El código que no se puede compartir, está relacionado con cuestiones muy específicas de cada plataforma, por ejemplo, no es el mismo algoritmo que se utiliza para tomar una foto en iOS que en Android, por lo que tendremos que codificar dicha funcionalidad, en el proyecto específico de la plataforma en la cual queramos ocuparla.

Un punto que podría ayudar en este aspecto de Xamarin Forms, es que cuenta hoy en día con una enorme comunidad de desarrolladores, los cuales, muchas veces, ya han implementado funcionalidad nativa a través de paquetes nuget, por lo que, no tendremos que implementar funcioalidad nativa por cada plataforma, lo que nos ahorarrá mucho tiempo de desarrollo.