SpaceX Explorer is a mobile case study in doing Clean Architecture right on a small scope. The app surfaces launches, rockets, and crew members from the SpaceX v4 public API, but the value is in the layering — the UI layer owns nothing except Compose state and view models, the domain layer holds use cases and pure models, and the data layer handles HTTP, DTO mapping, and caching.
What it demonstrates
- Clean Architecture with strict inward dependency flow
- Hilt for dependency injection across modules
- Kotlin Coroutines + Flow for async data streams
- Jetpack Compose UI with hoisted state and preview-driven iteration
- Retrofit + Moshi wiring against the SpaceX API v4
Why I built it
I wanted a mobile surface to practice the same architecture boundaries I use on the backend, so the codebase looks more like a production Android app than a hobby project. Every feature — list, detail, filter — is its own slice that plugs into the same domain contracts.