Inspiration

Every time I worked out I found myself doing the same sets every single time, whether it was at the gym or at home. I realized that I really did not know what exercises to do and I was always too afraid of using new machines. Because of this problem, I was looking for an app that would give me a workout set depending on what I wanted to focus on, core, strength, flexibility, and so on. The more I looked, the more I realized there were apps for the gym, however they all were paid apps. And they did not let me choose to do an at home workout or an workout at the gym within the same app.

What it does

This app contains a very user friendly interface which first asks for the user to input where they are working out, implemented using buttons, and then asks for what they want to focus on, currently the only options that are available are strength, cardio, stretching, and asks for the user to select the button, after which it goes into more details and more focus depending on the general focus that the user wanted to select. For example, if the user selects strength on the first focus screen, they are presented with a page that asks them to choose a deeper focus: upper body, core or lower body. After the user has selected their focus, the app randomly generates workouts.

How I built it, Challenges I ran into, Accomplishments that I'm proud of and What I learned

This was my first time using android studios and the first thing I did was try to implement a basic UI and implement multiple screens that would be switched to using those button selections. After I had gotten a bit comfortable using that I set out to implement the UI. The first step was sketching out a roadmap of how the screens would be connected to each other and then sketches for each individual screen type, the home screen, the focus screens, and the final screen. One challenging part for me was understanding how the java code connected with the xml code and how to manipulate the java code to make the screens connect to each other. However after much googling, I learnt what intents were and how to use them to create buttons that would result in the screen being switched when it's clicked. This however was not the hardest part of my project, The hardest part for me was creating layouts for each of the screens so that they looked good, and the content is properly aligned. I learnt the difference between "wrap content" and "match parent" when talking about layout dimensions, I also learnt how to use the Linear Layout application to create a very polished looking alignment for all the elements within each page. I also learnt how to use multiple elements such as TextView, Buttons, and Checkboxes. The thing I am most proud of is my ability to manipulate not only the Layout of the overall page, but also manipulate the elements and structure of each individual element within the pages.

What's next for TheWorkoutMaster

The one thing I wanted to add to this application was a database of all the exercises that the user could do depending on the focuses that the user makes. I had tried to implement this randomness by adding a class called WorkoutLists.java which contained a HashTable of ArrayList of the exercises, with the key being the focuses and the values being the list of exercises, stored as an ArrayList of Strings. I even tried to get the ArrayLists integrated in the application by adding in the method createActivities() within the WorkoutActivity.java class, however I was getting the error of the program crashing and was unable to fully implement this functionality. This functionality is going to be my next goal to achieve for The Workout Master.

Built With

Share this project:

Updates

Submission history