
Streamly — Android App
A polished Android content discovery app built with Kotlin and Jetpack Compose, demonstrating modern Android practices: MVVM, Compose, Room, Coroutines, and Retrofit.
Overview
Streamly is an Android streaming content discovery app built entirely with modern Android tools. Users can browse movies and TV shows from a public REST API, manage a watchlist, and explore content by genre — all in a clean, Material 3-compliant interface.
The project demonstrates production-ready Android patterns: full MVVM stack, Jetpack Compose UI, Room for local storage, Retrofit for networking, and Kotlin Coroutines for async operations.
Features
- Content browsing by genre, release date, and rating using a public REST API
- Personalised watchlist with local persistence using Room (SQLite)
- User profile with viewing history and preferences
- Detail screens for movies and TV shows with synopsis, cast, and trailers
- Search functionality with debounced API queries to reduce network load
- Smooth animations with Jetpack Compose Motion APIs
- Responsive layout supporting phone and tablet form factors
- Dark mode support following Material 3 system theming
Architecture
MVVM Architecture
Clean separation: ViewModel, StateFlow, and Repository patterns throughout.
Jetpack Compose UI
Declarative UI with custom composables, lazy lists, and animated transitions.
Room Database
Local SQLite persistence via Room for offline watchlist and history caching.
Retrofit & Coroutines
Async API calls with Kotlin Coroutines and Flow for reactive data streams.
Challenges & Solutions
Challenge: UI state across config changes
Solution: ViewModel-scoped StateFlow survives activity recreation; Compose collects state reactively.
Challenge: Efficient large-list rendering
Solution: LazyColumn with key-based recomposition and Paging 3 for incremental loading.
Challenge: Offline-first watchlist
Solution: Room as single source of truth; Repository layer syncs between local and remote.
Why This Matters
Streamly shows I can build polished, production-architecture Android apps using the current recommended stack. It reflects understanding that goes beyond tutorials: clean architecture, async data flows, and platform-compliant UI.