Introducción
Una vez desarrollada una aplicación, recibir feedback sobre la misma es sumamente útil. Sería interesante saber información como cuanto tiempo estan los usuarios con nuestra aplicación, por que páginas navega, por donde nunca pasa el usuario, desde que dispositivos accede, errores, etc. Con esta información podemos sacar muchas conclusiones como detectar problemas de UX, añadir un mayor esfuerzo en zonas de la aplicación donde el usuario pasa la mayor parte del tiempo, esforzarnos por facilitar y promover el acceso a zonas apenas accedidas, corrección de bugs, etc.
¿Cómo podemos obtener toda esa información?
En este artículo, vamos a ver paso a paso como integrar una aplicación Xamarin.Forms con Visual Studio Mobile Center con el objetivo de descubrir y analizar errores en nuestras aplicaciones.
Mobile Center
Mobile Center es un centro de control de nuestras aplicaciones móviles. Mobile Center soporta tanto aplicaciones Xamarin como aplicaciones nativas con Java, Objective-C o Swift además de aplicaciones React Native.
Incluye:
- Build: Integración y entrega continua.
- Test: Pruebas automáticas en dispositivos reales.
- Reporte de errores: Analíticas de errores en tiempo real.
- Distribución: Despliegue a usuarios o grupos.
- Analíticas: Métricas de uso.
- Autenticación: Integración sencilla con métodos comunes.
- EasyTables: Crear almacenamiento de forma muy rápida.
Crear la App
Accedemos al portal de Mobile Center.

NOTA: Si no tienes cuenta de Mobile Center, puedes crear una desde este enlace.
Tras acceder al portal, debemos crear una nueva aplicación.

Se debe introducir el nombre de la aplicación, elegir Xamarin como plataforma y sistema operativo (iOS, Android o Windows). En este ejemplo, seleccionaremos Android.
Tras crear la aplicación, tenemos información disponible de que hacer para integrar Mobile Center en nuestra aplicación.

Vamos a ello!
Preparar la App
Debemos gestionar los paquetes NuGet a nivel de solución (todos los proyectos que componen la solución Xamarin) para añadir las siguientes referencias:
- Microsoft.Azure.Mobile.Analytics
- Microsoft.Azure.Mobile.Crashes


Es hora de inicializar las analíticas. En la librería portable (PCL), en el archivo App.xaml.cs se deben añadir los siguientes using:
using Microsoft.Azure.Mobile; using Microsoft.Azure.Mobile.Analytics; using Microsoft.Azure.Mobile.Crashes;
A continuación, en el método OnStart que se lanzará al iniciar la App:
MobileCenter.Start("android={Insert App secret here}", typeof(Analytics), typeof(Crashes));
El código anterior, inicializa Mobile Center SDK en Android. Sin embargo, estamos en una aplicación Xamarin.Forms, ¿qué courre con el resto de plataformas?. Podemos inicializar más de una plataforma especificándola:
MobileCenter.Start("ios={Insert iOS App secret here};uwp={Insert UWP App secret here};android={Insert Android App secret here}", typeof(Analytics), typeof(Crashes));
Llegados a este punto, recibiremos analíticas en el portal como:
- Actividad de usuarios
- Sesiones por usuario diarias
- Durración de cada sesión
- Dispositivos más usados
- Países
- Actividad por versiones
- Errores
Vamos a ver a continuación como registrar eventos personalizados o excepciones. Creamos una interfaz muy simple que nos permita hacer pruebas de registro de eventos y excepciones:

Para registrar eventos personalizados utilizamos el método TrackEvent. Además de pasar una cadena con el nombre del evento, podemos utilizar un Dictionary para capturar diferentes parámetros.
var properties = new Dictionary<string, string> { { "Parameter", "Data" } }; Analytics.TrackEvent("EventBtn Clicked", properties);
¿Y qué debemos hacer para registrar excepciones?. En el arranque de la App inicializamos ya el registro de excepciones, no se requiere nada más. Si lanzamos con el segundo botón una excepción:
throw new Exception("Exception information");
Quedará registrada.
Revisar analíticas
Accediendo al portal de Mobile Center, y entrando en nuestra App, tendremos acceso a analíticas desde los apartados Crashes y Analytics.
En Analytics tendremos información como:
- Usuarios activos.
- Sesiones diarias.
- Duración decada sesión.
- Dispositivos.
- Versiones del sistema operativo.
- Países.
- Lenguajes.

Dentro del apartado de Analytics encontramos los eventos personalizados en Events:

De nuevo tenemos información detallada como:
- Listado de eventos.
- Total de veces que se lanza el evento por usuario o por sesión.
- Listado de parámetros.
Y llegamos a uno de los apartados más interesantes, Crashes:

Tenemos la traza del error detallado además de información extra que nos puede ayudar bastante como el dispositivo o versión del sistema operativo.
Tenéis el código fuente del ejemplo utilizado disponible en GitHub:
Más información
- Visual Studio: Visual Studio Mobile Center