Guía para principiantes de Xamarin
Desde Microsoft estamos apostando fuerte por herramientas que nos permitan desarrollar aplicaciones multiplataforma. En el caso de los móviles no iba a ser menos, y para ello contamos con Xamarin.
Es la herramienta con la que podrás desarrollar aplicaciones móviles nativas para Android, iOS y Windows Phone. Es decir, un único proyecto de código compartido te servirá para cada una de estas plataformas.
Eso sí, una herramienta de estas características precisa de bastantes dependencias, como del JDK de Java, SDK de Android, los emuladores e incluso un MAC para compilar las aplicaciones de iOS. Por ello, es imprescindible configurar bien el IDE, así como saber algunos trucos básicos a aplicar durante el desarrollo de nuestras apps móviles.
Ya que la mayoría de los problemas surgen al principio, cuando instalamos Xamarin, configuramos el entorno, y creamos nuestro primer “Hello World” , vamos a ver los pasos a seguir durante la instalación y configuración.
Como este post está dirigido a aquellos que estáis empezando con Xamarin, seguro que os viene muy bien la documentación oficial, así como el enlace al foro oficial de Xamarin.
A día de hoy no hay ninguna comunidad o foro público de Xamarin en castellano que tenga gran actividad. Así que os animamos a que forméis vuestros propios foros para hacer crecer esta comunidad de developers.
Instalación
Lo primero y más importante de todo, instalar bien el entorno de desarrollo. Una buena instalación va a evitar muchos problemas en el futuro y sobre todo va a hacer que nos ahorremos gran cantidad de tiempo en intentar solucionarlos.
Para desarrollar Xamarin vas a necesitar el Visual Studio, si estás con un Windows, o Xamarin Studio para el MAC. Ambas herramientas son gratuitas. Podrás descargar la versión Community del VS desde aquí o el XS en este enlace.
Ya que los proyectos de Xamarin dependen de varios paquetes y SDKs del Visual Studio, en este video se muestra cómo configurar su instalación para Visual Studio 2015, así como la compilación de la plantilla que viene por defecto, en las tres plataformas.
Un Clean soluciona muchos problemas
La opción de Clean nos sirve para borrar las variables que ha utilizado el Visual Studio al hacer la compilación. Si hubiese archivos en el directorio al que se dirige cuando compila (/bin y objetos), estos no se van a borrar, a no ser que hagamos un clean.
Por tanto, ante un error de este tipo:
Build action 'EmbeddedResource' is not supported by one or more of the project's targets.
C:\Users\daorti\Microsoft\OneDrive - Microsoft\Charlas\Academic Tour\Xamarin\4_Xamarin_Forms\XamarinDemo.Forms\XamarinDemo.Forms\MainPage.xaml
Lo mejor es hacer un Clean desde el Solution Explorer.
Evitar rutas largas
Muchas veces surge este tipo de problema con Xamarin. Seguramente se solucione en la siguiente release, pero hasta entonces, lo ideal es almacenar nuestro proyecto en rutas cortas. Por ejemplo en C:/ . Este sería el típico error que nos salta cuando tenemos este problema:
The "CreateAdditionalLibraryResourceCache" task failed unexpectedly.System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.InternalGetDirectoryName(String path) at Xamarin.Android.Tools.Files.CopyIfChanged(String source, String destination) at Xamarin.Android.Tasks.CreateAdditionalLibraryResourceCache.Execute() at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Si no hemos creado el Proyecto en una ruta corta, sino que lo estamos moviendo desde una larga, lo recomendable al reabrir el proyecto es hacer un Clean antes de recompilar de nuevo.
Configuración del JDK de Java
Es posible que tengamos problemas con el JDK de Java o bien que no lo tengamos descargado o que la versión no es la última. Si se diese la ocasión, podríamos tener este tipo de error:
java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
En tal caso, hay que dirigirse a la web de Oracle y descargar la última versión de Java. A continuación, tienes que indicarle al Visual Studio dónde está el JDK, desde Tools – Options – Xamarin. Una vez configurado, debería aparecerte un tick verde:
Configuración del MAC
Aunque en el vídeo de instalación se muestran unas pequeñas pinceladas de cómo ejecutar la aplicación en iOS, en este apartado veremos los pasos necesarios para poder compilar este proyecto:
- Conectamos tanto el equipo Windows donde estemos desarrollando en Xamarin como el MAC a la misma red. No hace falta que estén físicamente en la misma LAN, ya que si ambos ordenadores pertenecen a la misma VPN, podréis acceder al MAC de manera remota.
- En segundo lugar, hay que instalar en el MAC el xcode y Xamarin Studio .
- Asegúrate de tener actualizados tanto el Xamarin de Visual Studio como el Xamarin Studio del Mac.
- Ahora necesitaremos o bien la dirección IP del MAC (la puedes sacar con el comando ifconfig desde el terminal) o el nombre del ordenador. Para el nombre del ordenador hay que ir a Preferencias del sistema -> Compartir -> Gestión Remota -> Nombre del ordenador.
- Ya tenemos configurados ambos entornos. Lo único que queda es la comunicación. Abrimos el Mac Agent desde Visual Studio, clickamos en Agregar Equipo e introducimos el nombre del ordenador. Seleccionamos Conectar, esperamos un rato y ya tenemos Visual Studio sincronizado con nuestro MAC.
Finalmente, establecemos el de iOS como proyecto de inicio, elegimos un dispositivo iPhone y lo ejecutamos. Tras un rato, debería abrirse el emulador de iOS en el MAC y lanzarse la aplicación.
Estos son algunos de los consejos a seguir para empezar a programar con Xamarin. Procura tener todas tus herramientas actualizadas porque van saliendo mejoras cada mes.
Xamarin es una herramienta muy potente, pero requiere de paciencia ya que se compone de muchas dependencias y como haya alguna mal configurada o desactualizada vamos a perder mucho tiempo tratando de resolverlo. Merece la pena pararse un momento a pensar qué necesito instalar y por qué, ya que luego no vamos a saber por dónde vienen los fallos.
Y una vez tengamos el entorno configurado, a partir de aquí empieza lo divertido :)
Daniel Ortiz
Technical Evangelist Intern
@ortizlopez91