
Naiz Fit: campañas de testing configurables
Una marca que fabrica ropa juega contra una estadística cruel: cada fallo de tallaje es una devolución, un descuento o una prenda que no se vende. Naiz Fit vendía a esas empresas campañas de tallaje con usuarios de prueba: gente real probándose la ropa antes de producirla a escala.
La visión era que el testing pudiera hacerse incluso en casa, sin supervisión. La lógica de testeo estaba muy pulida —y no era sencilla—, así que hacía falta un sistema capaz de recabar la información de los testers sin fricción. Ese sistema fue la Survey App.
Las restricciones
Dos condicionantes marcaron todas las decisiones:
- Offline de verdad: algunos testeos se hacían en lugares sin internet. La app tenía que funcionar en local y sincronizar después.
- Un solo desarrollador: yo. Sin equipo para mantener dos aplicaciones nativas.
Kotlin Multiplatform
Con esas dos cartas sobre la mesa, la elección se hizo sola: Kotlin Multiplatform con Compose Multiplatform. Una sola base de código —lógica y UI— entregando iOS y Android.
El motor de encuestas
El corazón de la app es un motor de encuestas definido con el sistema de tipos de Kotlin:
- Preguntas tipadas: texto, número, fecha, fotos, opciones.
- Validaciones y mensajes de error propios por pregunta.
- Desvíos: el grafo de navegación es un dato serializable. Si eliges una cosa, la encuesta va por un camino; si otra, por otro.
Cada campaña se provisiona como un único JSON: el tester escanea un código QR, la app descarga la encuesta y el builder reconstruye preguntas, flujo y validaciones. Las respuestas se guardan en el dispositivo y se sincronizan cuando vuelve la red —Firebase Realtime Database con persistencia local para los datos y Storage para las fotos—.
Entrega continua
Monté un CI/CD completo con GitHub Actions: cada entrega compilaba la app y la distribuía a los testers —Android a través de Firebase App Distribution e iOS a través de TestFlight—. Con una sola persona en el proyecto, que la entrega fuera automática no era un lujo: era la única forma de iterar rápido.
El reto
Unos ocho meses para aprender Kotlin y Kotlin Multiplatform y entregar un prototipo funcional. No llegaba de cero con las encuestas dinámicas —ya había construido sistemas parecidos en LIN3S y en mi aplicación Formidable—, pero esta fue la implementación más avanzada que he hecho para un caso de uso así.
Conclusiones
Hay sistemas informáticos que dependen de la entrega de información estructurada. Naiz Fit la usaba para el testing de tallaje, pero el mismo patrón —definir un esquema, provisionarlo, recabar respuestas y sincronizarlas— sirve para reportar información voluntaria de usuarios o empleados, para recabar datos con los que entrenar modelos de IA, para sistemas logísticos avanzados o para sistemas de gobernanza complejos.