Skip to content

Commit

Permalink
2.0.9(22) (#23)
Browse files Browse the repository at this point in the history
* changed home background

* add datastore to save if user signed in

* add ExpandableSearchBar.kt to TravellersActivity.kt

* fix fab on travellers activity

* Fix uploading photo to firestore and set sdk_version = 32

* update CI/CD

* update CI/CD

* update gradle and README.md

* update gradle and dependencies

* remove deprecated on back pressed and replaced with a new approach

* remove deprecated on back pressed and replaced with a new approach

* replaced deprecated getParcelable and getPackageInfo methods

* upgraded koin and okhttp version

* upgraded firebase_bom_version

* Fix updating the the number of visited countries

* upgrade koin version

* add org.gradle.unsafe.configuration-cache-problems=warn

* increment version to 2.0.8(21)

* increment java version to 17 in ci/cd

* Update dependencies

* Add onion architecture pattern to README.md

* Add link on the original documentation of the onion architecture in the README.md
  • Loading branch information
Turskyi authored Jun 20, 2023
1 parent c633e29 commit 72c9e63
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 36 deletions.
68 changes: 42 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,56 @@
[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner-direct-single.svg)](https://stand-with-ukraine.pp.ua)

# Travelling Pro [![Build status](https://build.appcenter.ms/v0.1/apps/add3e42d-20e7-466d-9300-e42abf3e6b76/branches/master/badge)](https://appcenter.ms)

An Android mobile application to help collect all countries that you have visited.
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

• App store:
[Google Play](https://play.google.com/store/apps/details?id=io.github.turskyi.travellingpro);
• Programming language: [Kotlin](https://kotlinlang.org/);

Testing invite link: https://appdistribution.firebase.dev/i/95a4a3bcea0281c7;
SDK: [Android](https://developer.android.com/studio/intro);

Operating system: [Android](https://www.android.com/);
Interface: [XML](https://developer.android.com/guide/topics/ui/declaring-layout);

• Programming language: [Kotlin](https://kotlinlang.org/);
• State management approach:
[ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel);

Interface: [XML](https://developer.android.com/guide/topics/ui/declaring-layout);
HTTP client: [Retrofit](https://square.github.io/retrofit/);

SDK: [Android](https://developer.android.com/studio/intro);
Database: [Firestore](https://firebase.google.com/docs/firestore);

• Embedded SDK: [Facebook Sharing](https://developers.facebook.com/docs/sharing/android),
[Facebook Login](https://developers.facebook.com/docs/facebook-login/overview);
• 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 new
release app bundle to **Google Play** after every push to **master** branch;

• Architectural pattern: [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel);

• 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);
• App testing platforms:
[Firebase App Distribution](https://appdistribution.firebase.dev/i/95a4a3bcea0281c7);

• Database: [Firestore](https://firebase.google.com/docs/firestore);
• App store:
[Google Play](https://play.google.com/store/apps/details?id=io.github.turskyi.travellingpro);

Dependency injection: [Koin](https://insert-koin.io/docs/reference/introduction);
Operating system: [Android](https://www.android.com/);

• Asynchronous programming: [Coroutines](https://developer.android.com/kotlin/coroutines);
• 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);

• HTTP client: [Retrofit](https://square.github.io/retrofit/);

• Google Play services: [Location](https://developer.android.com/training/location);

• UI components: [Lottie](https://lottiefiles.com/what-is-lottie),
Expand All @@ -60,12 +64,20 @@ release app bundle to **Google Play** after every push to **master** branch;

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

**Code Readability:** code is easily readable such that a fellow programmer can understand the
purpose of the app, all variables, methods, and resource IDs are descriptively named such that
another developer reading the code can easily understand their function, no unnecessary blank lines,
no unused variables or methods, no commented out code.
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:
• Architectural pattern:
<br>
<a href="https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/">
<img src="documentation/onion_architecture_with_di.jpeg" width="800" >
</a>
</br>

• Screenshots:
<!--suppress CheckImageSize -->
<img src="screenshots/device-2020-06-05-085243.png" width="200" >
<img src="screenshots/device-2020-06-05-085456.png" width="200" >
<img src="screenshots/device-2020-06-05-090524.png" width="200" >
Expand All @@ -76,3 +88,7 @@ no unused variables or methods, no commented out code.
<img src="screenshots/device-2020-06-05-091508.png" width="200" >
<img src="screenshots/device-2020-06-05-094730.png" width="300" >
<img src="screenshots/device-2020-06-28-162902.png" width="400" >

**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.
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ buildscript {
min_sdk_version = 21
target_sdk_version = 33
// last version is here [https://play.google.com/console/u/0/developers/6867856033872987263/app/4972072127034375090/releases/overview]
version_code = 21
version_name = "2.0.8"
version_code = 22
version_name = "2.0.9"
}
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.1'
classpath 'com.android.tools.build:gradle:8.0.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.21"
// Google Services plugin (used with firebase)
classpath "com.google.gms:google-services:$google_services_version"
Expand Down
Binary file added documentation/onion_architecture_with_di.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ android.enableJetifier=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# global dependency versions
activity_version=1.7.1
activity_version=1.7.2
appcompat_version=1.6.1
coroutines_version=1.4.0
ext_junit_version=1.1.5
espresso_version=3.5.1
fragment_version=1.5.7
fragment_version=1.6.0
# The latest Firebase BoM version contains the latest versions of each Firebase Android library.
firebase_bom_version=31.1.1
firebase_ui_auth_version=8.0.2
Expand All @@ -35,8 +35,8 @@ gson_version=2.10.1
google_services_version=4.3.8
junit_version=4.13.2
jwt_version=4.4.0
koin_android_version=3.4.0
koin_core_version=3.4.0
koin_android_version=3.4.2
koin_core_version=3.4.2
kotlin_version=1.7.20
multidexVersion=2.0.1
material_version=1.9.0
Expand Down
6 changes: 3 additions & 3 deletions presentation/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ dependencies {

// firebase
implementation 'com.google.firebase:firebase-crashlytics:18.3.7'
implementation('com.google.firebase:firebase-analytics:21.2.2') {
implementation('com.google.firebase:firebase-analytics:21.3.0') {
// remove advertising dependency
exclude module: "play-services-ads-identifier"
exclude module: "play-services-measurement"
Expand All @@ -113,7 +113,7 @@ dependencies {
// To show authentication page with pre-implemented authentication
implementation "com.firebaseui:firebase-ui-auth:$firebase_ui_auth_version"
// performance tracing
implementation 'com.google.firebase:firebase-perf:20.3.2'
implementation 'com.google.firebase:firebase-perf:20.3.3'
// to send notifications across devices from firebase console
implementation 'com.google.firebase:firebase-messaging:23.1.2'
implementation 'com.google.android.gms:play-services-cast-framework:21.3.0'
Expand Down Expand Up @@ -164,7 +164,7 @@ dependencies {
implementation "com.facebook.android:facebook-login:$facebookVersion"

// used for animation
def lottieVersion = "6.0.0"
def lottieVersion = "6.0.1"
implementation "com.airbnb.android:lottie:$lottieVersion"

// Koin for Android
Expand Down

0 comments on commit 72c9e63

Please sign in to comment.