{"id":25227853,"url":"https://github.com/puelloj/flutter-practice","last_synced_at":"2025-04-05T13:16:26.875Z","repository":{"id":274905100,"uuid":"924444089","full_name":"PuelloJ/flutter-practice","owner":"PuelloJ","description":"Este proyecto está diseñado para comprender el manejo de estado en Flutter mediante el desarrollo de múltiples aplicaciones prácticas 📱, explorando enfoques como setState 🔄, Provider ✅, Riverpod 🌊, Bloc/Cubit 🔐, GetX ⚡, Redux 🛒, InheritedWidget 🎨 y RxDart 🔎, cada uno aplicado a casos reales 🚀🔥","archived":false,"fork":false,"pushed_at":"2025-03-16T04:09:05.000Z","size":20417,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T13:16:19.844Z","etag":null,"topics":["bloc","flutter","flutter-beginners","flutter-practice","inheritedwidget","provider","riverpod","state-management"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PuelloJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-30T02:26:29.000Z","updated_at":"2025-02-02T16:39:05.000Z","dependencies_parsed_at":"2025-03-10T04:21:56.760Z","dependency_job_id":"f3ceef55-7157-4540-aedd-8aff28d9789e","html_url":"https://github.com/PuelloJ/flutter-practice","commit_stats":null,"previous_names":["puelloj/flutter-practice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PuelloJ%2Fflutter-practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PuelloJ%2Fflutter-practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PuelloJ%2Fflutter-practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PuelloJ%2Fflutter-practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PuelloJ","download_url":"https://codeload.github.com/PuelloJ/flutter-practice/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339154,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bloc","flutter","flutter-beginners","flutter-practice","inheritedwidget","provider","riverpod","state-management"],"created_at":"2025-02-11T09:12:40.835Z","updated_at":"2025-04-05T13:16:26.868Z","avatar_url":"https://github.com/PuelloJ.png","language":"Dart","readme":"# Flutter State Management Projects 🚀\n\nEste 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.\n\n---\n\n## Proyectos por Manejador de Estado 📂\n\n### 1. **StatefulWidget** 🧩\n\nProyectos básicos que utilizan `StatefulWidget` y `setState` para manejar el estado local.\n\n1. **Contador con múltiples pantallas**\n\n     \u003cimg src=\"assets/counter-state/counter.state.jpg\" height=300\u003e\n     \u003cimg src=\"assets/counter-state/counter.state2.jpg\" height=300\u003e\n\n   - Un contador que mantiene su valor al navegar entre pantallas. ✅\n   \n\n2. **Galería de imágenes local**\n\n      \u003cimg src=\"assets/image-gallery/Image_Gallery.png\"\u003e\n\n   - Seleccionar imágenes de una lista y mostrarlas en una nueva vista. ✅\n   - Agregar nuevas imagenes a las ya existentes. ✅\n   -\n     \u003e [!NOTE]\n     \u003e TODO: Obtener metadata de la imagen.\n\n\n3. **Formulario de registro**\n   - Validación de campos como nombre, correo y contraseña en tiempo real.\n   - 🚧 _Espacio para imágenes del proyecto._\n\n---\n\n### 2. **Provider** 🛠️\n\nProyectos que implementan `Provider` para manejar el estado global de manera eficiente.\n\n1. **Lista de tareas con categorías**\n\n   - Cada categoría tiene su propia lista de tareas.\n\n2. **Gestión de inventario**\n\n   - Agregar, editar y eliminar productos con stock disponible.\n\n\n3. **Calculadora de propinas**\n   - Ajustar el porcentaje de propina y dividir el total entre varias personas.\n\n\n---\n\n### 3. **Riverpod** 🌊\n\nProyectos que exploran `Riverpod` para manejar el estado reactivo y dependencias.\n\n1. **Aplicación de clima avanzada**\n\n   - Soporte para múltiples ubicaciones y predicciones semanales.\n\n\n2. **Lista de reproducción de música**\n\n   - Agregar canciones, marcarlas como favoritas y reproducirlas.\n\n\n3. **Búsqueda de películas**\n   - Integración con una API para buscar y guardar películas favoritas.\n\n\n---\n\n### 4. **Bloc/Cubit** ⚡\n\nProyectos que implementan el patrón Bloc para manejar estados complejos con eventos y transiciones.\n\n1. **Flujo de autenticación completo**\n\n   - Registro, inicio de sesión y recuperación de contraseñas.\n\n\n2. **Gestión de proyectos**\n\n   - Crear proyectos con tareas, asignar miembros y actualizar el progreso.\n\n\n3. **Chat en tiempo real**\n   - Simular un chat con mensajes enviados y recibidos.\n\n\n---\n\n### 5. **GetX** ⚙️\n\nProyectos que usan `GetX` para manejar estado reactivo y simplificar la navegación.\n\n1. **Galería de fotos con favoritos**\n\n   - Permitir a los usuarios marcar fotos como favoritas y verlas en una lista separada.\n\n\n2. **App de noticias**\n\n   - Mostrar noticias en diferentes categorías con navegación fluida.\n\n\n3. **Temporizador personalizado**\n   - Crear y gestionar múltiples temporizadores.\n\n\n---\n\n\n### 9. **InheritedWidget** 🏗️\n\nProyectos que comparten datos a través del árbol de widgets con `InheritedWidget`.\n\n1. **Configuración global de idioma**\n\n   - Cambiar el idioma de la app en tiempo real.\n\n\n2. **Tema personalizado por usuario**\n\n   - Permitir a los usuarios elegir colores y fuentes.\n\n\n3. **Estado de conexión**\n   - Mostrar un indicador global cuando no hay conexión a internet.\n\n---\n\n## Contribuciones 🛠️\n\n¡Las contribuciones son bienvenidas! Si tienes ideas para mejorar los proyectos o agregar nuevos, no dudes en abrir un PR o crear un issue.\n\n---\n\n## Licencia 📜\n\nEste repositorio está bajo la Licencia MIT. ¡Siéntete libre de usarlo y adaptarlo a tus necesidades!\n\n---\n\n## Contacto ✉️\n\nPara dudas o sugerencias, puedes contactarme en [josepuello112000@ejemplo.com](mailto:tu-email@ejemplo.com).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuelloj%2Fflutter-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuelloj%2Fflutter-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuelloj%2Fflutter-practice/lists"}