Volver a proyectos 
Mobile
Digidex Mobile
Aplicación mobile Flutter con Cleach Architecture
DartHTMLRubySwiftKotlin

DigiDex Mobile
Enciclopedia de Digimon con estilo cyberpunk para Android e iOS, construida con Flutter, Clean Architecture y BLoC.
Companion app del proyecto web DigiDex (SvelteKit + FastAPI).
Capturas
| Home (Dark) | Detail (Dark) | Home (Light) | Detail (Light) |
|---|---|---|---|
Sobre el proyecto
DigiDex Mobile es una app que permite explorar el catálogo completo de más de 1400 Digimon con perfiles detallados, skills, campos, cadenas de evolución y un sistema de favoritos local.
La app consume la API de DigiDex (FastAPI), que a su vez obtiene datos de la Digi-API externa.
Arquitectura
Clean Architecture con 3 capas y dependencias hacia el interior:
Presentation (BLoCs, Pages, Widgets)
|
Domain (UseCases, Entities, Repository interfaces)
^
Data (Repository impls, DataSources, Models)
- Domain no tiene dependencias externas — solo Dart puro + Equatable
- Data implementa las interfaces de Domain usando Dio (HTTP) y Hive (almacenamiento local)
- Presentation consume Domain a través de BLoCs que transforman eventos en estados
Funcionalidades
- Listado infinito con scroll lazy loading y grid responsive adaptativo
- Búsqueda en vivo con debounce (300ms) y cancelación automática
- Perfil de Digimon con imagen animada (flotante + scanner frame), badges, descripción, skills y evoluciones
- Favoritos con persistencia local via Hive
- Tema claro/oscuro/sistema con persistencia de preferencia
- Navegación con bottom tab bar (Home, Favorites, About) y transiciones fade+scale
- Accesibilidad WCAG AA — Semantics en elementos interactivos, contraste 4.5:1+, tap targets 48x48dp
Tech Stack
| Componente | Tecnología |
|---|---|
| Framework | Flutter + Dart |
| Arquitectura | Clean Architecture |
| Estado | BLoC (flutter_bloc) |
| Inyección de dependencias | get_it |
| HTTP | Dio |
| Almacenamiento local | Hive |
| Navegación | go_router |
| Imágenes | cached_network_image |
| Tipografía | google_fonts (Orbitron + JetBrains Mono) |
| Testing | flutter_test, bloc_test, mocktail |
Estructura del proyecto
lib/
├── core/
│ ├── constants/ # URL de API, timeouts
│ ├── di/ # Registro de dependencias (get_it)
│ ├── error/ # Excepciones personalizadas
│ ├── router/ # Configuración go_router
│ └── theme/ # Temas Material 3, colores, tipografía
├── data/
│ ├── datasources/ # Dio (remoto) + Hive (local)
│ ├── models/ # DTOs con fromJson/toJson/toEntity
│ └── repositories/ # Implementaciones de repositorios
├── domain/
│ ├── entities/ # Entidades de negocio (Dart puro)
│ ├── repositories/ # Interfaces abstractas
│ └── usecases/ # Casos de uso (un call() por clase)
└── presentation/
├── blocs/ # DigimonList, DigimonDetail, Search, Favorites, Theme
├── pages/ # Home, Detail, Favorites, About, Splash, Shell
└── widgets/ # DigiCard, NeonContainer, TypeBadge, ShimmerCard
BLoCs
| BLoC | Responsabilidad |
|---|---|
| DigimonListBloc | Listado paginado con infinite scroll |
| DigimonDetailBloc | Perfil completo de un Digimon |
| SearchBloc | Búsqueda con debounce restartable |
| FavoritesBloc | Gestión de favoritos (Hive) |
| ThemeBloc | Cambio de tema con persistencia |
API Backend
La app se conecta a la API de DigiDex desplegada:
| Endpoint | Descripción |
|---|---|
GET /api/v1/digimon |
Listado paginado |
GET /api/v1/digimon/search |
Búsqueda por nombre |
GET /api/v1/digimon/{id} |
Perfil detallado |
Testing
34 tests unitarios cubriendo:
- Modelos — Parsing JSON, conversión a entidades, manejo de campos opcionales
- Casos de uso — Delegación correcta a repositorios
- BLoCs — Transiciones de estado, manejo de errores, infinite scroll, debounce
Repositorios relacionados
| Repo | Descripción |
|---|---|
| DigiDex | Web frontend (SvelteKit) + Backend API (FastAPI) |