Configura tu backend en Supabase
Crea un proyecto en Supabase. Para una app de tareas, crea la tabla:
CREATE TABLE tareas ( id bigserial PRIMARY KEY, titulo text NOT NULL, completada boolean DEFAULT false, user_id uuid REFERENCES auth.users(id), creado_en timestamptz DEFAULT now() );
ALTER TABLE tareas ENABLE ROW LEVEL SECURITY; CREATE POLICY "usuario posee tareas" ON tareas FOR ALL USING (auth.uid() = user_id);
Row Level Security (RLS) es fundamental para el cumplimiento del RGPD, con RLS cada usuario solo puede ver y editar sus propias filas, directamente a nivel de base de datos. Es una de las razones por las que siempre elegimos Supabase sobre Firebase para clientes con requisitos de RGPD en España o LATAM. Copia la URL de tu proyecto Supabase y la clave anon, las necesitarás en FlutterFlow.
Conecta FlutterFlow a Supabase
En FlutterFlow, ve a Settings → Supabase. Pega tu URL de Supabase y la clave anon. FlutterFlow se autentica y muestra el esquema de tu base de datos.
Verás la tabla tareas listada con todas sus columnas. FlutterFlow genera automáticamente query builders tipados para cada tabla, no hace falta SQL en el frontend. Esta es una de las grandes ventajas de la combinación: diseñas la interfaz visualmente en FlutterFlow mientras Supabase gestiona toda la lógica de datos.
Un consejo: nombra tu proyecto Supabase de forma que refleje el proyecto del cliente, por ejemplo "empresa-app-prod". Facilita el mantenimiento y es más claro para todos en el equipo.
Construye la autenticación
Usa las acciones de Supabase Auth de FlutterFlow para login y registro. Crea: 1. Una página de login con campos de email/contraseña y un botón "Iniciar sesión" 2. Una página de registro con email, contraseña y confirmación de contraseña 3. Conecta las acciones OnTap de los botones a "Log In with Email" y "Create Account with Email" (ambas son acciones de autenticación de Supabase)
Configura la lógica de "Initial Page": si el usuario está autenticado → Página de inicio, de lo contrario → Página de login.
Para apps dirigidas a empresas en México o Argentina, también puedes añadir autenticación con proveedores sociales (Google, Apple) mediante las opciones OAuth de Supabase, esto acelera significativamente el proceso de onboarding.
Construye la lista de tareas
Crea un componente ListView. Establece la fuente de datos en tu tabla tareas de Supabase. Añade un filtro: user_id = currentAuthUser.uid (FlutterFlow lo completa automáticamente).
Para cada elemento de la lista: muestra el título de la tarea, una casilla de verificación para el estado completada y un botón de eliminar. Conecta la casilla a una acción UPDATE de Supabase (actualiza completada = true/false). Conecta el botón de eliminar a una acción DELETE de Supabase.
Un consejo de diseño: añade un estado vacío (empty state) con texto motivador y un botón de acción, por ejemplo "Aún no tienes tareas. ¡Crea la primera!", en lugar de una lista vacía. Mejora notablemente la tasa de activación y da una impresión profesional. Empresas como Rappi y Glovo aplican este principio en sus flujos de onboarding.
Añade suscripciones en tiempo real
En la configuración de Supabase de FlutterFlow, activa Realtime para la tabla tareas. En tu componente de lista de tareas, activa "Realtime" en la fuente de datos.
Cuando se añada, actualice o elimine una tarea (desde cualquier dispositivo), tu lista se actualizará automáticamente, sin necesidad de polling manual. Esta es una de las fortalezas de Supabase frente al REST tradicional: obtienes actualizaciones en vivo sin infraestructura adicional.
Para apps de equipo y funciones de colaboración, por ejemplo, compartir tareas con compañeros, puedes ampliar esto con Supabase Presence para mostrar qué usuarios están conectados en tiempo real.
Publica en App Store y Google Play
En FlutterFlow, ve a Run → Build → iOS y Android.
Para iOS: necesitas una cuenta de Apple Developer (99 USD/año). FlutterFlow genera el archivo .ipa. Envíalo a través de Xcode o Transporter. La revisión del App Store tarda entre 1 y 3 días para la primera entrega.
Para Android: FlutterFlow genera un archivo .aab firmado. Envíalo a través de Google Play Console. Las actualizaciones suelen revisarse en 24 horas.
Un paso importante para apps dirigidas a México o Argentina: asegúrate de que la descripción en App Store y Google Play esté en español si tu público principal es hispanohablante. Mejora notablemente la visibilidad orgánica en las tiendas.
Cumplimiento del RGPD y privacidad de datos
Para apps dirigidas a usuarios en España y la UE, elige la región eu-west-1 (Fráncfort) en Supabase. Activa RLS en todas las tablas que contengan datos personales. Añade una pantalla de consentimiento de privacidad en el onboarding.
Para LATAM: las regulaciones varían. México cuenta con la Ley Federal de Protección de Datos Personales (LFPDPPP). Argentina tiene la Ley 25.326. Supabase en la región sa-east-1 (São Paulo) es la opción más cercana para minimizar la latencia y satisfacer requisitos de residencia de datos de clientes corporativos en la región.