Musings

A minimal, personalized music streaming experience.

Overview

Musings is a custom-built music streaming application inspired by Spotify, designed to deliver a seamless and personalized listening experience. Built with Flutter and powered by Firebase, the app combines clean architecture, BLoC state management, and intuitive UI design to create a smooth and responsive mobile music platform.

Key Features

Secure Firebase Authentication

Implements sign-in and sign-up using Firebase Authentication, ensuring secure and personalized user sessions.

Dynamic Music Library

Fetches and displays songs from Cloud Firestore in a scrollable home feed for effortless browsing.

Favorites Management

Allows users to like songs and manage their personalized favorites collection from their profile.

Responsive Music Player

Built with BLoC-based state management to provide smooth play/pause control and reactive UI updates.

Trending Music Videos

Integrates YouTube API to fetch and display trending music videos within the app.

Clean Architecture + BLoC

Structured using Clean Architecture principles and BLoC for separation of concerns, scalability, and maintainability.

Scalability & Performance

Modular architecture allows easy addition of new features such as playlists and recommendations.

Firebase backend supports real-time updates and scalable cloud storage.

State management via BLoC ensures predictable behavior as the app grows.

Challenges

  • Managing audio playback state consistently across screens.
  • Synchronizing favorite songs between Firestore and UI state.
  • Integrating YouTube API while maintaining clean architecture separation.

Learnings

  • Clean Architecture significantly improves long-term maintainability.
  • BLoC provides powerful control over reactive state in complex flows.
  • Backend structure design is as important as UI polish in real-world apps.
  • Following SDLC phases (Requirement → Design → Development → Testing) improves delivery clarity.