/ii4sq

A playground android app, showcasing the latest technologies and architecture patterns using the Foursquare APIs.

Primary LanguageKotlin

Build Test Detekt

ii4sq

A playground android app, showcasing the latest technologies and architecture patterns using the Foursquare APIs.

Demo

Build

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"

Technologies

  • Kotlin
  • Coroutines
  • Koin
  • Navigation Component
  • LiveData
  • ViewModel
  • Room
  • Retrofit
  • OkHttp3
  • jUnit
  • Mockk

Architecture

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.