One Tap Gym

Expertise Provided

Brand Strategy
UX
UI Design
Serverless Architecture
App Development

Platform

Android

Technology

Adobe AIR
AWS Lambda
AWS API Gateway
YouTube API

Your personal workout partner giving you the best workout videos from YouTube!

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.

One Tap Gym Flow

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

YouTube

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

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.