Skip to content

Android mobile application. Showcase for using Room, view-model, clean-architecture, koin and coroutines.

Notifications You must be signed in to change notification settings

Turskyi/Travelling

Repository files navigation

Stand With Ukraine Build status Upload to Firebase App Distribution 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;

• SDK: Android;

• Interface: XML;

• State management approach: ViewModel;

• HTTP client: Retrofit;

• Database: Room;

• Dependency injection: Koin;

• Reactive programming: Coroutines;

• Version control system: Git;

• Git Hosting Service: GitHub;

• CI/CD: GitHub Actions is used to deliver new Android Package (APK) to Firebase App Distribution after every push to the dev branch, Visual Studio App Center is used to deliver new release app bundle to Google Play after every push to master branch;

• App testing platforms: Firebase App Distribution;

• App store: Google Play;

• Operating system: Android;

• Embedded SDK: Facebook Sharing;

• Google Play services: Location;

• Cloud services: Firebase Cloud Messaging;

• UI components: Lottie, PhotoView, ViewPager2, Data chart, RecyclerView, Loading SVG, Glide, Data Binding;

• Api: https://restcountries.com/#api-endpoints-v2-all;

• Architecture Components: Paging, LiveData, 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