/myrun

A run tracker app for Android.

Primary LanguageKotlinMIT LicenseMIT

My Run

Get it on Google Play

Status

Develop Release Publish

Highlights

  • Utilize persistent storages and WorkManager to make offline experience.
  • Use Android foreground service for long run tracking.
  • Modularize the app vertically and horizontally.
  • Integrate Firebase for backend: Authentication, Firestore, Storage, Cloud functions.
  • Build CI/CD using Github Action (code linting, unit test, Play Store publish workflow).

Techstack

  • Kotlin
  • Coroutines
  • Dagger 2
  • Jetpack: Room, DataStore, WorkManager, Compose.
  • Firebase: Firestore, Storage, Authentication, Cloud function, Crashlytics.
  • Android foreground service.
  • Multi-module
  • Google Map, Map Box.

Why I'm making this

  • Learning purpose: where I can change the project's architecture back and forth 😎
  • Sample of my work and my interests.

Wiki

  1. Build setup
  2. Project modules
  3. Workflows

Learning stuff

  1. Modularization on Android
  1. WorkManager
  1. Structured concurrency