Resumen del proyecto

Formtastic es un servicio para crear formularios y encuestas usado en escenarios de negocio con requisitos exigentes de estabilidad, velocidad y flexibilidad de interfaz. A medida que el proyecto crecía, quedó claro que seguir desarrollándolo requería no solo actualizar las tecnologías de cliente, sino también una optimización dirigida del lado servidor.

Pantalla de autenticación

Pantalla de autenticación

Pantalla principal

Pantalla principal

Editor de formularios

Editor de formularios

Lista de plantillas

Lista de plantillas

Editor de plantillas

Editor de plantillas

Migración de Django a Nuxt

Inicialmente, el front-end de Formtastic estaba implementado con plantillas de Django. Eso permitió un arranque rápido, pero con el tiempo ese enfoque empezó a limitar el desarrollo del producto. La interfaz se volvió más compleja, los cambios requerían la participación de un desarrollador de backend y el servidor hacía demasiado trabajo de renderizado de HTML, lo que perjudicaba la escalabilidad.

Como resultado, separamos el sistema a nivel arquitectónico. Django se mantuvo como backend principal y API, mientras que toda la interfaz de usuario se trasladó a un front-end independiente en Nuxt. Eso proporcionó una separación clara de responsabilidades y permitió que la interfaz evolucionara con independencia de la lógica de servidor.

Tras la migración, la velocidad de desarrollo de la UI aumentó de forma notable. El equipo empezó a publicar pantallas nuevas más rápido y a mejorar la experiencia de usuario, mientras que la carga del servidor bajó al dejar de encargarse del renderizado de páginas. Nuxt con y SSG también aportó mejoras significativas en SEO y velocidad de carga, lo que repercutió positivamente en marketing y en las páginas públicas.

En paralelo, el lado servidor empezó a evolucionar. En las áreas con más carga y requisitos estrictos de rendimiento, parte de la lógica se extrajo de Django y se implementó en Go como servicios independientes. Eso redujo la latencia, simplificó el escalado horizontal y eliminó cuellos de botella sin rehacer el backend por completo.

Migración de apps nativas a Flutter

Los clientes móviles de Formtastic se desarrollaron inicialmente como dos aplicaciones nativas independientes, una para iOS y otra para Android. A medida que el producto crecía, ese enfoque se volvió cada vez más ineficiente: el desarrollo se ralentizaba, las funcionalidades salían desincronizadas y mantener dos bases de código elevaba el .

La transición a Flutter nos permitió consolidar el desarrollo móvil en una única base de código. Eso simplificó notablemente el mantenimiento e hizo predecibles las entregas de nuevas funcionalidades. Las actualizaciones empezaron a salir a la vez en ambas plataformas, y la interfaz y el comportamiento de la app pasaron a ser completamente consistentes para todos los usuarios.

Desde el punto de vista de negocio el efecto fue directo: los costes de desarrollo y mantenimiento bajaron, el time to market se aceleró y el equipo ganó la capacidad de probar hipótesis y desarrollar el producto más rápido sin un aumento proporcional de costes. Al mismo tiempo, Flutter nos permitió mantener un alto rendimiento y una experiencia de usuario de calidad.

Aplicación de iOS

Lista de documentos

Lista de documentos

Editor de formularios

Editor de formularios

Lista de formularios

Lista de formularios

Sincronización de documentos

Sincronización de documentos

Pantalla de inicio

Pantalla de inicio

Aplicación de iPad

Pantalla de autenticación

Pantalla de autenticación

Pantalla principal

Pantalla principal

Editor de formularios

Editor de formularios

Búsqueda de formularios

Búsqueda de formularios

Diálogo de documento nuevo

Diálogo de documento nuevo

Durante años, Formtastic se publicó como dos apps nativas separadas: una para iOS y otra para Android. Cada funcionalidad había que construirla dos veces, las releases se desincronizaban entre plataformas y mantener dos bases de código iba drenando nuestra hoja de ruta en silencio.

Nerdy Production lo unificó todo en una única base de código Flutter sin interrumpir el producto del que dependen nuestros clientes. Ahora ambas apps publican las mismas funcionalidades al mismo tiempo, la experiencia es idéntica en iPhone y en Android, y nuestro tiempo hasta producción ha bajado drásticamente. Mantenemos una base de código en vez de dos, y el equipo por fin dedica su energía a funcionalidades nuevas en lugar de a mantener dos apps sincronizadas.

Julian Garbotz
Julian Garbotz
Director general, Formtastic GmbH

Resumen

Formtastic es un ejemplo de evolución tecnológica deliberada de un producto. Mover el front-end de Django a Nuxt simplificó el desarrollo de la versión web y aportó mejoras en velocidad y SEO. El uso dirigido de Go en el servidor resolvió los problemas de rendimiento sin cambios radicales de plataforma. La transición de apps móviles nativas a Flutter redujo los costes de propiedad y aceleró el desarrollo del producto. Como resultado, el sistema se volvió más estable, más flexible y mejor preparado para escalar.

Consolidar las dos apps nativas de Formtastic en una sola base de código es exactamente el tipo de migración que abordamos en desarrollo de apps con Flutter.