An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)
[![Upload to Firebase App Distribution](https://github.com/Turskyi/Travelling/actions/workflows/android_ci.yml/badge.svg?event=push)](https://github.com/Turskyi/Travelling/actions/workflows/android_ci.yml)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/Turskyi/Travelling)
GitHub commit activity

# 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);

• Architectural pattern:




• Screenshots:

Screenshot of home page
Screenshot of a page with list of countries
Screenshot of a page with a flag
Screenshot of a home page with a bottom sheet
Screenshot of a home page with the loading indicator
Screenshot of a dialog
Screenshot
Screenshot of a page with my photo
Screenshot of a tablet with the list of countries
Screenshot of an info dialog

• **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


google play badge