Una aplicación moderna de gestión de tareas construida con Flutter y Supabase, que incluye autenticación completa y operaciones CRUD para tareas.
- Autenticación completa: Registro e inicio de sesión con Supabase Auth
- Gestión de tareas: Crear, leer, actualizar y eliminar tareas
- Funcionalidades avanzadas:
- Fechas de vencimiento para tareas
- Marcado de tareas como completadas
- Estadísticas de tareas pendientes y completadas
- Gestos de deslizamiento para editar/eliminar
- Indicadores de tareas vencidas
- Flutter: Framework de desarrollo móvil
- Supabase: Backend como servicio (BaaS)
- Riverpod: Gestión de estado
- Go Router: Navegación
- Material Design 3: Sistema de diseño
- Flutter SDK (versión 3.0 o superior)
- Dart SDK
- Cuenta de Supabase
- Android Studio / VS Code
- Ve a supabase.com y crea una cuenta
- Crea un nuevo proyecto
- Ve a Settings > API y copia:
- Project URL
- anon/public key
En tu proyecto de Supabase, ejecuta el siguiente SQL para crear la tabla de tareas:
-- Crear tabla de tareas
CREATE TABLE tasks (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
title TEXT NOT NULL,
description TEXT,
is_completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
due_date TIMESTAMP WITH TIME ZONE,
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE
);
-- Habilitar RLS (Row Level Security)
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;
-- Crear políticas de seguridad
CREATE POLICY "Users can view their own tasks" ON tasks
FOR SELECT USING (auth.uid() = user_id);
CREATE POLICY "Users can insert their own tasks" ON tasks
FOR INSERT WITH CHECK (auth.uid() = user_id);
CREATE POLICY "Users can update their own tasks" ON tasks
FOR UPDATE USING (auth.uid() = user_id);
CREATE POLICY "Users can delete their own tasks" ON tasks
FOR DELETE USING (auth.uid() = user_id);- Abre el archivo
lib/config/supabase_config.dart - Reemplaza las credenciales con las de tu proyecto:
class SupabaseConfig {
static const String url = 'TU_URL_DE_SUPABASE';
static const String anonKey = 'TU_ANON_KEY_DE_SUPABASE';
}flutter pub getflutter run- Al abrir la aplicación, verás la pantalla de login
- Puedes registrarte con un nuevo correo o iniciar sesión si ya tienes cuenta
- La aplicación redirigirá automáticamente a la pantalla de tareas después de la autenticación
- Crear tarea: Toca el botón flotante "+" en la pantalla principal
- Editar tarea: Desliza hacia la izquierda en una tarea y toca "Editar"
- Eliminar tarea: Desliza hacia la izquierda en una tarea y toca "Eliminar"
- Marcar como completada: Toca el checkbox de la tarea
- Ver estadísticas: Las estadísticas se muestran en la parte superior de la pantalla
La aplicación usa Material Design 3 con un tema personalizable. Puedes modificar los colores en main.dart:
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFF6750A4), // Cambia este color
brightness: Brightness.light,
),