Hola Darío,
Ya hace algún tiempo que andas programando aplicaciones utilizando Xamarin.Forms y a veces te olvidas de las bases. Es verdad que es muy entretenido montar arquitecturas para aplicaciones, pensar en soluciones que te permitan compartir mucho código, incluso crear controles complejos para reutilizar en diferentes aplicaciones desde el mismo proyecto y que te permitan personalizaciones tan extremas que no parezca posible, pero se te olvida algo importante, hay que seguir compartiendo y no olvidar la base.
Teniendo en cuenta que tienes la cabeza en otro sitio y que no puedes estar en YouTube los viernes, seré yo quien se encargue de ir actualizando el blog y tratando de refrescarte la memoria y hacerte recordar todos esos conceptos y conocimientos que otros te han ido enseñando a lo largo de estos años.
Hola joven, ya que me estás leyendo me presento. Mi nombre es Darío, me dedico a programar aplicaciones móviles y vivo en un universo paralelo de hace 3 años. Soy la memoria de mi yo de hoy y voy a tratar de plasmar todos los conocimientos que he ido adquiriendo a lo largo de estos años para que no se me olviden y ayudar a otros a disfrutar de mi pasión, el desarrollo de software.
En esta primera aproximación te voy a contar qué necesitas saber para empezar a hacer aplicaciones móviles con Xamarin.Forms.
Si vienes del mundo del desarrollo de escritorio con UWP o con WPF, Xamarin.Forms te parecerá el primo de estas tecnologías y tu adaptación será sencilla. Eso sí, no te olvides que ahora son móviles, tendrás la parte de UI a mano, pero otros conceptos se harán bola. Nada grave, pero te toca ir paso a paso.
Si no has tenido contacto con XAML pero vienes del mundo C#, no será tan sencillo pero seguro que lo consigues, yo llegué. Sólo es cuestión de ver XAML como un apoyo o directamente utilizar C# para picar pantallas, eso ya lo vas decidiendo. Lo que te resulte más cómodo.
Si vienes del mundo nativo ya tienes mucho ganado y sólo necesitarás entender un poco cómo está pensado el framework para funcionar utilizando MVVM. Suena muy grandilocuente, pero al final es sólo seguir haciendo lo que hasta ahora, separar código para que todo esté en su sitio.
Independientemente de donde vengas, lo interesante es que quieras arrancar con una nueva tecnología, eso dice mucho de ti, así que vamos al lío.
Lo primero que necesitas es instalarte un software que te permita desarrollar aplicaciones Xamarin. Para esto tenemos diferentes opciones. Tenemos Visual Studio, Visual Studio For Mac y Rider. Muchas veces me preguntan cuál prefiero y siempre digo lo mismo, todos. Cada uno tiene sus cosillas, sus puntos fuertes y débiles. Mi consejo es que los pruebes todos si puedes y que utilices el que más te guste.
En mi día a día trabajo con un Mac en el que tengo una máquina virtual con Windows y me muevo entre los 3 IDE en función de la tarea que me toque, Por ejemplo, cuando necesito hacer un refactor grande suelo utilizar Rider. Para generar paquetes finales tiro de Visual Studio for Mac y para el resto de tareas Visual Studio 2019 en Windows. Reconozco que éste último es mi favorito.
En fin que esto es para el entorno de desarrollo, que supongo que tendrás algo de esto en tu ordenador instalado, pero es el primer capítulo, iremos viendo cosillas poco a poco y así me voy recordando todo lo que he aprendido y el cambio que ha dado Xamarin.Forms desde que llegué a la plataforma hasta hoy que ha sido grande y apasionante.
Algo que no es negociable para programar aplicaciones con Xamarin.Forms es saber programar con C# o F#, aunque F# es muy minoritario, existe y merece mucho la pena echarle un ojo, tiene algunos conceptos muy interesantes y te hace pensar, que es lo que mola.
Otra pregunta que me hacen a menudo es acerca del equipamiento. Sí, vas a necesitar un Mac si quieres hacer aplicaciones para iOS. No es imperativo para arrancar y puedes trabajar con Windows para hacer todo el desarrollo, yo lo hago, pero al final, en algún punto del camino hace falta un Mac. Hay muchas opciones y si sólo haces esto por diversión no necesitas gastarte el dinero en un Mac, pero si te vas a dedicar a hacer aplicaciones móviles, terminarás por llegar a Mac.
Otra de las preguntas habituales es si se necesitan conocimientos previos de las plataformas. La respuesta corta es no, pero es mentira. Es cierto que Xamarin.Forms nos da una abstracción mágica de las plataformas, pero no te olvides de algo, siempre llegarás a un punto en el que necesites entender porqué funciona en una plataforma y falla en otra y tendrás que conocerlas bien para evitar situaciones de estrés. Xamarin.Forms es una abstracción de la UI, por debajo hay un montón de decisiones de gente que conoce las plataformas nativas muy bien y nos permiten hacer cosillas, pero tenlo siempre en la cabeza, cuanto más aprendas de cada plataforma, mas apreciarás Xamarin.Forms y su versatilidad.
La siguiente pregunta habitual es acerca de frameworks MVVM. Si estás empezando creo que debes dejar eso a un lado y centrarte en conocer las bases, ya habrá momento de arrancar a buscar cuál se adapta mejor a tus necesidades.
Por último tengo la pregunta que más me gusta, XAML o C#?. Esta me encanta porque tengo una librería que te permite crear toda la UI con C#, XamFluentUI. Sin embargo, en mi día a día mezclo los dos. Normalmente utilizo XAML, pero el proyecto en el que trabajo tiene unos requerimientos muy concretos y el mejor camino que he conseguido para mantener cierto orden ha sido utilizar C# para generar los estilos tirando de una interface, pero en líneas generales prefiero XAML. Eso sí, lo que más me gusta es que tengo la posibilidad de elegir y es algo que aprecio mucho. De hecho a día de hoy se ha publicado la version 4.6 en preview que incluye un montón de métodos de extensión para utilizar C#. Ya ves, opciones no nos faltan.
Bueno, parece que esto se alarga, así que llega el momento de decirte hasta luego y te sigo contando en el siguiente capítulo.