Terry Li
Portfolio
Software Engineering

Android Music Player

Lifecycle-aware Android music player with reliable background playback.

When
Aug 2025 – Jan 2026
Headline result
−30% UI latency
  • Built a lifecycle-aware Android music player with Kotlin, Jetpack, and MVVM, addressing playback interruptions and inconsistent UI state during background execution and lifecycle transitions.
  • Integrated ExoPlayer with MediaSession using coroutines, lifecycle-aware scopes, and synchronized callbacks to maintain reliable background playback across Android versions.
  • Refactored asynchronous callbacks into a unidirectional StateFlow architecture, eliminating callback contention and redundant recompositions while reducing UI latency by 30%.

Tech stack

  • Kotlin
  • Jetpack
  • MVVM
  • ExoPlayer
  • Coroutines
  • StateFlow