Debo ser sincero con todos: no haré una declaración de propósitos de año nuevo para 2017. Tampoco la hice en 2016. De hecho, creo que nunca hice una. No es que tenga visión oscura de las declaraciones de propósitos de año nuevo. Simplemente, creo que si hiciera una sería muy probable que la incumpliera en solo una semana y me sintiera mal por ello.

Algo que me resultó útil en el pasado fue considerar el año nuevo como un punto de inflexión para probar nuevas alternativas y también mejorar el trabajo que ya estoy haciendo. Para mí (y espero que para ustedes también), 2017 será un año propicio para optimizar la calidad de las apps.

La frase “calidad de las apps” puede tener muchos significados diferentes según los aspectos que se valoren en el software que se crea y se usa. Desde mi perspectiva como desarrollador, esto tradicionalmente implica corregir errores que ocasionan problemas para los usuarios. También podría reflejar el nivel de satisfacción que experimentan los usuarios de una app. Todo esto se reduce a la principal métrica con la que contamos para medir la calidad de una app móvil: su calificación en la tienda en la que se publica. Estoy seguro de que aquellos de ustedes que tengan una app en una vidriera han prestado mucha atención a la calificación de esta en algún punto.

Firebase proporciona algunas herramientas que pueden usar para optimizar la calidad de sus apps. Si aún no las usan, es posible que un panorama les resulte útil este año.

Firebase Crash Reporting

La herramienta más sencilla para dar los primeros pasos es Firebase Crash Reporting. Casi no necesitarán líneas de código para integrarla a sus apps de iOS y Android, y una vez que lo hagan la consola de Firebase comenzará a mostrar los bloqueos que experimenten sus usuarios. Con esto, obtendrán una “lista de resultados” con problemas que deberán solucionarse.
Como parte del equipo de informe de fallos, me resulta irónica la forma en que consideramos la entrada de bloqueos totales recibidos al monitorizar nuestro sistema. Al igual que con cualquier buen producto para desarrolladores, nos esforzamos por aumentar la adopción. Esto significa que celebramos cuando la proyección en un gráfico tiene dirección “ascendente y hacia la derecha”. Por lo tanto, en cierto extraño sentido, nos agrada ver más bloqueos porque esto indica que más desarrolladores usan nuestro producto. Pero para todos ustedes, los desarrolladores, una mayor cantidad de bloqueos es obviamente algo *negativo* y deben procurar que las cifras disminuyan. Por ello, eviten lo que hacemos nosotros: hagan que en 2017 las proyecciones en sus gráficos de informes de fallos de fallos tengan dirección descendente y hacia la derecha.

Presentación de Firebase Test Lab for Android

Aun mejor que solucionar un problema, cuando los usuarios lo experimentan, es evitar que este llegue siquiera a afectarlos. Para sus apps de Android, pueden usar Firebase Test Lab a fin de asegurarse de que estas ofrezcan un funcionamiento óptimo a sus usuarios para la creciente variedad de dispositivos reales que abarcamos. Tradicionalmente, ha sido muy difícil adquirir y abarcar una buena selección de dispositivos para pruebas. Sin embargo, con Test Lab simplemente deben cargarse los APK y las pruebas; la herramienta luego los instala y ejecuta en los dispositivos. Una vez que se completen las pruebas, proporcionaremos la totalidad de las capturas de pantalla, los videos y los registros de todo lo sucedido para que los examinen en la consola de Firebase.

Gracias a la disponibilidad actual de Firebase Test Lab for Android con amplias cuotas diarias sin costo para proyectos en el nivel de Spark, 2017 será un excelente año para poner manos a la obra. A su vez, si no han configurado sus compilaciones de apps de Android en un entorno de integración continua, podrían hacerlo y luego aplicar ajustes para que se ejecuten sus pruebas de manera automática en Test Lab.

Si pertenecen a ese grupo de personas a las que les agrada escribir pruebas para su código (ciertamente, no hay demasiados entre nosotros), lo natural será hacer que esas pruebas se ejecuten en Test Lab. Sin embargo, aquellos de nosotros que no mantengamos un conjunto de pruebas con nuestra base de códigos podemos usar la prueba de Robo de Test Lab para obtener cobertura de pruebas automatizada de inmediato, sin que se necesiten líneas de código adicionales. No es lo mismo que contar con un conjunto de pruebas abarcador. Por ello, es posible que 2017 sea un buen año para aprender más acerca de la creación de apps que pueden someterse a prueba y de la forma en que dichas prácticas pueden elevar el nivel de calidad para sus apps. Planeo redactar más artículos sobre esto posteriormente, durante el año. Permanezcan atentos a las novedades del blog de Firebase para obtener más información.

Firebase Remote Config

En su esencia, Firebase Remote Config es una herramienta que les permite configurar sus apps usando parámetros que se configuran en la consola de Firebase. Se puede usar para administrar la calidad de sus apps, y es posible aplicar algunos trucos estupendos con ella. ¡Tal vez este año haya nuevas oportunidades de probarlos!

En primer lugar, pueden usar la configuración remota a fin de implementar una nueva función para sus usuarios con los recaudos correspondientes. El funcionamiento es el siguiente:
  1. Codifiquen su nueva función y restrinjan el acceso a esta por parte del usuario a través de un parámetro booleano de configuración remota. Si el valor es “false”, sus usuarios no verán la función. Fijen este parámetro como valor predeterminado en la app.
  2. Configuren el parámetro en la consola de Firebase de modo que inicialmente también sea “false” para todos los usuarios.
  3. Publiquen sus apps en la tienda.
  4. Cuando sea el momento de implementar la nueva función para un segmento de usuarios pequeño, fijen el parámetro en “true” para el cinco por ciento de la base de usuarios (por dar una cifra).
  5. Permanezcan atentos a la presentación de nuevos bloqueos en Firebase Crash Reporting y también a los comentarios de sus usuarios.
  6. Si existe un problema en la nueva función, reviértanla de inmediato fijando el parámetro en “false” en la consola para todos los usuarios.
  7. Si el panorama es favorable, aumenten el porcentaje a medida que pase el tiempo hasta alcanzar el 100% de los usuarios.




Este método es mucho más seguro que el de publicar sus nuevas funciones para todos los usuarios con una sola actualización de las apps, ya que tienen la opción de desarticular de inmediato un problema serio, además de no tener que compilar ni publicar una versión totalmente nueva de sus apps. A su vez, si pueden tomar medidas rápidamente, la mayoría de sus usuarios jamás experimentarán el problema. Esto funciona bien con las alertas de correo electrónico que reciben de Firebase Crash Reporting cuando se observa un nuevo bloqueo.

Otra función de la configuración remota es la capacidad de experimentar con determinados aspectos de las apps, a fin de determinar lo más conveniente para los usuarios, y luego medir los resultados en Firebase Analytics. No sé si a ustedes les sucede lo mismo, pero en general tengo bastantes dificultades para intuir lo que desean las personas y a veces me sorprende el *uso* que podrían darle a una app. No hagan conjeturas; en lugar de ello, realicen un experimento y determinen con precisión lo que más satisfacción produce a sus usuarios. Es lógico que las apps configuradas de esta manera pueden obtener mejores calificaciones y generar más ganancias.

Base de datos en tiempo real de Firebase

Tiene sentido pensar que cuando se logra que resulte más sencillo para un usuario realizar tareas en sus apps, estos disfrutan más al usarlas y vuelven a hacerlo con mayor frecuencia. Algo que nunca me agradó es tener que buscar información nueva mediante actualizaciones o navegación hacia atrás y nuevamente hacia adelante. Resulta más placentera la experiencia de uso de las apps que siempre permanecen actualizadas sin necesidad de intervenciones.

Pueden lograr esto con sus apps usando de manera eficaz la base de datos en tiempo real de Firebase para brindar datos importantes de manera directa a sus usuarios en el momento en que se modifiquen en la base de datos. La base de datos en tiempo real es reactiva por naturaleza, ya que la API de cliente está diseñada para la configuración de receptores en ubicaciones de datos que se activan ante un cambio. Esto es mucho más conveniente que realizar repetidamente consultas a un terminal de API en busca de cambios, y también contribuye mucho más a preservar los datos móviles y la duración de la batería del dispositivo de un usuario. Los usuarios asocian esta sensación de satisfacción a las apps de alta calidad.

¿Qué deparará 2017 para sus apps?

Espero que se unan a mí este año para ampliar el esfuerzo por lograr que nuestros usuarios estén aun más satisfechos. Si comparten mi idea, no duden en enviarme tuits a @CodingDoug y comunicarme sus planes para 2017.