Giter VIP home page Giter VIP logo

sdevprem / run-track Goto Github PK

View Code? Open in Web Editor NEW
25.0 3.0 2.0 4.37 MB

RunTrack is a Running Tracking app made using Modern Android Development (MAD), including Jetpack Compose, MVVM architecture, and Google Maps API. The app allows users to track their running activities and displaying real-time routes on an interactive map.

Kotlin 100.00%
android android-jetpack coroutines-android google-maps-api gps-location hilt-android jetpack-compose jetpack-navigation kotlin-android kotlin-flow mvvm-architecture room-database unidirectional-data-flow gps-tracker tracking compose-navigation kotlin kotlin-coroutines fitness-app fitness-tracker

run-track's Introduction

RunTrack

RunTrack is a Fitness Tracking app utilizing modern Android technologies, including Jetpack Compose, MVVM architecture, and Google Maps API. The app allows users to track their running activities, displaying real-time routes on an interactive map while storing essential statistics using Room database.

Features

  1. Live tracking of running activity using GPS.
  2. Tracking of user's running path in Map using Google Map Compose library.
  3. Using Foreground Service, even the user closed the app and remove from the background, this app stills continue to track user running stats.
  4. Room database to store and manage running statistics.
  5. Handling nested navigation, Deep linking, conditional navigation to on boarding screen using Jetpack Navigation Component.
  6. New Jetpack Compose image picker - helps to pick image without any permission.
  7. Paging3 integration.
  8. Dynamic color support in dark and light theme.

Screenshot

runtrack_home_ss runtrack_live_tracking_ss
runtrack_running_info_ss runtrack_profile_ss

Package Structure

  • core
    • data: Contains entity and database related classes.
    • tracking: Classes that handles tracking.
  • di : Hilt Modules.
  • domain: Common use cases.
  • ui
    • nav: Contains app navigation and destinations.
    • screen: Contains UI.
    • theme: Material3 theme.
    • utils: UI utility classes and common components.
  • utils: Utility class used across the app.

Build With

Kotlin: As the programming language.

Jetpack Compose : To build UI.

Jetpack Navigation : For navigation between screens and deep linking.

Room : To store and manage running statistics.

Google Maps API : To track user's running activity such as speed, distance and path on the map.

Hilt : For injecting dependencies.

Preferences DataStore : To store user related data.

Coil : To load image asynchronously.

Architecture

This app follows MVVM architecture, Uni Directional Flow (UDF) pattern and Single architecture pattern. HLD of tracking architecture is shown in the below image: tracking_architecture

Installation

Simple clone this app and open in Android Studio.

Google Map Integration

Do these steps if you want to show google maps. The tracking functionalities will work as usual even if you don't do these step.

  1. Create and Get Google Maps API key by using this official guide
  2. Open local.properties file.
  3. Enter your API key like this:
MAPS_API_KEY=your_maps_api_key

Project Status

These features are left to be implemented:

  1. Show user running statistics on a chart.
  2. Profile menu implementation.
  3. Unit Tests

run-track's People

Contributors

sdevprem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.