SmartGym Tech Features

Matt Abras
13 min readMar 12, 2020

SmartGym started as a personal project way back in 2016. Since then, a lot has happened. The app grew a lot. Our user base grew and is still growing exponentially. And the tech behind it got even more powerful. SmartGym is filled with cool tech and it implements *a lot* of different Apple APIs. This post illustrates just some of them. If you're not familiar with SmartGym, we have a short post explaining it.

Many Platforms

One of the nicest things about SmartGym is that it works with pretty much every Apple platform. SmartGym currently supports macOS (Catalyst), watchOS (fully independent), iOS and iPadOS (with many of the new specific APIs).

This allow users to manage their routines and workouts from their Mac while they're on their desk, use the iPhone to make some other changes, and then hit the gym with only their Apple Watch for example. Or for Personal Trainers, who can use the larger canvas of an iPad to manage all their students, while they're at the gym with them.

Everything stays always up to date and is automatically synchronized across all devices.

SharePlay

SmartGym offers two different experiences using SharePlay. The first experience is made for Timed Based Workouts. The second is made for Repetition Based Workouts. And since SmartGym supports macOS, watchOS, iPadOS, and iOS, no matter which platform you have, you will be able to work out with everyone.

Time Based Workouts / HIIT

Time based workouts are those that you do as many repetitions you can, for a predetermined amount of time. After that, you rest and then move to the next exercise. This means that regardless of how many reps you do in an exercise, everyone will take the same time for each exercise.

With SharePlay, FaceTime users will be able to do the same workout, synchronized with all their family and friends. When you start a “Workout Together” session, SmartGym will show a “waiting room”, so everyone has time to prepare and join. When every user is ready, just tap Start Workout. SmartGym will keep every device in sync. For example, if someone pauses the workout, everyone pauses. And even if someone else joins later, they will be automatically synced to the current place in the workout everyone already is.

To make things even nicer, and to motivate everyone, from time to time, SmartGym will show how many calories each user has burned until that moment.

At the end, in the summary view, SmartGym shows how many calories each participant has burned throughout the entire workout. (Due to privacy reasons, this feature requires user’s permission before starting the workout — they only need to enable this option once and can disable anytime they want)

Password: sg56

Repetition Based Workouts / Strength Training

Repetition based workouts are those that you should do X number of repetitions of a specific exercise. Which means, every user will have a different pace. Some users will take longer than others, in order to do the same number of reps, or they might not even want to do the same number of reps. Also, users might not even have the same equipment available. So, we did something different for these kind of routines. Instead of every user doing the same routine, each one will do their own. After all, that’s the beauty of Smart Trainer, our Artificial Intelligence. Smart Trainer creates personalized routines, based on the user’s preferences and equipments.

With SharePlay, FaceTime users will be able to do their own workouts, while seeing their friends’ progress. They can tap anytime on the “Workout Together”button to see the current exercise their friends are doing, how many calories they’ve burned, how many exercises they’ve done and much more.

And just like with Time Based Workouts, to motivate everyone, when a friend reaches a milestone (i.e: X number of exercises done, or crossed 200 calories burned…). SmartGym will show a notification at the top.

As we said, we want to motivate our users, so they can get even more active. And working out with our friends and family is an amazing way to do that.

It’s also important to note that SharePlay also works with FaceTime Audio! So, we truly believe this can be a huge motivational help. Users can workout together, while talking and motivating each other. Without needing to worry about how they’ll look like. Or even if their iPhone is pointing to the right direction. They can keep their iPhone locked, use their Apple Watch to track their workouts, while talking with their friends through their AirPods.

Password: sg56

ARKit 3

SmartGym uses ARKit 3 with Body Detection and Pose Estimation to better track the user's progress.

Artificial Intelligence + Machine Learning (CoreML)

SmartGym has an AI Engine that we call Smart Trainer. It’s powered by a huge number of different heuristics based on many researches from all around the world. We also use a lot of data gathered from professional Personal Trainers and lots of routines created by them. We then combine this data with data from our CoreML model, that is based in a huge amount of pre-created routines. The combination of all this data, results in amazing routines, tailored for each user and with a variety of over 280 exercises!

CoreML makes everything extremely easy and straightforward to us developers. And is able to produce results that are simply mind blowing to the user.

Smart Trainer can be used in two ways. To create routines. And to suggest changes to the user’s routines, based on previous workouts. As they use SmartGym, the AI learns more about them.

Siri

SmartGym supports Siri in many different ways. We support all the system’s Workout Intents. Siri Shortcuts. Add To Siri button. And Siri Shortcuts with parameters.

Users can simply say Start Today’s Workout on SmartGym and SmartGym will get the workout for today, put it right in front of the user and start a workout session. All from one single voice command. And of course, this works on the Watch too.

Passing arguments to Siri Shortcuts also makes it a lot simpler and a lot more useful.

Users can request their Workout Summary and Siri will ask which one. They can then answer Workouts, Active Calories, Heart Rate or Distance. Users can also create specific shortcuts with specific parameters already chosen. So they don’t need this back and forth. And Personal Trainers can ask for their students’ routines.

watchOS Independent App

As we said when we launched SmartGym in 2016, one of our goals was to make the best Apple Watch app ever. We believe the Apple Watch is by far, the best gym device ever.

So, that's what we did. SmartGym's watchOS app is fully independent and complete. Doesn’t require an iPhone nearby to work. And doesn't even require the app to be installed on the iPhone. Users can go straight to the App Store on their Watch and download SmartGym from there. Users can do pretty much everything from their Watch.

It also has tons of other cool features. Such as Custom UI Gestures, Vertical Pagination, Now Playing Info, Complications (featured in Apple's Series 5 video Ad), Background Update APIs, SceneKit, Siri Shortcuts on the Siri Watch Face and a lot more.

Another cool feature is the ability to store every change the user makes, even when offline. For non-cellular Watch users, who go to the gym without their iPhone, this is just great! There are high chances that during a workout they might lose internet connection. So, we use a local database on the Watch, that is able to store all the changes done while offline, and then check periodically in the background for internet connection. When the user is back online, it pushes all the changes to our servers. This is invisible to the user and makes the entire user experience so much better, since it runs in the background and doesn't even require SmartGym to be the frontmost app.

AI + CoreML locally on the Watch

With the introduction of SmartGym 5, the Watch app became even more powerful.

With only the Watch, SmartGym can use Artificial Intelligence, and in less than one second (!!) create a full workout, custom tailored just for the user.

Users have two options (seen on the first image on the left). First Option: Trust Us. With one tap SmartGym will create a full workout custom tailored for the user. Second Option: Create For Muscles. Users can customize a few settings when asking the AI to create a routine for them (shown in the second and third image).

SwiftUI Complications

SmartGym has some amazing and super powerful complications. Users can get their workout charts on their Watch Face, their week's summary and a lot more.

SwiftUI + Always On Display

SmartGym on the Apple Watch is no baby app. It’s actually a pretty robust app, with lots of different screens, and pretty much every feature from the iPhone app. It even has our entire AI model running locally, right from your wrist.

To make it even better, we completely re-wrote the app in SwiftUI. SwiftUI is amazing! It opens up so many amazing possibilities. And one of them is taking advantage of Apple Watch’s amazing Always On display.

All these screens have been completely re-written in SwiftUI and takes advantage of the amazing Always On display. Timers, health data and even the exercise’s animation update in the background with the screen dimmed.

Siri Shortcus (watchOS 7)

Also with watchOS 7, SmartGym is leveraging the power of Siri Shortcuts on the Watch. Those same actions that could be done with your voice, can also be done from the Shortcuts app. But, even cooler than that, those same actions can become complications and can be launched from the Watch Face! This means, users will now be able to have their routines as complications!

iPadOS Specific APIs

iPadOS transformed SmartGym into an insane and extremely powerful app for the platform.

Users can have multiple windows opened, having their workout history on one side of the screen, while they edit their routines on the other side; can drag a few exercises from one routine and drop on another; compare two different routines, side by side; swipe from the edge, to access even another window; Personal Trainers can have multiple windows opened, for different students, and drag and drop routines from one to another, and a lot more!

With Sate Restoration, SmartGym is always able to quickly restore the state to where the user previously was on that screen.

SmartGym for iPadOS offers:

  • Split View and Slide Over
  • Multi Window Support
  • Drag and Drop
  • State Restoration
  • Multiple Column Support
  • Scribble

This is all great. But you have to see it in action, to see how powerful this is.

iPad Quick Note

A great addition to iPadOS 15 and macOS Montrey is Quick Note. With a simple drag and drop from the bottom corner on the iPad (or moving your cursor to a corner on the Mac), you can add quick notes from anywhere in the system. These notes can also include links that will take you straight to where you were, when you added that note. Which is amazing!

Users can already add a note inside each exercise or routine on SmartGym, but now, they can also add reminders, changes they want to make, or anything else they want. Personal Trainers can add all their observations on their students, upcoming changes they want to make, maybe some posture they need to correct and much more.

Accessibility APIs

Everyone, every single person, should be able to use any app. No matter what limitation they have. And Apple does an amazing job with their Accessibility APIs. We used many amazing APIs that Apple offers to deliver a superior mobile experience to every customer, including those with special needs.

I still remember one of the nicest emails I've ever received, from a blind user that was able to use SmartGym due to Apple VoiceOver.

Dark Mode

SmartGym has always been an app with a dark theme. Although it’s not black, it’s a really dark shade of blue, that is almost black.

Dark Mode on iOS brings a lot of cool APIs and changes to the system that we were able to take advantage and make our app even better.

Before iOS 13 every system UI shown inside the app was actually white. This means that even though SmartGym had a dark theme, when showing an alert, action sheet or any other system UI, it would actually be white, respecting the UI of iOS. But with iOS 13, we can actually override the system’s UI theme and always get a dark UI instead.

Widgets will also change colors depending on the user's preference.

HealthKit Integration

As we said in the Apple Watch section, one of our main focus was to have the best Apple Watch app possible. This also means SmartGym is fully integrated with the Health and Activity apps.

  • All workouts are synchronized.
  • Workouts count towards the user's Activity Rings.
  • Heart Rate, Calories and Distance are tracked and synchronized as well..
  • Measurements are synchronized.

Widgets

Widgets are great. SmartGym's widget shows the user's week in charts and even a daily motivational quote. They can be easily and quickly viewed right from the Home Screen and it’s a great way to keep ourselves motivated.

SmartGym offers many different options of widgets in different sizes as well.

App Clip

App Clips are an even faster way to take advantage of apps. It’s just a small part of an app, that will show up at the moment you need it, focused on a specific task, if you don’t yet have the app installed.

Users can either share a routine with a friend via a URL link, or even a QR Code. This opens up so many awesome possibilities. :)

Context Menus

We loved 3D Touch and we made sure to support it on pretty much every single screen. With the introduction of Context Menus, we just adapted SmartGym and got this great behavior on iOS 13 and the Catalyst app.

Languages

SmartGym was originally developed in Objective-C. But that hasn't stopped us from also learning and using Swift. For example, many of the new features are already done in Swift. The entire ARKit 3 code was implemented using Swift. New Widgets and AI recommendations as well. And we're now transitioning our Watch app to SwiftUI.

Notifications

Interactive notifications

SmartGym uses interactive notifications in many different places. When a rest timer ends on the Watch for example. Or when a Personal Trainer receives a notification that their student started/stoped working out. In this case, they can reply with a motivational message.

Focus and Notifications

This year, there are powerful new set of tools that gives you more control over how you prioritize your time and attention. SmartGym will implement this in two ways.

Fitness Focus

If enabled, starting a workout session with SmartGym will automatically enable your Fitness Focus.

Time Sensitive Notifications

SmartGym sends notifications to indicate when your rest ends, or when a timed based exercise ends. These are extremely important notifications. No one wants to hold their Plank position for 10 minutes, right? So SmartGym uses the new Time Sensitive property to ensure the user gets these important notification at the appropriate time.

This is a great addition, specially because of Do Not Disturb while Working out.

All Tech Features:

Supported Devices:

  • iPhone
  • iPad (iPadOS)
  • Apple Watch
  • Mac (Catalyst)

Features:

  • ARKit 3 with Pose Estimation
  • SharePlay
  • CoreML and CreateML
  • Artificial Inteligence (AI)
  • Dark Mode
  • HealthKit Integration
  • Workout Integration
  • Interactive Notifications (including iOS 12 Notifications)
  • Focus and Time Sensitive Notifications
  • Haptic Feedback
  • 3D Touch with Peek and Pop
  • Context Menus
  • Icon shortcuts
  • iPad Split View and Slide Over
  • iPadOS with Multi Window Support
  • iPad Drag and Drop
  • State Restorarion
  • IAP
  • Subscriptions
  • iPhone 12 Mini, 12, 12 Pro, 12 Pro Max
  • New iPad Pros Support
  • Accessibility APIs
  • SiriKit
  • Siri Shortcuts
  • Siri Shortcuts with Parameters
  • App Clip
  • Custom Intents
  • Includes “Add to Siri” button in the app
  • iOS Files Integration
  • Widgets (Pre-iOS 14 and iOS 14+ as well)
  • Background App Refresh
  • Wide Color
  • Voice Over for HIIT Workouts.

Apple Watch Only:

  • Full Independence (doesn’t require an iPhone to work — watchOS 6+)
  • SwiftUI
  • Custom UI Gestures
  • Vertical Pagination
  • Now Playing Info
  • New watchOS 5 Workout Builder API
  • Complications
  • Background Update APIs
  • SceneKit
  • Siri Shortcuts
  • Siri Watch Face
  • SwiftUI Complications

--

--

Matt Abras

Christian, iOS Developer, Designer, Product Guy. Creator/CEO at SoundShare and SmartGym.