Case Study: One Tap Gym
Your personal workout partner giving you the best workout videos from YouTube!
PROJECT OVERVIEW
One Tap Gym makes searching and viewing YouTube workout videos a sane experience.
You've had a long day at work crunching numbers, making phone calls, and writing emails. You want a convenient video workout, but searching through YouTube for workouts that are the right length and type of workout feels like more work! #aintnobodygottimefordat
One Tap Gym provides no-brainer workout selection from the best free trainers on YouTube.
Check out the top 3 workouts for you, or take control and refine your search through a few simple taps.
OUR RESPONSIBILITIES
Product Strategy
We determined the MVP version and prioritized our backlog. We took our product plan and created a plan for releasing our first version.
Design
Simple, easy to navigate approach to design.
App Development
We chose Adobe AIR.
Backend Development
We leveraged AWS services.
The Goals
The primary goal with One Tap Gym was to create an MVP (minimum viable product) for the Google Play Store that stood out from other apps by giving users access to workout content from YouTube in an easy to use manner.
With an oversaturated category such as workout apps, another goal was to provide something unique to the market, that hasn’t been done before.
UI/UX
Our plan was to target users that want the opposite of the typical workout app, and create a more “opinionated” app, that takes out all the work that comes with lining up a workout video, determining what body part the user should workout that day, and for those who like using YouTube content, having to go through the standard YouTube app, which can become a big hassle when searching for workouts and affects user engagement.
The result was a workout app that is inviting, easy to pick up and use, focusing on bringing workouts to the user quickly to keep them engaged, not only within the app, but also in their workout goals.
We favored descriptive buttons and icons over instructions, as well as inspirational content that reminds the user that they can accomplish their own life goals.
We also removed the barriers to get to a workout video as much as possible: One button tap takes you to a workout they can begin right away.
Technology
The plan for the technology behind One Tap Gym revolved around the idea of creating an app that was very easy to maintain and adjust as users discover it and provide feedback.
It made sense to go with a server-less approach where most of the business logic sits on the front-end, and only minimal work was necessary on the back-end. There is only a thin layer between the app and the YouTube API which also does a lot of the heavy lifting for us.
This approach keeps the app lean and scalable, and easy to update!
AWS Lambda and API Gateway
We utilized AWS’s awesome Lambda (cloud functions) service to create a very simple and straight-forward way to query the YouTube API.
This thin layer allowed us to transform the results in a simpler format that the app could understand. It also gave us a global space outside of the app, for adding additional customizations to our data and logic as needed.
We used the AWS API Gateway to build a simple RESTful service that bridges the app with the Lambda function. We provided development and production endpoints to allow us to develop new features in the future without affecting the production endpoint.
YouTube API
The YouTube API is utilized to bring queries formed by the app to be searched in YouTube. Our back-end is in charge of communicating with YouTube, and returning results to the app.
Cross Platform Mobile App
Adobe AIR was our weapon of choice for this project. As always it is a great development experience, and the shareable codebase always wins for us.
We used the Starling framework which utilizes device GPU for very fast performance. The UI was built with Feathers, a UI library for Starling. The screens were laid out pretty quickly using an HMTL-like format called MXML, which Feathers supports.
The app is careful to not generate too many unnecessary calls to our API by caching queries locally. These queries expire after a short time and allows the app to make fresh API calls then.