A playground android app, showcasing the latest technologies and architecture patterns using the Foursquare APIs.
Clone the repository and get an API key for the Google Maps API and Client Id & Secret for the 4Square API and put them in the local.properties
file as below:
MAPS_API_KEY=YOUR_API_KEY
FOURSQUARE_CLIENT_ID="YOUR_FOURSQUARE_CLIENT_ID"
FOURSQUARE_CLIENT_SECRET="YOUR_FOURSQUARE_CLIENT_SECRET"
- Kotlin
- Coroutines
- Koin
- Navigation Component
- LiveData
- ViewModel
- Room
- Retrofit
- OkHttp3
- jUnit
- Mockk
A custom architecture inspired by the Google MVVM and the Clean architecture.
This architecture allows app to be offline first. It gets data from the network if it doesn't exist in the local database and persists it. Local database is the single source of truth of the app and after its data changes, it notifies other layers using coroutines.