3.3 KiB
3.3 KiB
Proposal: Premium award UI, icons, and code-review hardening
Intent
Elevar PluriWave a una UI premium coherente y “award-ready” sin caer en maquillaje visual. Primero se deben corregir defectos de lifecycle/estado que hoy degradan confiabilidad; después se aplica un sistema visual propio: “Ondas vivas globales”.
Scope
In Scope
- Hardening previo: listeners, streams, favoritos, reproductor, timer y errores.
- Sistema visual token-first: violeta profundo, magenta eléctrico, coral cálido, vidrio oscuro y glow controlado.
- Sistema de iconos propios para navegación, reproducción, favoritos, búsqueda, ajustes y estados.
- Mockup/refresh de Inicio, Buscar, Reproductor, Favoritos y Ajustes.
- Tests Strict TDD con
flutter test; sin build.
Out of Scope
- Reemplazar Provider/ChangeNotifier.
- Rediseñar backend/API de radios.
- Branding completo externo a la app.
- Release packaging o
flutter build.
Capabilities
New Capabilities
ui-technical-hardening: estabilidad previa a la capa premium.premium-visual-system: tokens, superficies, motion y composición visual.premium-icon-system: iconografía propia con estados outline/filled/active glow.premium-screen-refresh: aplicación coherente en las cinco pantallas principales.
Modified Capabilities
- None; no existing OpenSpec source specs exist yet.
Approach
Primero cerrar deuda crítica verificada: subscriptions cancelables, favorito global consistente, reorder persistente, reproductor desacoplado de snapshots viejos y errores observables. Luego introducir tokens visuales reutilizables e iconos propios, aplicándolos pantalla por pantalla con el Reproductor como referencia fuerte.
Affected Areas
| Area | Impact | Description |
|---|---|---|
lib/app.dart |
Modified | Listener único/cancelable para errores. |
lib/widgets/visualizador_audio.dart |
Modified | Stream subscriptions seguras. |
lib/servicios/servicio_favoritos.dart |
Modified | Reordenado persistente completo. |
lib/pantallas/pantalla_favoritos.dart |
Modified | UX reorder consistente. |
lib/widgets/tarjeta_emisora.dart |
Modified | Favorito derivado del estado global. |
lib/pantallas/pantalla_reproductor.dart |
Modified | UI premium y estado de reproducción confiable. |
assets/icons/ |
New | Iconos propios premium. |
test/ |
Modified | Cobertura de hardening y UI behavior. |
Risks
| Risk | Likelihood | Mitigation |
|---|---|---|
| UI linda pero frágil | High | Hardening MUST precede visual rollout. |
| Iconos inconsistentes | Med | Definir geometría/estados antes de integrarlos. |
| Glow/motion excesivo | Med | Tokens, límites de contraste y reduced motion. |
Rollback Plan
Revertir commits del cambio. Los assets nuevos y tokens pueden eliminarse sin migración de datos. Hardening debe revertirse solo si sus tests también se ajustan.
Dependencies
- Flutter/Material existente.
flutter_test.- Assets locales bajo
assets/icons.
Success Criteria
- No listeners duplicados ni stream leaks verificados por tests.
- Favoritos y orden se mantienen consistentes.
- Reproductor usa estado actual confiable.
- Las cinco pantallas comparten lenguaje premium.
- Iconos propios reemplazan Material genérico en puntos clave.
flutter testvalida el cambio; no se ejecuta build.