https://github.com/turskyi/travelling
Android mobile application. Showcase for using Room, view-model, clean-architecture, koin and coroutines.
https://github.com/turskyi/travelling
android clean-architecture coroutines data-chart databinding firebase-distribution github-actions glide koin kotlin loading-svg lottie-animation mvvm photo-view recyclerview retrofit2 room-database viewmodel viewpager2 xml
Last synced: about 2 months ago
JSON representation
Android mobile application. Showcase for using Room, view-model, clean-architecture, koin and coroutines.
- Host: GitHub
- URL: https://github.com/turskyi/travelling
- Owner: Turskyi
- Created: 2020-04-12T11:39:52.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2025-07-19T03:31:08.000Z (11 months ago)
- Last Synced: 2025-09-26T14:16:00.141Z (9 months ago)
- Topics: android, clean-architecture, coroutines, data-chart, databinding, firebase-distribution, github-actions, glide, koin, kotlin, loading-svg, lottie-animation, mvvm, photo-view, recyclerview, retrofit2, room-database, viewmodel, viewpager2, xml
- Language: Kotlin
- Homepage: https://play.google.com/store/apps/details?id=ua.turskyi.travelling
- Size: 37.7 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://stand-with-ukraine.pp.ua)
[](https://github.com/Turskyi/Travelling/actions/workflows/android_ci.yml)


# Travelling
An Android mobile application, which gives a convenient way to collect all countries that you have
visited.
## PROJECT SPECIFICATION
• Programming language: [Kotlin](https://kotlinlang.org/);
• SDK: [Android](https://developer.android.com/studio/intro);
• Interface: [XML](https://developer.android.com/guide/topics/ui/declaring-layout);
• State management approach:
[ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel);
• HTTP client: [Retrofit](https://square.github.io/retrofit/);
• Database: [Room](https://developer.android.com/training/data-storage/room);
• Dependency injection: [Koin](https://insert-koin.io/docs/reference/introduction);
• Reactive programming: [Coroutines](https://developer.android.com/kotlin/coroutines);
• Version control system: [Git](https://git-scm.com);
• Git Hosting Service: [GitHub](https://github.com);
• CI/CD: [GitHub Actions](https://docs.github.com/en/actions) is used to deliver new Android
Package (APK) to [Firebase App Distribution](https://firebase.google.com/docs/app-distribution)
after every push to the **dev** branch,
[Visual Studio App Center](https://docs.microsoft.com/en-us/appcenter/) is used to
[deliver](https://appcenter.ms/users/Turskyi/apps/Travelling/build/branches/master) new release
app bundle to **Google Play** after every push to **master** branch;
• App testing platforms:
[Firebase App Distribution](https://appdistribution.firebase.dev/i/c6a7f44dbe6de66d);
• App store: [Google Play](https://play.google.com/store/apps/details?id=ua.turskyi.travelling);
• Operating system: [Android](https://www.android.com/);
• Embedded SDK: [Facebook Sharing](https://developers.facebook.com/docs/sharing/android);
• Google Play services: [Location](https://developer.android.com/training/location);
• Cloud services: [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging);
• UI components:
[Lottie](https://lottiefiles.com/what-is-lottie),
[PhotoView](https://github.com/Baseflow/PhotoView),
[ViewPager2](https://developer.android.com/jetpack/androidx/releases/viewpager2),
[Data chart](https://weeklycoding.com/mpandroidchart/),
[RecyclerView](http://www.recyclerview.org/),
[Loading SVG](https://github.com/corouteam/GlideToVectorYou),
[Glide](https://bumptech.github.io/glide/),
[Data Binding](https://developer.android.com/topic/libraries/data-binding);
• Api: https://restcountries.com/#api-endpoints-v2-all;
• Architecture Components:
[Paging](https://developer.android.com/topic/libraries/architecture/paging),
[LiveData](https://developer.android.com/topic/libraries/architecture/livedata),
[ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel);
• Screenshots:

• **Code Readability:** code is easily readable with no unnecessary blank lines, no unused variables
or methods, and no commented-out code, all variables, methods, and resource IDs are descriptively
named such that another developer reading the code can easily understand their function.
## Download