Skip to content

The "4Health" application has been implemented using Kotlin and external libraries/apis, it is designed to support the physical activity of people practicing jogging, Nordic walking, cycling etc...

Notifications You must be signed in to change notification settings

macluczak/4Health

Repository files navigation

4Health


Brief description of the application

The "4Health" application for Android systems (in the mobile version and for tablets) has been implemented fully using the Kotlin language, it is designed to support the physical activity of people practicing jogging, hiking, Nordic walking, cycling... The tasks carried out by the application include, m.in:

  • Create route runs
  • Storing created routes
  • Controlling user activity
  • Visualization of The User's Weekly Activity
  • Create activity time measurements
  • Visualize your route with Google Maps
  • Connect to an external user authentication database (Firebase)
  • Data cache
  • Registration/ User Login
  • Keeping individual user statistics

Implemented libraries / APIs

The application uses a number of libraries to improve performance, visually improve the UI and provide data using external APIs, which include:

Android Jetpack View Binding

Kotlin coroutines

SQLite Database

MPAndroidChart – data visualization

Maps SDK for Android - Access to Google Maps.

Directions API – Google API, request in the form of JSON provides component points between the beginning and end of the route, estimates the time of the route, determines the distance and returns postal addresses of specific points.

Street View Static API - Google API, request with an argument containing a specific location on the map returns its static view from Google Street View in the form of an image.

Glide – a library that loads images from a link in imageView, additionally creates an image token for a given url, thus it does not require the Internet to reload / repeatedly the image.

Volley – Making requests/ queries to external APIs / https pages

Google Firebase Firestorm - External database for user authentication

GSON – parsing JSON objects


App update, preview of the new features!

The improvement includes features such as:

Creating profiles - Creating online users kept in a remote database

Google Firebase Firestorm - External database for user authentication

Chart Page - Page dedicated to logged in users, keeping them weekly total activity, and a daily training challenge

UI Improvements - new animations for a more natural user experience (custom transition animations using viewpager2), improved bottom menu and home page style

1 2 3

Previous version

Preview screenshots of the finished mobile app - Start screen

1 2 3

1-2: Route detail card, presents the title of the route, its length, estimated travel time, postal addresses of the beginning and end of the route, also contains a fragment of the map with the route and a fragment of the timer 3: A fragment of the user's activity history on a given route, time of overcoming, date of setting the record and day of the week

Preview screenshots of the finished mobile application – Track Details Screen

1 2 3

1-2: The route detail card, presents the title of the route, its length, estimated travel time, postal addresses of the beginning and end of the route, also contains a fragment of the map with the route and a fragment of the timer 3: A fragment of the user's activity history on a given route, the time of overcoming, the date of setting the record and the day of the week.


UI + Animation preview

The application implements a full range of animations using ObjectAnimator in SplashActivity, the possibilities of animation components of the application with animations written in xml files and using MotionLayout on the main page or ...

Start Screen
+
Splash Screen
1 Track Details
+
Track History
2

additionally animations reacting to the change in values returned from the accelerometer sensor.

1 2

Nesting a fragment of a dynamic stopwatch in a fragment of detail

Presented fragment of the stopwatch implemented inside the fragment of details. In order to ensure the correct operation of the application when changing the orientation of the position, the ViewModel class was used, which is part of the Android Jetpack. Due to the longer lifecycle behavior, the class does not reconstruct itself when changing the orientation of the device.

1 2

Preview screenshots of the Tablet version

Screenshot_20220616-185102


Additional information

The application does not require an Internet connection in order to use previously created routes. The returned request results have been thoughtfully saved in the internal database to ensure offline use (waypoints returned from the directions API and site views from the Static Street View API).

For privacy and security reasons, the API key for Google's interfaces is stored in the local.properties file (excluded in the .gitignore file) and returns by reference via BuildConfig.<name>

About

The "4Health" application has been implemented using Kotlin and external libraries/apis, it is designed to support the physical activity of people practicing jogging, Nordic walking, cycling etc...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages