Flutter
StreamBeat
Con StreamBeat puedes encontrar emisoras por país, explorarlas en un mapa y guardar tus favoritas. La radio sigue sonando al salir de la app. Publiqué la edición de radio (store) en Google Play; la rama main incluye también música y se puede consultar en GitHub.
Un proyecto, dos ediciones
¿Qué ofrece cada rama?
La app de Google Play corresponde a store. La experiencia musical de main se consulta en GitHub.
Disponible en Google Play
Radio en vivo
La edición publicada en Google Play reproduce exclusivamente emisoras de radio por internet. El oyente elige la emisora; su programación determina lo que suena. No incluye la búsqueda ni la reproducción de canciones desde YouTube de main.
- Radio internacional por país y género, con un mapa para descubrir emisoras.
- Favoritos, listas de emisoras, historial y enlaces para compartir estaciones.
- Audio en segundo plano y controles de reproducción continua.
- Interfaz en español, inglés y portugués de Brasil, con tema y color personalizables.
Código disponible en GitHub
Música y radio
La rama principal conserva la experiencia de reproducción abierta de música: permite buscar contenido y reproducir audio basado en YouTube, además de explorar radio internacional. Es la versión musical del repositorio; no es la aplicación distribuida en Google Play.
- Búsqueda y reproducción de música basada en YouTube.
- Recomendaciones de contenido según el país seleccionado.
- Radio internacional y exploración geográfica de emisoras.
- Audio en segundo plano, favoritos, playlists y preferencias locales.
Rol
Desarrollé la app en Flutter: las pantallas, la navegación y el reproductor. También integré el almacenamiento local, las cuentas y las compras, con Riverpod para coordinar el estado.
Alcance
Una app de radio publicada en Android y una rama musical consultable en GitHub, con documentación independiente de sus funciones y distribución.
- Tecnologías
- 9
- Capacidades documentadas
- 5
- Capturas documentadas
- 6
Capturas · rama store
Disponible en Google PlayRadio en vivo
Material visual del repositorio para la edición store. Estas pantallas muestran la experiencia centrada en emisoras de radio.
Ver origen de las capturas · storeCapturas · rama main
Código disponible en GitHubMúsica y radio
Material visual del repositorio para la edición main. Estas pantallas musicales no corresponden a la app de Google Play.
Ver origen de las capturas · mainProblema
Encontrar emisoras de otros países, retomar la escucha y organizar favoritos son tareas que suelen quedar separadas. El proyecto también explora una experiencia musical más amplia desde su rama principal.
Solución
Compartir una base Flutter para reproducción, estado y biblioteca, manteniendo dos alcances de producto: música y radio en main, y descubrimiento de emisoras en vivo en store.
Funcionalidades clave
- Descubrimiento: emisoras por país, género y mapa en la edición de radio.
- Continuidad: escucha en segundo plano y acceso a lo reproducido recientemente.
- Organización: favoritos y listas guardados en el dispositivo.
- Acceso opcional: la cuenta permite usar las funciones de suscripción sin ser necesaria para escuchar radio.
- Distribución: instalación oficial de store desde Google Play; consulta de ambas ramas en GitHub.
Aprendizajes
- Mantener dos alcances de producto exige separar navegación, funciones y materiales de distribución para que cada edición comunique exactamente lo que ofrece.
- El audio en segundo plano necesita coordinar el reproductor, el estado de la interfaz y el ciclo de vida de la app.
- Una biblioteca local y una copia en la nube tienen responsabilidades diferentes: el acceso a la sincronización debe reflejar la suscripción vigente.
Android
Descarga StreamBeat para Android
Google Play distribuye la edición de la rama store: radio en vivo. La búsqueda y reproducción musical de main no está incluida.
- Versión verificada en Google Play
- 1.1.14
- Compatibilidad
- Android 7.0 o posterior
- Identificador
- com.victorflores.streambeat
Ficha consultada el 12 de septiembre de 2026. La versión disponible puede cambiar con nuevas publicaciones.
Más detalles técnicos del repositorio
Arquitectura y responsabilidades
Flutter y Dart sostienen la interfaz móvil. Riverpod organiza el estado; Hive conserva la biblioteca local; Audio Service integra la reproducción en segundo plano y Flutter Map permite explorar emisoras geográficamente.
- La navegación de store se organiza alrededor de inicio, biblioteca, radio, mapa, favoritos y ajustes.
- main conserva la búsqueda y reproducción basada en YouTube; sus pantallas musicales se documentan por separado.
Biblioteca local, cuenta y suscripción en store
La biblioteca permanece disponible localmente. La copia y sincronización de favoritos, listas y ajustes entre dispositivos requiere una suscripción mensual vigente. La compra de por vida elimina anuncios y no incluye sincronización.
- Supabase gestiona la cuenta y los datos sincronizados; RevenueCat integra el estado de las compras.
- Al vencer la suscripción se pausa la sincronización y se conserva la biblioteca local, que también se puede exportar.
- La app puede mostrar un banner compacto durante la escucha. Las compras que eliminan anuncios ocultan ese banner.
Evolución reciente del código de store
La rama store incorpora Flow Mix: una selección de emisoras según el estado de ánimo, el historial, los favoritos y las valoraciones locales. También documenta recomendaciones diarias mediante una notificación local opcional. Son capacidades del código revisado; la ficha de Google Play identifica la versión efectivamente distribuida.
- Flow Mix organiza emisoras de radio, no canciones a demanda.
- El historial y las preferencias ayudan a variar la selección de emisoras.
- La rama puede contener cambios posteriores a la versión instalada desde la tienda.
Alcance y fuentes de esta documentación
Revisión del 12 de septiembre de 2026 a partir de main, store y la ficha pública de Google Play. La tienda mostraba la versión 1.1.14, actualizada el 9 de septiembre, compatible con Android 7.0 o posterior.
- Las capturas de store proceden de store_assets/screenshots/android; las de main, de docs/screenshots. Representan los materiales de cada rama y pueden diferir de la interfaz de una versión posterior.
- La ubicación es opcional para sugerencias por país y el mapa; se puede escuchar radio sin conceder ese permiso.
- La disponibilidad y calidad de cada emisora dependen de su proveedor y de la conexión a internet.
Del caso de estudio a una conversación
¿Tienes un problema de producto o automatización parecido?
Comparte el contexto, el objetivo y el estado actual para evaluar un siguiente paso concreto.





