From Concept to App Store: The Making of MuayThaiJournal

Andrew Muniz
6 min readNov 20, 2023

--

MuayThaiJournal App screenshots
MuayThaiJournal App

Muay Thai, also known as Thai boxing, is a combat sport that has gained immense popularity worldwide. It is known as the “Art of Eight Limbs” because it employs a combination of punches, elbows, knees, and shins to strike an opponent. Muay Thai is a full-contact sport, allowing fighters to use a variety of techniques, including kicks, sweeps, and throws, to defeat their opponent. With over 100 million practitioners worldwide, Muay Thai is one of the fastest-growing combat sports, driving the demand for resources that can aid effective training both in and out of the gym.

I created an app called MuayThaiJournal to address this need and assist both myself and others in enhancing their Muay Thai training. The app serves as a journal, allowing users to record their class activities and practice drills at home. The app addresses the challenge of memorizing combinations, which can be overwhelming for beginners. For instance, being instructed to perform a series of techniques like jab, jab, cross, right vertical elbow strike, and left high knee can be daunting, especially when repeating the same combination in subsequent classes. Ready to elevate your Muay Thai training to new heights? Download MuayThaiJournal today and master those combinations with ease!

The Hurdles of Mastering Muay Thai Combinations

For Muay Thai beginners, the task of memorizing combinations can be particularly daunting, especially when confronted with complex sequences like jab, jab, cross, right vertical elbow strike, and left knee. Continuously practicing these combinations in subsequent classes can lead to confusion and hinder overall progress. This difficulty in memorizing combinations can impede the effectiveness of training and limit the ability to fully grasp the nuances of Muay Thai. From my personal experience, recalling and executing a previously learned combo while simultaneously introducing a new move can be challenging in the heat of the moment until muscle memory is sufficiently developed.

Multifaceted Approach to Combo Mastery

MuayThaiJournal Provides a comprehensive solution to the challenges faced by Muay Thai beginners in memorizing and mastering combinations. The app’s multifaceted approach encompasses these three features.

Journal:

  • A detailed record of class activities and learned techniques, allows users to revisit and reinforce techniques at their own pace.

Video Technique Library:

  • A comprehensive collection of instructional videos categorized by body parts, including stance, punches, kicks, knees, and elbows.

Combo callback system:

  • A unique feature that enables users to select moves and create personalized combinations that allow them to practice anywhere.
  • Offers customizable options for randomizing combos, adjusting playback speed, and repeating the selected sequence multiple times.

By combining these features, MuayThaiJournal offers a structured and engaging learning environment that caters to both beginners and seasoned practitioners alike.

From Fan Feedback to App Reality

The idea for MuayThaiJournal came from talking to other Muay Thai fans, especially beginners. I asked around at my gym, where we have new people starting all the time and even some who’ve been training for months or even years. I also reached out to the Muay Thai subreddit, which has over 130,000 members, so I knew I’d get some good feedback. The main thing that kept coming up, especially for beginners, was how hard it was to remember combos. A lot of people also said they wished they could practice at home more. There are around 4,000–5,000 Muay Thai gyms in the United States, but a lot of people don’t have access to one near them, so it can be tough to get regular practice.

A Deep Dive into the App’s Development Process

As an iOS developer, I used the Apple developer environment to develop this app and used several frameworks to create the features included in the app such as:

  • SwiftUI
  • CoreData
  • AVFoundation
  • MVVM design pattern

SwiftUI

In creating the app’s user interface, I chose SwiftUI due to its ability to create a smooth development process and provide a live preview experience. This real-time visualization enabled me to refine the app’s design and ensure a consistent user experience. I particularly like this because I am very visual. SwiftUI helped me deliver a responsive user experience, a critical aspect of an app like MuayThaiJournal, where users rely on smooth combo playback.

Core Data: Journal Entries

For the data storage, I used CoreData to store the user’s journal entries. The reason I chose a local database over a cloud-based solution like Firebase was for its offline accessibility and privacy.

For integrating CoreData into the MuayThaiJournal, I followed these steps:

  • Defined the data structure for journal entries, including attributes such as gym location, conditioning techniques, sparring techniques, and goals.
  • Created managed objects, which are Core Data’s representation of data entities.
  • Utilized Core Data’s save and fetch operations to persist journal entries to the device's storage and retrieve them when needed. This ensures user’s training records remain accessible at all times.

AVFoundation: Combo Playback System

To ensure a lightweight and efficient app, I utilized Apple’s native AVFoundation framework for handling audio and video. AVFoundation’s comprehensive set of APIs for manipulating and processing audio data effectively addressed the requirements for combo callback playback, eliminating the need for additional third-party audio libraries. This approach minimized the app’s size and complexity, enhancing its responsiveness and suitability for devices with limited storage or internet connectivity.

Here’s a breakdown of how I utilized AVFoundation for the combo callback system:

  • AVSpeechSynthesizer: I used this class for transforming text into spoken audio. It allowed me to configure parameters such as utterance rate, and pitch to customize synthesized audio.
  • Utterance Configuration: Delivered clear and engaging audio cues that delivered the desired pace. The utterance configuration helped me create the pitch speed as well as translate text into spoken audio.
  • Audio Playback: When a user initiates a combo callback, the AVSpeechSynthesizer is used to synthesize the selected combo. To ensure seamless audio playback I put timers on the main queue using the Dispatch queue so that playback would feel realistic.

MVVM: Organizing the MuayThaiJournal Experience

In MuayThaiJournal MVVM is implemented using SwiftUI. The model layer utilizes Core Data to persist and manage journal entries and combo data. The view layer is built entirely using SwiftUI, with the help of the live preview features. The ViewModel serves as the bridge between the model and view, by handling user interaction and the app’s logic. The reason I chose MVVM is because of the separation of concerns. I would like to expand this app to have more features and MVVM is best for a project I want to scale.

The Enduring Legacy of MuayThaiJournal

The app was a great learning experience that helped me learn throughout each part of the iOS development life cycle from concept to publishing the app into the App Store. With the implementation of Core Data, and AVFoundation I was able to create an app that has a great user experience.

As mentioned above using the MVVM design pattern gives me the ability to expand the app with many more features to come. Some ideas I plan to implement are:

  • To cater to a wider range of users, I want users to be able to switch between different number schemes for the combo playback. Instead of hearing the specific move names, users can choose to receive numbered instructions, such as “1, 1, 2, 1” instead of “jab, jab, cross, jab.” This numerical approach promotes universal accessibility, as it transcends language barriers and applies to various fighting sports.
  • Creating a social media feature to build a Muay Thai community within the app.

Overall this was a great experience and I hope those who do practice the sport have found value in it.

MuayThaiJournal App on the App store:

https://apps.apple.com/us/app/muaythaijournal/id6449100295?platform=iphone

--

--

Andrew Muniz

iOS Developer that loves sharing what he learns and helping others.