Saltar al contenido

Encuentra tu curso de Xamarin Ideal

Un Curso de Xamarin, es más que una serie de videos ó tutoriales en Youtube, un Curso de Xamarin, son horas de experiencia de un profesional, que se ha quemado las cejas resolviendo problemas para que tú no tengas que pasar por ellos, aportando experiencia traducida en muchísimas horas de desarrollo de aplicaciones multiplataforma.

Si quieres evitar problemas comunes, y desarrollar rápidamente tu carrera profesional a través de Cursos en línea de Xamarin, esta es tu web.

Oferta Destacada: Máster en Xamarin Forms para desarrollar apps multiplataforma

No quiero dejar pasar la oportunidad, para hacerte una recomendación personal sobre la mejor colección de cursos de Xamarin. El máster en Xamarin Forms de el Camino Dev, es una locura. Son más de 65 horas de contenido en español, de cursos totalmente prácticos con los que te volverás todo un experto en Xamarin.

Son 10 cursos de Xamarin Forms y uno de C#, con el que podrás reforzar tus conocimientos y despejar cualquier duda que tengas de los cursos. Lo mejor de todo, es que actualmente se encuentra en descuento, y por tan sólo 35 dólares, podrás adquirir este mega pack de cursos de Xamarin Forms.

Análisis de los mejores cursos de Xamarin (Gratis y Premium)

¿Qué es Xamarin?

Xamarin es la tecnología de Microsoft, que permite utilizar el lenguaje de programación C#, y la plataforma .NET, para crear aplicaciones multiplataforma.

Esto quiere decir, que si vienes de un mundo Windows Forms, WPF ó ASP.NET, podrás familiarizarte rápidamente con Xamarin para crear aplicaciones para iOS y Android, ya que podrás utilizar todas tus habilidades de desarrollador .NET para explotar al máximo el desarrollo multiplataforma.

Xamarin, te permite crear bibliotecas, ó bien, reutilizar bibliotecas de otros proyectos para no iniciar desde cero, pudiendo optimizar el tiempo de desarrollo en horas.

¿Qué es Xamarin Forms?

No debemos confundir Xamarin con Xamarin Forms. Aunque Xamarin, es la tecnología base para crear apps multiplataforma, Xamarin Forms es una capa adicional, que permite utilizar código XAML para crear interfaces gráficas que pueden ser compartidas entre diferentes plataformas. Es decir, con Xamarin escribes código para reutilizar lógica de negocios, y con Xamarin Forms escribes código para reutilizar la interfaz gráfica. Esto es muy útil, ya que no deberás diseñar cada pantalla para cada plataforma, sino que con un único archivo XAML, podrás tener la misma interfaz gráfica en varias plataformas.

¿Qué es el patrón MVVM en Xamarin?

Seguramente, si has leído algo respecto a Xamarin Forms, te habrás encontrado con el término MVVM.

Se escucha como un término al cual tenerle miedo, pero la verdad es que no es así. El problema radica, en que para utilizarlo, debemos de cambiar nuestro chip completamente.

Si has trabajado anteriormente con Windows Forms, o alguna tecnología similar, seguramente, en algún momento tuviste que hacer algo como esto:

textbox1.Text = «Hola!»;
textbox2.Text = «Probando»;
textbox3.Text = «Dato 3»;
….


y un largo etcétera.

Como podemos apreciar, en el caso anterior, la asignación de los valores hacia los controles, se hacía de forma manual, sin embargo, esto conlleva varias complicaciones:

1) Si el orígen de datos cambia, hay que actualizar todas las referencias en el proyecto.
2) Es propenso a errores, ya que podemos olvidarnos de actualizar una línea.
3) Es muy talachero (mucho trabajo), ya que hay que hacer las asignaciones manualmente, tanto para asignar valores, como para recuperar los valores del control.

Y aunque en Xamarin Forms, se puede hacer exactamente lo mismo, no es lo ideal.

Lo ideal, es utilizar el patrón MVVM, el cual, separa el proyecto en 3 grandes partes:

1) Models

Esta parte del proyecto, debe definir únicamente las entidades de negocio. Nada de implementar dentro operaciones de negocio complejas. Es decir, debemos definir las clases con sus respectivas propiedades, que representarán una entidad. Por ejemplo, puedes definir una clase llamada persona, con una propiedad Nombre.

2) ViewModels

Esta parte del proyecto, definirá clases, las cuales van a representar, a través de propiedades, la información que contendrá cada una de las vistas (pantallas le llaman algunos).

Por ejemplo, aquí puedes indicar que tendrás una lista de Personas.

3) Views

Esta parte del proyecto, contendrá únicamente las interfaces gráficas de usuario. Se enlazará a su respectivo ViewModel, a través del BindingContext de la página, y esto a la vez, permitirá, a través del Data Binding, enlazar una propiedad de un control, a una propiedad de nuestro ViewModel.

Por ejemplo, podríamos indicar, que el orígen de datos de una lista, va a ser la lista de personas que ejemplificamos en el paso anterior.

Puede parecer un poco complejo al principio, pero una vez que te acostumbras, crearás cada componente como si untaras mantequilla en pan.

Existe un curso dedicado a aprender a fondo el uso de MVVM en Xamarin Forms, por si te interesa, se llama «Xamarin Forms: Aprende los conceptos de MVVM»:

5 cosas útiles que debes saber cuando inicias con Xamarin

Cuando comenzamos nuestro camino de aprendizaje con Xamarin Forms, es normal encontrarnos con muchos conceptos nuevos, que tal vez nunca habías escuchado.

Para facilitarte la tarea, te enumero 5 conceptos que debes conocer y dominar sobre el desarrollo con Xamarin, con un resumen de lo que significa cada uno de ellos.

Sin más, vamos por ellos:

1) .NET Standard


¿.NET Framework? ¿.NET Core? ¿.NET Standard? Uff, tantos .NET que ya ni sabemos cuál escoger.

En el principio de los tiempos, el .NET Framework fue creado como un conjunto de bibliotecas, que nos ayudaban a desarrollar software, sin embargo, conforme fueron saliendo nuevas plataformas, existió la necesidad de «fragmentar» el framework, para desarrollos como por ejemplo, móviles.

Esto implicaba que cada vez que querías crear una aplicación para una plataforma diferente, tenías que reimplementar el framework específico, y hacer una compilación a la plataforma específica que necesitabas.

Para solventar esta problemática, se ha creado .NET Standard, que a diferencia del .NET Framework, es en realidad una especificación, es decir, no contiene bibliotecas de clases ni controles, más bien es como un contrato, que dice «Si quieres implementarme, tienes que implementar todo lo que yo te digo».

De esta forma, se asegura que quien implemente la especificación .NET Standard, será compatible con cualquier otra implementación. Gracias a esto, podemos crear una biblioteca de clases tipo .NET Standard, y utilizar dicha biblioteca en Xamarin, ó en un proyecto de Consola .NET Core.

2) Views

En el mundo Xamarin Forms, este concepto es el equivalente a los controles ó Widgets en otras plataformas.

Estos controles, los podremos utilizar para crear nuestras aplicaciones multi plataforma, y en escencia, son contenedores que serán reemplazados por los controles nativos en cada una de las plataformas, cuando compilemos la aplicación.

Existen múltiples controles, desde Etiquetas (Labels), Imágenes, Botones, Checkboxes, y un largo etcétera.

3) Layouts

Los layouts, son los contenedores, que nos permitirán estructurar, la ubicación de cada uno de los Views. Como nota adicional, podemos anidar Layouts dentro de otro Layout.

Tenemos varios tipos de layouts, pero entre los más importantes se encuentran:

  • ScrollView
  • StackLayout
  • AbsoluteLayout
  • RelativeLayout
  • Grid


Cada uno de los Layouts se comporta de forma diferente, pPor ejemplo, si queremos que nuestros controles se encuentren apilados, uno detrás de otro, utilizaríamos un layout tipo StackLayout.


4) Pages

Las páginas, son los contenedores para nuestros Layouts. Una página, sólo puede contener un tipo de Layout como elemento principal. Existen 6 tipos de páginas disponibles:

  • ContentPage
  • MasterDetailPage
  • NavigationPage
  • TabbedPage
  • TemplatedPage
  • CarouselPage

Debemos escoger un tipo de página, de acuerdo al tipo de aplicación que deseemos. Por ejemplo, si queremos tener un menú tipo hamburguesa, el cual se despliegue al dar click sobre un ícono, podremos hacerlo gracias al tipo MasterDetailPage.

5) Data Binding

Uno de los pilares en Xamarin Forms, que nos permite, enlazar cualquier propiedad como orígen, a un control visual ó view, de Xamarin Forms como destino.

Esto significa, que si consultamos un conjunto de clientes de la base de datos, y queremos mostrar dichos clientes en una lista de nuestra aplicación, podremos enlazar dicha lista a un ListView, fácilmente gracias al Data Binding, con apenas una asignación.

Espero te haya gustado esta recopilación, y te comento, que he creado el mejor curso de habla hispana sobre los Fundamentos de Xamarin Forms, en el cual, toco a detalle cada uno de los conceptos que hemos tratado en este correo.

El curso se llama «Fundamentos de Xamarin», y para que no haya excusas para no adquirirlo, te dejo el curso con el mejor precio posible.

¿Cómo conecto mi base de datos con Xamarin?

Esta es una de las preguntas más comunes que se hacen los desarrolladores, cuando inician su camino con Xamarin. Hoy, responderemos esta incógnita.

Con la introducción de .NET Standard, ya tenemos disponibles clases que nos permiten trabajar directamente con el espacio de nombres System.Data. Si has trabajado anteriormente con bases de datos, recordarás que este espacio de nombres es el que se utiliza para conectar una app a una base de datos.

Sin embargo, aunque podemos conectar directamente la app a la base de datos, esto no es nada recomendable, ¿Porqué? Veamos algunos puntos:

1) Seguridad

En una aplicación móvil, tendrías que desplegar la cadena de conexión con el respectivo user y password, lo que permitiría que cualqulier usuario pudiera acceder a dicha información fácilmente.

2) Rendimiento

Las conexiones de bases de datos no fueron diseñadas para pasar por conexiones de alta latencia, lo que podría provocar, que en nuestro móvil tengamos una conexión que se caiga a cada rato, lo que obligaría a re conectarnos constantemente.

3) Control

Si tuvieras que hacer cambios en una consulta, tendrías que re desplegar la aplicación con cada cambio que hagas. Esto sería sumamente tedioso en caso de que tengas varios usuarios utilizando la misma aplicación.

Entonces, ¿Cuál es la solución?

La solución, es crear un servicio REST, que sea el encargado de hacer las peticiones a la base de datos, y te devuelva los resultados a tu aplicación Xamarin.

Con esto, tendrás control total sobre los cambios a las consultas, y tendrás control total del servicio.

Si quieres saber cómo crear un servicio REST, a partir de una base de datos SQL Server, he creado un curso llamado «Crea una ASP.NET Core Web API básica desde una base de datos», donde paso a paso, te muestro cómo crear un servicio REST, el cual podrás consumir desde una aplicación SQL Server.

5 cosas que no sabías de Xamarin Forms

En esta ocasión, te comparto 5 cosas que tal vez no sepas, que se pueden hacer con Xamarin Forms en tus aplicaciones móviles.

1) Detectar en tiempo de ejecución, la plataforma y tipo de dispositivo en el cual te encuentras

Sin duda, una característica sumamente interesante de Xamarin Forms, es que nos permite, saber en tiempo de ejecución, el sistema operativo y el dispositivo en el cual nos encontramos.

¿Y para qué quiero yo eso?

Bueno, me alegra que preguntes. Bueno, pueden haber ocasiones, en las que la interfaz gráfica no se muestre correctamente en algunos sistemas operativos, mientras que en otro sí.

Esto sucede, porque cada sistema operativo, tiene cierto layout predefinido, por ejemplo, respecto al margen de la pantalla. Mientras que en Android se ve bien, puede que en iOS no se vea tan bonito.

Podemos hacer esta detección fácilmente, gracias a la clase Device, la cual contiene múltimes métodos y propiedades que nos permiten extraer dicha información. Por ejemplo, si quisiéramos saber si estamos en un dispositivo móvil, haríamos algo como lo siguiente:

if (Device.Idiom == TargetIdiom.Phone)
{
   // layout views vertically
}
else
{
   // layout views horizontally for a larger display (tablet or desktop)
}

2) Crearle una nueva propiedad, a un control que ya existe

Sin duda, una de las cosas que menos saben los desarrolladores Xamarin, es que puedes agregarle propiedades nuevas a un control que ya existe, y no solo eso, sino que además, podemos convertir esa propiedad, en una Bindable Property, es decir, una propiedad que puede ser enlazada a otro control.

Por ejemplo, supongamos que deseamos saber la cantidad de veces que un botón ha sido clickeado en la interfaz gráfica, y desplegar el resultado en un elemento Label de la misma interfaz, bueno, pues eso podríamos implementarlo fácilmente a través de las Bindable Properties.

3) Enlazar cualquier evento a un Command

Los commands, o comandos, son propiedades, que nos permiten comunicar eventos desde la interfaz gráfica, hacia uno de nuestros ViewModels.

La mayoría de los controles, cuentan con Comandos predefinidos, que ligan el comando, con el o los eventos principales de un control de usuario.

Por ejemplo, el elemento Button, tiene un commando llamado «Command», el cual va a ejecutarse en el viewmodel, una vez que el botón sea clickeado.

Desafortunadamente, muchos eventos no tienen un comando relacionado, por lo que cualquiera podría pensar, que el framework de Xamarin Forms no es tan flexible, nada más alejado de la realidad.

Es posible, ligar cualquier evento de cualquier control, a un comando que nosotros creemos, esto se logra, gracias a un Attached Behavior.

4) Mejorar la interfaz gráfica gracias a Animaciones

Hoy en día, tener una aplicación gráfica debe ser sinónimo de calidad, si quieres que triunfe en el mercado.

¿Qué mejor mejor que darle un plus a tu aplicación, con animaciones? Es posible definir animaciones para cada uno de tus controles de interfaz gráfica.

Si has tomado el curso de Amiibopedia, seguramente recordarás cómo mejoramos la interfaz gráfica, agregando animaciones a cada elemento de la lista, con lo cual tenemos una sensación de movimiento al explorar la aplicación.

5) Reaccionar ante cambios de interfaz gráfica

Una de las grandes ventajas de Xamarin  Forms, es que podemos implementar algo llamado Triggers, o disparadores en español.

Estos triggers, nos van a  permitir reaccionar ante ciertos cambios en la interfaz gráfica, de manera automatizada.

Por ejemplo, supón que tienes una caja de texto, en la cual el usuario tiene que ingresar información, y que no sólo eso, sino que deseas mostrar un fondo rojo si la información es incorrecta, y un fondo verde, en dado caso de que la información sea correcta.

Hacerlo mediante código, podría resultar algo tedioso, pero gracias a los Triggers, podemos definir en el archivo XAML, específicamente en la propiedad Trigger de cualquier control, cómo se comportará, ya sea al tener nueva información,o bien, ante ciertos cambios, como la ejecución de un evento.

Estos 5 puntos, son sólo algunos de los tantos que muchos desarrolladores de Xamarin Forms desconocen, ya que son temas avanzados, pero súper útiles para demostrar que somos expertos en Xamarin Forms.

He creado un curso bastante extenso y a fondo sobre este tipo de temas, titulado «Curso Avanzado en temas selectos de Xamarin Forms», en el que, después de tomarlo, serás todo un experto en Xamarin Forms.

Xamarin Forms Shell

Xamarin Forms Shell, se podría decir que es parecido a un rompecabezas de LEGO.

En uno de estos rompecabezas, contamos con una serie de piezas, para armar cualquier cosa sorprendente. Bueno, lo mismo aplica para Xamarin Forms Shell.

El equipo de Xamarin, exploró y se dió cuenta de que el 90% de aplicaciones, utilizan ya sea un menú tipo hamburguesa, o pestañas en sus aplicaciones.

Con esto en mente, se desarrolló un conjunto de componentes, que podemos ir ensamblando, para definir una estructura de una aplicación de una manera súper rápida.

Lo único que debes hacer, es contar con un conjunto de Content Pages, las cuales iremos definiendo en una página tipo Shell.

Para que te des una idea de esto, aquí te pongo un ejemplo de una definición en código XAML:

<Shell …> …
   <FlyoutItem Title=»Animals» FlyoutDisplayOptions=»AsMultipleItems»>
     <Tab Title=»Domestic» Icon=»paw.png»>
          <ShellContent Title=»Cats» Icon=»cat.png»>                   
                    <views:CatsPage />
         </ShellContent>
         <ShellContent Title=»Dogs» Icon=»dog.png»>
                    <views:DogsPage />
         </ShellContent>
    </Tab>
… </Shell>

Parece algo complicado al principio, pero realmente, lo que estamos haciendo, es definir una estructura jerárquica de cómo se mostrarán los elementos.

CatsPage y DogsPage son las ContentPages, y básicamente, estamos diciendo algo como:

Quiero un flyoutitem (menú hamburguesa), que controle en la pantalla principal, pestañas con 2 content pages.


Y si desplegamos el menú lateral, veremos que se ha creado el menú de forma automática para nosotros:

Realmente, Xamarin Forms Shell es una excelente herramienta, que forma parte de Xamarin Forms, y que nos ayudará a crear aplicaciones rápidas y hermosas, apenas escribiendo unas cuentas líneas de código XAML.

Si quieres aprender a utilizar a fondo esta característica de Xamarin Forms Shell, existe un curso llamado «Xamarin Forms Shell: De Cero a Experto», en el que se crea una aplicación de fotografías hermosa, paso a paso con Xamarin Forms Shell.


Frameworks para Xamarin Forms

¿Existen frameworks con los que podemos mejorar nuestros tiempos de desarrollo con Xamarin Forms?

La respuesta es que sí, y muchos.Sin embargo, la mayoría de estos frameworks, han sido desarrollados para otras plataformas (WPF por ejemplo), por lo que puede resultar un poco fastidioso, tener tantas clases que nunca utilizaremos con Xamarin Forms.Para evitar esto, te presento el framework FreshMVVM.

¿Qué es FreshMVVM?

FreshMvvm, es un framework mvvm súper ligero, diseñado específicamente para xamarin forms, el cual está pensado para ser fácil, simple y flexible.

¿Y para qué quiero yo un framework?

De nuevo, me alegra que preguntes.

La verdad, es que con Xamarin Forms, hay muchas cosas que tendremos que implementar por nuestra cuenta, y si estamos iniciando en este mundo, puede que tengamos que invertir varias horas en hacerlo.

Sabemos que para nosotros, como desarrolladores, el tiempo es oro. FreshMVVM, nos va a permitir resolver algunos problemas comunes que el framework de Xamarin Forms no nos da, como por ejemplo:

  • Cómo navegar entre viewmodels
  • Cómo pasar información entre diferentes viewmodels
  • Cómo configurar un contenedor de inyección de dependencias
  • Cómo reducir el acoplamiento entre dependencias
  • Cómo manejar múltiples pilas de navegación

Tal vez si estás iniciando en el mundo de Xamarin, no te haga mucho sentido utilizar un framework, pero acuérdate de este correo cuando empieces a utilizarlo de form más intensiva, y quieras, por ejemplo, pasar información entre 2 viewmodels.

Si quieres mejorar tus habilidades, existe un curso titulado «Xamarin Forms: Desarrolla más rápido con FreshMVVM», en el que vemos a detalle, cómo utilizar el framework.

Al ser un framework pequeño, podremos dominarlo en apenas un par de horas, lo que nos permitirá ahorrarnos, literalmente, cientas de horas de desarrollo con Xamarin Forms.

Xamarin Forms Chat

Hace un par de meses, uno de mis clientes me preguntó, sobre cómo crear aplicaciones con datos en tiempo real, un punto crítico en muchas aplicaciones.

Gracias a las nuevas tecnologías, podemos crear aplicaciones con datos en tiempo real, de una manera muy sencilla. Solamente, hay que saber cómo.

Por ejemplo, como parte de los servicios de Azure, contamos con uno llamado SignalR.

Este servicio, nos permite hacer un broadcast de mensajes, ya sea a todos los que estén conectados al servicio, o bien, a una parte de ellos. Crear este servicio en Azure, toma apenas un par de minutos.

Ahora bien, debemos también tener la capacidad de llevar a cabo múltiples tareas, como por ejemplo, almacenamiento de información, comprobación por IA de imágenes explícitas, etcétera.

Gracias a otra característica de Azure, llamada Azure Functions, es posible llevar a cabo la creación de pequeñas funciones, que se ejecutarán únicamente cuando las solicitemos a través de peticiones HTTP.

Esto encaja perfectmente en cómo creamos aplicaciones con Xamarin Forms, ya que

dejaremos que las funciones hagan el trabajo pesado, para únicamente esperar nueva información.

¿Cómo integrar todo en un solo proyecto?

Esta pregunta me la hice, cuando quise demostrar cómo crear aplicaciones con datos en tiempo real, y llegué a la conclusión, de que tenía que ser algo práctico y divertido.

¿Qué mejor que una aplicación de Chat en tiempo real?

Gracias a este enfoque, puedes aprender a utilizar características interesantes tanto de Azure como de Xamarin:

  • Azure SignalR
  • Azure Functions
  • Azure Storage
  • Temas selectos de Xamarin Forms, tales como CollectionView, Visual Material y DataTemplates

Hay que aceptarlo, crear una aplicación de chat es un proyecto que todos como desarrolladores queremos hacer algún día. Para tu suerte, existe un curso titulado «Xamarin Forms: Crea una aplicación de Chat en tiempo real», en el que se crea, paso a paso, una aplicación de Chat multiplataforma, y que trabajará en tiempo real, para enviar tanto mensajes como imágenes, aunque claro, puedes ampliarla para enviar cualquier tipo de mensaje