FoureSquare based application that displays realtime updates for places around your current location.
- The App uses Foursquare API to display information about nearby places around user using user’s current location specified by Latitude and Longitude
- The App has two operational modes, “Realtime" and “Single Update”.
- Realtime allows app to always display to the user the current near by places based on his location, data should be seamlessly updated if user moved by 500 m from the location of last retrieved places.
- Single update mode means the app is updated once in app is launched and doesn’t update again User should be able to switch between the two modes.
- Default mode is “Realtime”.
- The App should remember user choices for next launches.
- Min SDK 19
- Signup and get your own creds from FourSquare
- Clone the project.
- Inside build.gradle for your app module. Add your CLIENT_ID & CLIENT_SECRET
- Build and run the project.
- The API may hit the maximum quota. So, you may need to repeat the third step in the Setup guide.
- On Kitkat devices. Location mode should be "High Accuracy" otherwise, location detection problems may occur.
- MVVM as presentation layer.
- NetworkBoundResource for caching mechanism.
- LiveData as a react component with lifecycle awareness benefit.
- RxAndroid for writing reactive components.
- RxJava for writing reactive components.
- Retrofit for consuming REST APIs.
- Dagger2 for dependency injection.
- Glide for loading images from remote servers.
- Room as presistance library.
- Gson as data parser.
- Androidx as alternative for support library.
- Android LifeCycle to enable components to be lifecycle aware.
- Data Binding Library for binding UI components