Este repositorio contiene una colección de proyectos diseñados para aprender y practicar los diferentes manejadores de estado en Flutter. Cada proyecto aborda un caso de uso específico y aumenta en complejidad para ayudar a dominar el estado en Flutter.
Proyectos básicos que utilizan StatefulWidget
y setState
para manejar el estado local.
-
Contador con múltiples pantallas
- Un contador que mantiene su valor al navegar entre pantallas. ✅
-
Galería de imágenes local
- Seleccionar imágenes de una lista y mostrarlas en una nueva vista. ✅
- Agregar nuevas imagenes a las ya existentes. ✅
-
[!NOTE] TODO: Obtener metadata de la imagen.
-
Formulario de registro
- Validación de campos como nombre, correo y contraseña en tiempo real.
- 🚧 Espacio para imágenes del proyecto.
Proyectos que implementan Provider
para manejar el estado global de manera eficiente.
-
Lista de tareas con categorías
- Cada categoría tiene su propia lista de tareas.
-
Gestión de inventario
- Agregar, editar y eliminar productos con stock disponible.
-
Calculadora de propinas
- Ajustar el porcentaje de propina y dividir el total entre varias personas.
Proyectos que exploran Riverpod
para manejar el estado reactivo y dependencias.
-
Aplicación de clima avanzada
- Soporte para múltiples ubicaciones y predicciones semanales.
-
Lista de reproducción de música
- Agregar canciones, marcarlas como favoritas y reproducirlas.
-
Búsqueda de películas
- Integración con una API para buscar y guardar películas favoritas.
Proyectos que implementan el patrón Bloc para manejar estados complejos con eventos y transiciones.
-
Flujo de autenticación completo
- Registro, inicio de sesión y recuperación de contraseñas.
-
Gestión de proyectos
- Crear proyectos con tareas, asignar miembros y actualizar el progreso.
-
Chat en tiempo real
- Simular un chat con mensajes enviados y recibidos.
Proyectos que usan GetX
para manejar estado reactivo y simplificar la navegación.
-
Galería de fotos con favoritos
- Permitir a los usuarios marcar fotos como favoritas y verlas en una lista separada.
-
App de noticias
- Mostrar noticias en diferentes categorías con navegación fluida.
-
Temporizador personalizado
- Crear y gestionar múltiples temporizadores.
Proyectos que comparten datos a través del árbol de widgets con InheritedWidget
.
-
Configuración global de idioma
- Cambiar el idioma de la app en tiempo real.
-
Tema personalizado por usuario
- Permitir a los usuarios elegir colores y fuentes.
-
Estado de conexión
- Mostrar un indicador global cuando no hay conexión a internet.
¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar los proyectos o agregar nuevos, no dudes en abrir un PR o crear un issue.
Este repositorio está bajo la Licencia MIT. ¡Siéntete libre de usarlo y adaptarlo a tus necesidades!
Para dudas o sugerencias, puedes contactarme en josepuello112000@ejemplo.com.