Skip to content

Multi-module project with modern android development technologies

Notifications You must be signed in to change notification settings

r-khvstnv/WorkoutApp

Repository files navigation

Fitness Assistant

Made by API GitHub top language Lines of code GitHub issues

Get it on Google Play


image


Introductions

Fitness Assistant provides a user platform whereby he can train using his exercises and track the result. The Project is based on a multi-module architecture using modern android development technologies.

Previews

image




Technology Overview

NOTE: See dev-mm branch

Modules Structure

image

  • core - Elements and Technological Solutions used by project modules everywhere
  • core-data - Database and Data Class Models
  • core-theme - App Theme and XML styles
  • feature-N - Functional part of Application

Architecture Diagram

image


Dagger Dependency Graph

image


Navigation Graph

image

  • repository* - For data transferring between OptionSecondFragment and WorkoutFragment are used Statistic data and StatisticSource respectively. OptionSecondFragment saves all customized options by the user and selected exercises. WorkoutFragment requests the Latest Row from Statistic Source and then sets up the workout.

  • nested-grapgh** - OptionFirstFragment and OptionSecondFragment are used shared ViewModel (OptionsViewModel). For this reason, the graph is used for viewModel's lifecycle control.



Technology Stack

  • Kotlin
  • Jetpack
    • Lifecycle
    • LiveData
    • ViewModel
    • Room
    • Navigation Component & safeArgs
  • Dagger2
    • Multibinding
    • Scopes
  • Firebase
    • Performance Monitoring
    • Crashlytics
    • Analytics
  • Admob
  • Glide