Algunos consejos para sobrevivir a Xamarin si acabas de aterrizar desde el desarrollo .Net.

Llevo tiempo tratando de escribir un post sobre como sobrevivir los primeros días en un proyecto Xamarin, si nunca antes lo has visto. No tenía muy claro como aportar valor, así que he decidido dar aquellos consejos que yo hubiese deseado tener claros en el minuto 0.

Sé que me queda mucho para pensar que sé algo de Xamarin o, que puedo aportar valor a la comunidad, así que si ya has trabajado con ello este post no es para tí.

Este artículo es para aquellas personas que un día llegarán a su empresa y les dirán: “Mira es que necesitamos ayuda en un proyecto Xamarin, tú no te preocupes que Xamarin es .Net al final”. Spoiler: ¡Mentira! (pero vamos que con paciencia y ganas, todo se aprende, incluso Xamarin :-))

Pues nada ahí van mis pequeños consejos con muchos enlaces por si quieres o necesitas ahondar más:

Dedícale un tiempo a entender los ciclos de vida.

Probablemente como profesional .Net estarás habituada a trabajar con aplicaciones web o de escritorio. Esto hace que, aunque sepas que el ciclo de vida de las aplicaciones móviles difiere, no tengas muy claro cuanto.

Así que mi primer consejo es echarle un ojo y así ahorrar rompederos de cabeza posteriores. En esta página de Microsoft te explican los principales métodos que tienen que ver con estos ciclos.

Comunicación xaml- xaml.cs- ViewModel.

Como sabrás Xamarin se basa en la utilización de ViewModels, donde se genera la lógica necesaria para nuestra ContentPage o ContentView. Es importante que tengas claro que funcionalidades quieres implementar en el xaml.cs (codebehind), y cuales en el ViewModel, y cómo comunicarte con las vistas (xaml) desde estos archivos.

Para comunicar la vista con el xaml.cs, se usan por un lado la propiedad x:Name de los componentes para así poder acceder a ellos desde el codebehind. Para enviarles información, tienes los métodos que son reconocedores de gestos (GestureRecognizers) con la propiedad Tapped, que vincula a un método del archivo xaml.cs.

Para comunicar la vista con el ViewModel, dispones de las propiedades Data Binding, las cuales pueden ser de una o dos direcciones y vinculan los componentes de la vista con propiedades del modelo. También tienes comandos, Command, que te permitirán llamar a métodos del ViewModel desde el xaml.

Comprende la diferencia entre una ContentPage y una ContentView.

Aunque ambas pueden contener controles personalizados, tienen su archivo xaml.cs y están vinculadas con un ViewModel, son conceptos diferentes.

Al final un ContentPage es una página que puede contener una ContentView, y esta, puede contener a su vez otra ContentView o controles personalizados. Por ello cuando vayas a crear páginas independientes, utiliza una ContentPage y para separar el contenido de ellas si son muy extensas puedes usar ContentViews.

Eso sí aunque las ContentViews pueden compartir ViewModels, yo siempre te aconsejo tener uno para cada una, sobre todo al principio. Te ayudará a entenderte mejor con la navegación y la estructura.

Conoce las posibilidades de Xamarin Forms.

Si vienes de programar la parte frontend de los proyectos con algún framework Javascript y utilizar CSS para maquetar, esto es lo que puede que te cueste más. Xamarin funciona con Xamarin Forms y utiliza diferentes Layouts para crear sus contenidos.

Estos Layouts tienen diferentes propiedades, que son las que configuran la apariencia de la página. Es importante que tengas paciencia y dediques tiempo a entender como funcionan. Además, habrá algunos requerimientos que quieras realizar que no estén soportados y tengas que implementarlos como efectos y, por tanto, codificar en la parte iOS y Android del proyecto. ¡Lo siento!

Los converters son tus amigos.

En Xamarin se utilizan bastantes convertidores que te ayudan a convertir datos de un tipo a otro e, incluso a realizar ciertas acciones que en otros frameworks no necesitas.

Un ejemplo claro es cuando quieres bindear un control a una propiedad boleana. Como Xamarin Forms no entiende bien la expresion !miBoolean, se usa un converter para la negación (aquí te lo explican). Y como este caso, muchos más. A lo primero te parecerá engorroso, pero te habituarás pronto.

Cierra ventanas!!!

Es fácil caer en la trampa de redirigir de una página a otra sin advertir que igual la de partida era una nueva pantalla que se había abierto.

El resultado final es que tienes varias pantallas abiertas en la aplicación y eso puede provocar errores y un mal rendimiento. Así que acostúmbrate a destruir pantallas cuando no las necesites con Pop.Async().

Respira y relájate.

A lo primero, puede resultar muy frustrante porque la idea que solemos tener preconcebida es que es un framework muy similar a otros desarrollos .Net, y que seremos eficaces muy pronto.

Esto no es así, no hay que olvidar que es un framework de desarrollo móvil y que estás cambiando de ámbito. Así que relax, calma y depura un montón. (En este punto estoy yo también).

— — — — — —

Espero que esta publicación te haya sido útil. Si es así, por favor, dale un voto positivo y compártelo en tus redes sociales. Si lo deseas, puedes encontrarme en Twitter y en Linkedin.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store