https://github.com/turskyi/travelling_pro
Android mobile application. A convenient way to collect all countries that you have visited. A showcase for using firestore, viewmodel, clean-architecture, koin and coroutines.
https://github.com/turskyi/travelling_pro
android clean-architecture coroutines data-chart databinding firebase-distribution firestore github-actions glide koin kotlin loading-svg lottie-animation mvvm photo-view recyclerview retrofit viewmodel viewpager2 xml
Last synced: 5 months ago
JSON representation
Android mobile application. A convenient way to collect all countries that you have visited. A showcase for using firestore, viewmodel, clean-architecture, koin and coroutines.
- Host: GitHub
- URL: https://github.com/turskyi/travelling_pro
- Owner: Turskyi
- Created: 2020-12-23T15:53:12.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-01-22T23:27:27.000Z (10 months ago)
- Last Synced: 2025-06-13T01:04:27.728Z (6 months ago)
- Topics: android, clean-architecture, coroutines, data-chart, databinding, firebase-distribution, firestore, github-actions, glide, koin, kotlin, loading-svg, lottie-animation, mvvm, photo-view, recyclerview, retrofit, viewmodel, viewpager2, xml
- Language: Kotlin
- Homepage: https://play.google.com/store/apps/details?id=io.github.turskyi.travellingpro
- Size: 30 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://stand-with-ukraine.pp.ua)
[](https://appcenter.ms)
[](https://github.com/Turskyi/travelling_pro/actions/workflows/android_ci.yml)

# Travelling Pro
An Android mobile application to help collect all countries that you have visited and see how many
countries visited other members of the app.
## 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: [Firestore](https://firebase.google.com/docs/firestore);
• 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-Pro/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/95a4a3bcea0281c7);
• App Store:
[Google Play](https://play.google.com/store/apps/details?id=io.github.turskyi.travellingpro);
• Operating system: [Android](https://www.android.com/);
• Embedded SDK: [Facebook Sharing](https://developers.facebook.com/docs/sharing/android),
[Facebook Login](https://developers.facebook.com/docs/facebook-login/overview);
• Object storage service: [Cloud Storage for Firebase](https://firebase.google.com/docs/storage);
• Authentication: [FirebaseUI for Auth](https://firebase.google.com/docs/auth/android/firebaseui);
• Cloud services: [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging);
• Google Play services: [Location](https://developer.android.com/training/location);
• 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