Dar soporte a iPhones que no tenemos
Nuestro equipo tiene los nuevos iPhone. Nuestros usuarios, no. Muchas de las personas que abren una de nuestras aplicaciones cualquier día utilizan un dispositivo que tiene tres, cuatro o, a veces, cinco años. Si solo hiciéramos pruebas con lo que llevamos en el bolsillo, estaríamos lanzando el producto para un público equivocado.
Esto es fácil de olvidar en un pequeño estudio. Cuando desarrollas todo el día con un hardware rápido, la rapidez se convierte en algo habitual, y cualquier cosa que simplemente funcione bien en un móvil antiguo deja de parecer un problema. La única solución fiable que hemos encontrado es tener el móvil antiguo delante de nosotros, físicamente, en todo momento.
Nuestra flota de referencia
Disponemos de un pequeño conjunto de dispositivos físicos: un iPhone de cada uno de los últimos cinco años, además del iPad más barato que se comercializa actualmente. Cada versión pasa por ese conjunto de dispositivos antes de salir del control de calidad, no solo por el hardware más reciente que tienen los ingenieros en sus escritorios. El teléfono de hace cinco años detecta problemas que ningún simulador es capaz de detectar.
La rutina no tiene nada de glamurosa. Instalar la versión, iniciarla en frío, desplazarse por la lista más larga de la aplicación, abrir la pantalla más pesada, girar el dispositivo, poner la aplicación en segundo plano y volver a ella. En el iPad también comprobamos la vista dividida, porque un iPad barato que ejecuta dos aplicaciones en paralelo es un dispositivo muy diferente de uno nuevo que ejecuta una sola. Nada de esto lleva mucho tiempo, y es la parte de la semana de lanzamiento que menos estamos dispuestos a saltarnos.
Este mismo razonamiento se aplica más allá del iPhone. Nuestras aplicaciones Android se prueban en dispositivos con especificaciones modestas, no solo en teléfonos insignia, y nuestras aplicaciones iPhone y iPad también se ejecutan en dispositivos Mac con Apple Silicon, donde un diseño que se veía bien en un teléfono puede aparecer de repente en una ventana redimensionable.
Lo que hemos aprendido
Las animaciones que se ven fluidas en el chip más nuevo se perciben lentas en uno de hace dos generaciones. Las opciones de decodificación de imágenes, que pasan desapercibidas en un Pro Max, pueden ralentizar el hilo principal en un SE básico. Los recursos de memoria, que son generosos en dispositivos de 8 GB, resultan escasos en los de 4 GB. Ninguno de estos aspectos se manifiesta como un error, sino como una sutil sensación de que la aplicación funciona peor en los teléfonos más económicos, que es precisamente la impresión que no queremos dar.
El error que cometimos al principio fue considerar el teléfono antiguo como una comprobación final en lugar de como una fuente de información para el diseño. Creábamos una pantalla, la perfeccionábamos en un hardware nuevo y solo entonces descubríamos que se entrecortaba en el dispositivo más antiguo; en ese momento, la solución implicaba volver a trabajar en algo que ya habíamos dado por terminado. Ahora el teléfono antiguo forma parte del proceso desde el primer prototipo. Si una animación o una lista no funciona bien en él, cambiamos el diseño, no solo el código.
Hay que hacer concesiones. Algunos efectos simplemente no merecen la pena si solo se ven bien en el hardware más moderno, así que los dejamos fuera. Eso hace que, en ocasiones, una aplicación parezca un poco más sencilla en una captura de pantalla que la de la competencia. No nos preocupa.
Nuestro mínimo
Dos versiones principales de iOS anteriores en todas las aplicaciones de Zydeno. El ritmo al que Apple deja de dar soporte a sus versiones es tan rápido que ir más allá complica mucho el mantenimiento del código, pero limitarse a las dos versiones anteriores marca la diferencia entre dar un buen servicio a la mayoría de nuestros usuarios y darlo solo a aquellos que tienen el software más reciente.
Mantener esa línea implica, en ocasiones, esperar antes de incorporar una nueva función al sistema, o desarrollarla de tal forma que la aplicación siga funcionando sin ella. Eso supone un coste real en tiempo de ingeniería. Preferimos asumir ese coste antes que decirle a alguien que su móvil, que funciona perfectamente, ya no nos basta.
El móvil barato es el crítico sincero. Lo tenemos en el escritorio por una razón.