This project took approximately 3 months to build. I designed the UI using Adobe XD, implemented the map functionality using the Google Maps API, implemented the background functionality for the calculator, connected the calculator functionality to a user-friendly slider on the UI, and implemented gestures that utilize the device's accelerometer and gyroscope, which turn a step counter on and off.
This application implements MVVM architecture, Android Fragments, and an instance of a Singleton design pattern. The application was written in 95% and 5% Kotlin.
The repository for this project can be found HERE. I will grant you permission to the repository if you are a prospective employer - I can't share it publicly because future students might use it.
I thoroughly enjoyed every aspect of this project and would jump at the opportunity to work on a mobile app development team in the future. This application was a group assignment for my CS 6018 App System Design class. It was completed along with my two outstanding classmates, Jonathan Sullivan, and Sam Bauter.
Please watch a brief demonstration of the application.
The home screen allows the user to choose from 5 different activities.
The My Profile activity saves to a local database.
The update photo feature is fully functional.
The Weight Management Calculator pulls data from the local database,
then uses it to make calculations. The 'Daily Calories to Achieve Goal' updates in real time when the slider is moved back-and-forth, or when the active/sedentary button is changed.
Making all of the calculations work on the backend was surprisingly challenging,
but we were very satisfied with the result.
Clicking the 'Nearby Hikes' button launches the Google Maps app.
This was simple to implement.
Clicking the 'Local Weather' button accesses data from the OpenWeatherMap API.
It was challenging to format the data from the API.
Clicking 'Step Counter' launches a step counter.
The counter begins counting when the user gives the phone a shake.
The counter stops counting when the user spins the phone.
