An Android app built in Kotlin that displays real Mars rover photos from NASA's public REST API.
This project demonstrates the use of modern Android development practices, including:
- Retrofit for making RESTful API calls
- Moshi for parsing JSON into Kotlin data classes
- Coil for efficient image loading
- ViewModel and LiveData for lifecycle-aware data handling
- Coroutines for background network operations
- Data Binding with custom binding adapters for cleaner UI logic
While building this app, I deepened my understanding of:
- Asynchronous programming with coroutines and lifecycle-aware components
- Structuring apps using Android’s recommended MVVM architecture
- Networking best practices in Android apps
- Efficient image handling and caching
- Declarative UI binding using XML + Data Binding
- Language: Kotlin
- Architecture: MVVM
- Networking: Retrofit + Moshi
- Image Loading: Coil
- Lifecycle: ViewModel, LiveData
- UI: XML Layouts with Data Binding
- Concurrency: Kotlin Coroutines
Home Screen | Loading State | Image Detail |
---|---|---|
![]() |
![]() |
![]() |
To run this app locally:
- Clone the repository
- Open in Android Studio
- Build and run on an emulator or physical device with internet access
This app uses NASA’s Mars Rover Photos API to fetch real-time rover images.
Credit to Google Developer Training