When I was a digital nomad, crucial travel information like visa requirements, vaccinations needed, and whether the local tap water was safe to drink, were what I needed to know while planning my travels. There is no single website to quickly access all of these useful information about the countries I'm travelling to, and while travelling, I could not always count on having internet access. So, I decided to create an app for this purpose.
The app is simple, but is ready to scale. It shows a modern approach to developing an Android app using MVVM architecture and Jetpack components.
- Data Binding for binding observables with UI elements.
- LiveData for reactive style programming.
- Navigation for in-app navigation.
- WorkManager for managing background jobs.
- Room for local storage.
- Koin for dependency injection.
- Retrofit for REST api communication.
- Moshi for JSON deserialization.
- Glide for image loading.
- Lottie for splash animation.
- Crashlytics for crash reports.
- Binding collection adapter for binding collections to recyclerviews.
- Timber for logging.
- Espresso for UI tests.
- Mockito-Kotlin for mocking in tests.
- Kluent for fluent assertions.
- Robolectric for painless unit testing.
- MockWebServer for testing HTTP clients.
- More unit tests for repository
- Integration tests using Robot pattern
- Keep an eye on the bug fix https://issuetracker.google.com/issues/111316656