Android en Xamarin: Conceptos generales, consideraciones y configuraciones

En el post anterior vimos cómo crear nuestra aplicación con Xamarin.Forms, corriendo en Android una de las aplicaciones target. La idea de este post es explicar cómo configurar el entorno de desarrollo y las consideraciones que tenemos que tener en cuenta sobre la misma.

Para ello hay tres aspectos que debemos tener en cuenta:

  • Dependencias según las versiones de Android que usemos
  • Configuración del proyecto Android en Visual Studio
  • Correr la aplicación en emuladores

Veamos en detalle cada uno de estos puntos:


Android SDK Manager

Esta es una de las partes fundamentales para el desarrollo de aplicaciones Android en general ya que es donde vamos a poder descargar todas las dependencias necesarias para el desarrollo.

Algo que hay que explicar como introducción es que en Android existe un concepto muy importante que son los API Levels, que es lo que habitualmente acostumbramos a mencionar como las diferentes versiones de Android disponibles en general. Actualmente tenemos disponibles los recursos desde la API 7 (Android 2.1) hasta la API 25 (Android 7.1.1). En el Android SDK Manager los distintos recursos se encuentran agrupados por cada API Level disponible, teniendo los siguientes recursos disponibles para descarga:

  • Documentación
  • SDK Platform
  • Imágenes de emuladores
  • Código fuente de la versión

XamarinEntornoAndroid - SDKManager.png

Para lo que es el desarrollo en general que queremos realizar solamente necesitaremos instalar el SDK Platform de las versiones de Android que usemos para desarrollar nuestras aplicaciones (más adelante volveremos sobre este tema).

Otra cosa que nos será útil instalar son las imágenes de los emuladores, para después crear distintas instancias usando las mismas, lo cual veremos en el siguiente apartado.

Hay un par de cosas más que son importantes de considerar en el Android SDK Manager, las Tools y los Extras. En las Tools podremos instalar por ejemplo las herramientas de compilación asociadas a las últimas versiones de Android, y en los Extras aquellos puntos adicionales que podamos necesitar, como integraciones con Google Play Services.

xamarinentornoandroid-sdkmanagertoolsxamarinentornoandroid-sdkmanagerextras


Emuladores

Aquí contamos con una alternativa nativa, que son los emuladores que podremos administrar en el Android Virtual Device Manager (o AVD Manager). En el mismo podremos configurar los emuladores creados a partir de la imagen del sistema que descargamos en el Android SDK Manager, configurando distintos aspectos del mismo como el dispositivo en si a emular, memoria RAM, cámara y almacenamiento interno.

XamarinEntornoAndroid - AVDCrear.png

Como mencionamos anteriormente para poder crear un emulador de una determinada versión de Android primero deberemos instalar la imagen del emulador correspondiente desde el Android SDK Manager, y luego recién lo tendremos disponible para poder usarlo.

Luego directamente desde el AVD Manager lo podremos ejecutar para luego correr nuestras aplicaciones.

XamarinEntornoAndroid - AVDOpciones.png

El cual luego de un par de minutos de inicialización ya lo tenemos ejecutando en nuestra PC locamente, listo para ejecutar nuestros desarrollos:

XamarinEntornoAndroid - AVDEmulador.png

 

Los emuladores son un aspecto fundamental en el desarrollo de aplicaciones Android. ¿Quieren saber por qué? Veamos la siguiente imagen:

XamarinEntornoAndroid - SegmentacionDispositivos.png

En la misma podemos ver los distintos dispositivos que ejecutan Android en el mercado y su cuota. Cada uno de estos dispositivos tiene sus características de hardware, como CPU, memoria disponible y distintos tamaños de pantalla.

Como podemos apreciar es un universo de dispositivos distintos, y es prácticamente imposible que tengamos la cantidad suficiente de dispositivos para poder hacer pruebas en al menos una cantidad razonable de posibles escenarios reales de uso. Con los emuladores esto se vuelve mucho más sencillo, ya que tenemos la libertad de poder crear la configuración que estemos necesitando, desde la versión de Android que ejecutan, arquitectura del procesador, memoria RAM, resolución y tipo de pantalla.

Seguramente necesitemos algún que otro dispositivo físico real para poder probar nuestras aplicaciones, pero con los emuladores podemos hacer gran parte de las pruebas necesarias para garantizar funcionamiento y compatibilidad.


Configuraciones en las Apps Xamarin

Ahora volveremos a Visual Studio y trabajaremos sobre un proyecto Android. En este caso usaré la solución que hemos creado en el post anterior para Xamarin.Forms, la cual tiene un proyecto Android como target. Para trabajar sobre la configuración de esa aplicación lo que haremos es ir a las propiedades del proyecto.

Lo primero con lo que nos encontraremos es con la pestaña de configuración general de la aplicación:

XamarinEntornoAndroid - ApplicationOptions.png

Como podemos apreciar en esta opción podremos configurar algunos aspectos asociados a C# como el namespace y nombre del assembly. Sin embargo, para lo que es el desarrollo de aplicaciones Android, lo que más nos importará es el grupo de opciones que tenemos debajo.

En las mismas podremos configurar la versión de Android para la cual querremos compilar y distribuir nuestra aplicación, además de la versión mínima a la cual le daremos soporte. Ambos son un aspecto realmente muy importante en el desarrollo mobile en Android.

Con el primer punto estableceremos la versión con la cual compilamos la aplicación, lo cual implica que se aplicarán sobre la misma las distintas características definidas en el SDK Platform de la misma, como por ejemplo los distintos aspectos de diseño y lineamientos definidos para esa versión. Por ejemplo si usamos una versión mayor a Android 5.0 estaremos usando los componentes definidos en Material Design. Aquí la idea en general será intentar usar siempre la versión más alta disponible, pero siempre que hagamos un cambio deberemos validar que el funcionamiento general de nuestra aplicación sea el adecuado.

La segunda opción será la versión mínima de Android a la que le daremos soporte. Este es un aspecto muy importante y que en ciertos casos puede ser un poco problemático o engorroso si no somos cuidadosos. La situación aquí radica en por una parte en la segmentación que hay en las versiones de Android, debido a que hay ciertos dispositivos que llegaron a una versión específica de Android y luego no han recibido actualizaciones. Además de que muchas veces van surgiendo nuevas funcionalidades disponibles en determinadas versiones, que claramente en las versiones anteriores no existen. Y para terminar de sumar algo más de contexto a esta situación, nos encontramos con el tema de la compatibilidad de nuestros desarrollos, ya que con las distintas versiones de Android han cambiado formas y opciones para lograr ciertos comportamientos disponibles en distintas versiones, lo que hace que cuanto más amplia sea esta brecha que querramos lograr en compatibilidad, mayor esfuerzo nos demandará en desarrollo.

Esto es como para dar un panorama en general, sin embargo esto no implica que siempre dar compatibilidad en Android sea una tarea tediosa o casi imposible. Esto es algo que en las últimas versiones de Android se ha mejorado muchísimo, haciéndonos el trabajo realmente más simple. La clave de todo esto es que no debemos elegir una versión mínima sin antes haber hecho un análisis de lo que nuestra aplicación necesita ofrecer y cuan amplia debe ser nuestra brecha de compatibilidad en versiones de Android.

Analicemos el siguiente gráfico, el cual nos muestra la segmentación de versiones que tiene Android al 5 de diciembre de 2016:

XamarinEntornoAndroid - SegmentacionVersiones.png

Como podemos apreciar, con usar como versión mínima Android 4.1.x estaremos dejando afuera de nuestro abanico de posibilidades solo el 2,5% del universo de dispositivos Android, además de que nos ahorramos una gran cantidad de desarrollo para lograr compatibilidad en versiones de muchos años atrás, trabajando con las más recientes que son mucho mejores sobre ese punto.

A modo de resumen, debemos compilar nuestra aplicación en lo posible en la versión más alta de Android disponible, y usar como versión mínima la más baja posible sin comprometer tiempos de desarrollo ni funcionalidad de nuestras aplicaciones. Como consideración, para la versión que elijamos en ambas opciones debemos tener instalado el SDK Platform correspondiente a dicha versión.

En la siguiente pestaña de configuración sobre las propiedades del proyecto podremos configurar todo lo asociado al Android Manifest, esto es decir todo aquello que describe nuestra aplicación:

XamarinEntornoAndroid - AndroidManifest.png

Como se puede apreciar es aquí donde configuraremos el nombre de la aplicación y del paquete, el número de versión y todos los permisos que la misma necesita.

Finalmente tenemos la pestaña de Opciones de Android, donde podremos configurar algunas opciones más avanzadas, sobre las cuales no entraremos en mayores detalles por el momento.

XamarinEntornoAndroid - AdvancedOptions.png

 


Conclusiones

Como podemos apreciar, hay ciertos aspectos a tener en cuenta a la hora de desarrollar una aplicación para Android. Para lograr un resultado final acorde a nuestras expectativas debemos tener en cuenta estos aspectos.

Sin embargo conociéndolos y teniendo en cuenta su relación termina resultando sencillo dejar configurado todo nuestro entorno para poder desarrollar y ejecutar nuestras aplicaciones Android con Xamarin.

Espero que les sea útil, gracias por leer!!

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s