Skip to content

Gribbirg/games-alarm-app

Repository files navigation

Alarm with games

en ru

  • Android application;
  • Graduation project of the track "Mobile Development" of the educational program "IT Academy Samsung".

Features

  1. To turn off the alarm, you must complete the game;
  2. Games (currently one) have difficulty levels;
  3. Completion of the game is assessed by points;
  4. It is possible to view your results, as well as share them;
  5. Convenient interface for setting various alarms for days of the week;
  6. Ability to copy alarms;
  7. Saving alarms on the cloud (by button);
  8. Application colors are adjusted to the system ones (Dynamic Colors).

Future plans

  1. Increase in the number of games;
  2. System of friends and teams;
  3. Authorization via email;
  4. Customizable welcome window after the alarm (display weather, news);
  5. Criteria for taking into account the result (protection from “farm” points).

Installation

Apk file is available via latest release.

Build project from command line:

./gradlew build

Also you can build the apk using docker container. First launch docker and build image:

docker build . -t games-alarm-app

Then run a container:

docker run -d --name games-alarm-app games-alarm-app sleep infinity

Copy apk:

docker cp games-alarm-app:/opt/project/app/build/outputs/apk/debug/app-debug.apk /games-alarm-app-debug.apk

Stop and delete container:

docker stop games-alarm-app
docker rm games-alarm-app

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

Video

games-alarm-app_for_readme.mp4

Stack

  1. Kotlin;
  2. Firebase;
  3. Room;
  4. MVVM;
  5. Kotlin coroutines;
  6. Material design 3;
  7. Navigation;
  8. Google auth;
  9. Alarm Manager;
  10. Retrofit.

Dependencies

dependencies {

  // Lifecycle
  implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
  implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
  implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'

  // Firebase
  implementation 'com.google.firebase:firebase-auth-ktx:22.0.0'
  implementation 'com.google.firebase:firebase-database-ktx:20.2.1'
  implementation 'com.google.firebase:firebase-auth:22.0.0'

  // Google play auth
  implementation 'com.google.android.gms:play-services-auth:20.5.0'

  // Glide
  implementation 'com.github.bumptech.glide:glide:4.13.2'

  // Room
  def room_version = "2.5.1"
  implementation "androidx.room:room-runtime:$room_version"
  kapt "androidx.room:room-compiler:$room_version"
  implementation "androidx.room:room-rxjava2:$room_version"

  // Navigation
  def nav_version = "2.5.3"
  implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
  implementation "androidx.navigation:navigation-ui-ktx:$nav_version"

  // UI
  implementation 'androidx.appcompat:appcompat:1.6.1'
  implementation 'com.google.android.material:material:1.9.0'
  implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

  // Retrofit
  implementation 'com.squareup.retrofit2:retrofit:2.9.0'
  implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'

  // Kotlin
  implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))

  // Test
  testImplementation 'junit:junit:4.13.2'
  androidTestImplementation 'androidx.test.ext:junit:1.1.5'
  androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'

  // Other
  implementation 'androidx.core:core-ktx:1.10.1'
  implementation 'androidx.legacy:legacy-support-v4:1.0.0'
}

Contributors

contributor contributor