Fitness log book / tracker Android app
Fitbook Lite is an Android application I developed along side (Paolo Montano) that can be used for planning, tracking, and setting goals for workouts.
The user needs to create an internal library of exercises in order to create workouts. In addition the user can record a video or enter details of how the exercise is performed.
Our target audience ranged from someone who may simply be starting out to a seasoned pro at the gym.
The first iteration revolved arround developing the core functionality. We used this platform to develop the features and overall
structure. This iteration had the core functionality which we defined early in the planning stages.
Additionally, we allowed the end user to record videos to the exercise descriptions as a reference to how to properly execute specific workouts.
Navigation on Fitbook relied on drawers and AppCompact which were deprecated with Android Lollipop update. It was replaced with Andorid.Support.V7 in the newer version of Android which we chose to ignore and launch into a second iteration.
As a result of ramping up on a new iteration of the project, we were set as a result of the new UI we wanted to use. We were not able to integrate the routine target planner or record of what you accomplished on the routine. While we believe we had everything set up in terms of databases for the application, the functionality was not completed.
For the second iteration, we chose to implement Fragments UI for FitBook. We struggled with Fragments UI at first, but once we got the gist of it, we were able to use it nicely. In addition, we wanted to restructure the back-end java packages to be better organized. We were able to integrate the Fragments UI and package Fitbook’s Listeners, Dialogs, object models, and database handler
We encountered a very significant issue with the new project structure. As a result of moving Dialogs and Listeners to separate classes, we were unable to update the ListView from the Dialog we launched. We determined the best way to overcome this was to drill back to the launching activity and pass the current context to the listener and dialog. Once this was done, we were able to update the ListView from the dialog.
We were able to port over the video functionality from the previous iterations and add voice input for exercise descriptions. We want to note that the voice input field is not the alternative voice input from Android’s keyboard.
Additionally, we were able to better utilize our Git Repo. We did this by separating features into different branches and only merging at the completion of a feature or when another feature depended on it. Conflicts were greatly reduced as we were only committing the files we modified.
As a team, we had to learn how to manage our development progress and reduce risk by committing
code frequently. While our Git discipline may not be industry standard, it was enough to get us through
Researching Other Solutions
We often found ourselves spending an excess amounts of time on a bug or feature. We were able to
identify our issues and find other solutions on StackOverflow. By doing so we learned how to integrate
APIs and other code snippets easily.