El pasado 21 de Noviembre nos invitaron a presentar meets y dar una charla en Betabeers VLC. Al no conocer el nivel de especialización de los asistentes propusimos 3 temas diferentes para diferentes niveles y diferentes gustos: «Técnicas avanzadas con CSS3 y Javascript», «Uso avanzado de bloques en Objective-C» y por último «3 herramientas web para tener tus apps bien controladas». Finalmente nos decidimos por la última.
Existen multitud de herramientas web para control de métricas, gestionar releases, crash reporting… Incluso habrá ocasiones que con todo lo que hay ahí fuera necesitemos implementar nuestras propias herramientas. Pero mi consejo es no perder tiempo en desarrollar algo si ya lo ha hecho alguien antes.
En esta charla hablé de algunas de las herramientas que usamos en meets.
- Testflight para la gestión y distribución de betas.
- Crashlytics, como crash reporter.
- Mixpanel para métricas.
Bueno, en meets usamos algunas cosas más pero no tenía tiempo de hablar de todo en los 15 minutos que duraba la presentación.
Testflight
Tesflight viene a solucionar un problema con el que todo desarrollador iOS ha tenido que pegarse. La distribución ad-hoc. Si hay algún iOS developer leyendo esto sabrá de que estoy hablando, generar provisioning profiles, gestionar los UDIDs de los betatesters, pasar los provisioning y los IPAs, generación de plist para distribución ad-hoc…
Testflight está aquí para aliviarnos todo este dolor. Es muy simple, de hecho podemos usar toda la funcionalidad de distribución de betas sin ni si quiera integrar su SDK en nuestro proyecto.
Lo primero es reclutar a nuestros beta testers, así que desde testflight podemos enviar emails a conocidos o incluso nos ofrece la posibilidad de captar betatesters de la comunidad. Cada uno de ellos recibirá un email con las instrucciones y una vez completen el proceso de registro se les instalará en su dispositivo un webclip desde el que poder acceder a nuestras betas.
Al mismo tiempo nosotros recibiremos un email con los UDIDs del tester para poder añadirlos a la lista de devices del provisioning portal. Una vez hemos añadido los UDIDs y actualizado el provisioning profile para distribución ad-hoc, lo único que nos queda es compilar, archivar y subir el ipa de nuestra app a testflight.
Antes de distribuir la beta tesflight nos pedirá que confirmemos los testers a los que queremos llegar, en este paso podemos actualizar el provisioning por si hemos añadido usuarios nuevos. Una vez esté todo enviamos.
Nuestros testers recibirán un email con los detalles de la versión y las instrucciones para instalar. Ya está. Además podemos ver quienes de nuestros testers han recibido el email, lo han abierto y han instalado.
Todo el tema de distribución de betas es posible sin integrar el SDK, si lo integramos vamos a tener acceso a sesiones, que nos permite saber quienes son los betatesters más activos, Integrar un formulario de feedback, controlar checkpoints e incluso un crashreporting. Pero nosotros para estas cosas usamos Crashlytics y Mixpanel, que son bastante más completas.
Mixpanel
Mixpanel en un sistemas de métricas completamente orientado a eventos, es decir no trackeamos páginas si no acciones.
Está disponible para multiples plataformas y lo mejor es todo lo que podemos hacer con él para moldear nuestros datos: sacar embudos, gráficos de retención, segmentar datos. Además podemos enviar notificaciones, cuestionarios y controlar ingresos.
La integración es muy simple, basta con integrar la librería, en el caso de iOS tiene versión en cocoa-pods. A la hora de realizar el trackeo tenemos dos opciones: mandar eventos con propiedades y setear la información del usuario.
Tristemente Mixpanel solo es gratuito hasta 25.000 puntos de información, (es decir cada vez que mandamos un evento) pero por suerte existe un modelo con el que si incluimos el logo de mixpanel en nuestra web ganamos 175K puntos de forma gratuita.
Crashlytics
Por último hable de una herramienta que es muy útil para detectar errores que hayan podido pasar inadvertidos durarte el desarrollo, Crashlytics.
Crashlytics proporciona completos informes de fallos de nuestra aplicación. Cada vez que la app sufre un crash este es recogido por Crashtytics lo analiza y lo prioriza. De este modo el desarrollador puede conocer inmediatamente cuáles son los problemas que más impacto tienen sobre la aplicación y valorar la necesidad de una actualización urgente de la app.
Hace un procesamiento de la información con el que es capaz de indicarnos si el problema se produce en un modelo/versión de un terminal concreto. Incluso puede detectar si se trata de un bug que aparece sólo cuando el terminal está en landscape, cuando está bajo de batería, etc.
En estos momentos Crashlytics está disponible para Android y para iOS y es gratuito.