feat(mvp): PluriWave Fase 1 — estructura completa de la app #3
Reference in New Issue
Block a user
Delete Branch "feature/mvp-fase1"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Qué incluye este PR
Modelos
Emisora: campos completos Radio Browser API (fromApi+fromMap), gettergenerosServicios
ServicioRadio: cliente Radio Browser API — populares, tendencias, buscar por nombre/país/idioma/tagServicioAudio:just_audio+audio_servicewrapper — play/pause/stop/toggle, stream de estado,PluriWaveAudioHandlerpara backgroundServicioTimer: countdown con fade out gradual 30s, opciones 15/30/60/90 minServicioFavoritos: actualizado a v2 con campos codec/bitrate/votes/clickcount, migration desde v1Estado
EstadoRadio:ChangeNotifierglobal con Provider — centraliza reproducción, favoritos, búsqueda, timerPantallas
PantallaInicio: grid 2 columnas emisoras populares, chips género (filtro activo), tendencias en scroll horizontal, shimmer loading, pull-to-refreshPantallaBuscar:SearchBar+ filtros país/idioma, lista resultados compactaPantallaFavoritos:ReorderableListView+Dismissibleswipe-to-deleteWidgets
TarjetaEmisora: card completa + modo compacto ListTile,CachedNetworkImage, shimmer fallbackTarjetaEmisoraShimmer: placeholder de cargaMiniReproductor: barra inferior persistente con stream de estado en tiempo realApp shell
app.dart:MaterialApp+Provider+NavigationBar(Inicio/Buscar/Favoritos) + dialog timermain.dart: punto de entrada limpioAndroidManifest.xml: permisos INTERNET + FOREGROUND_SERVICE + receivers deaudio_serviceDependencias (ya en pubspec.yaml)
just_audio,audio_service,audio_sessionprovider,sqflite,httpcached_network_image,shimmer,flutter_animate,google_fontsNotas
feature/bd-favoritosincluido (ServicioFavoritos base)PantallaReproductorcompleta pendiente (siguiente PR)feature/cicd-pluriwave(ya tiene PR abierto, no bloqueante)