phone phone


Golf training app powered by IoT

Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect
Practice Your Perfect

Have you ever tried to learn how to play golf with the help of a mobile app?

If you did, you would probably find thousands of mobile applications that do almost the same: measure your results without providing any feedback

All of them miss several crucial things:

  • They do not tell you how to improve
  • They do not track your personal progress
  • They benchmark you against top players versus your own result

story behind

story behind

Ctrl Golf aims to change things and promote golf by offering a unique way of learning and improving golf skills

Our client's vision was creating a virtual personal trainer who adapts the training plan and helps to improve the skill individually for each user. Applying unique algorithms, CTRL Golf tracks each training session progress, analyzes the playing style and gives personal recommendations on how to improve the skill. The app aims to inspire users to improve their skills even if the first result is not comforting.

What is

CTRL Golf is an IoT application that connects to the sensors (developed by the CTRL Golf team) attached to the golf sleeve, which catch your wrist and shoulder movements during the swing

CTRL Golf Team already had an iOS version of the application, which made it easier for our team to review and learn the user flows within the system and copy them into the Android application.

Some of the initial end users’ feedback was also provided, thanks to which all positive and negative experiences of customers became possible for consideration in the new iteration of application functionality and design.

Development processesRegular meetings enabled development and design team to identify key goals for the project:


To improve UX/UI of the application

We created an interface that will help users to connect their sensors easily and enjoy the training. Golfers often play in the bright sun, that’s why our team developed an interface that would be easy to read in any condition


To provide a reliable connection between
sensors and the application

We ensured that connection between the app sensors worked well in any case, especially when the internet connection was poor


To rethink features

We standardized and unified user flows, removing unused features and extending the existing ones with improvements that users requested

use cases

use cases

Hardware packageAlong with the mobile app, CTRL Golf provides the hardware package, which consists of:

Use Cases


Bluetooth sensors - the first one is on the users` shoulder, and the second one is on the wrist

A glove to attach sensors to

Sensors are connected
to the user’s smartphone to record operational data


Pair a sensor

Tap on “Pair New Sensor” and the application will scan for the sensors nearby

Connect a sensor

Once the sensor is connected it is highlighted in blue in the app and the sensor itself shows the blue light.


Only two steps and you can now 
start working on your swings


CTRL Golf sent the prototypes of sensors to our developers, using which we could execute development and testing. However, since this was only a prototype and we had only one package of sensors, the team had to transfer the device from a developer to a tester to execute the works, which led to the timeline extension


Put your arm into the position shown at the picture to calibrate the sensors


You need to do several swings to identify

Once the min number of swings is completed, you can start training or continue educating the sensors


Since the devices were prototypes it was hard to execute the debugging process, the defect source could be both device and application.This was resolved later on by coordination with the Ctrl Golf team that were extremely cooperative to provide the testing on their sensors in such occasions


After the calibration process, sensors catch and read data on the user`s swing that is then processed with complex algorithms


The app catches and transfers data about each swing, and provides detailed recommendations on how to improve: downswing, backswing, tempo

Personal StatisticsBased on the training statistics, the app generates detailed and highly visualized reports on the training results and general player progress. Statistics are available for all time, particular training or even just a session within a training and build data for:

  • Top Feedback
  • Feedback Consistency per Club, Swing, Downswing, Backswing, Tempo

During the training session of playing golf, it is inconvenient to check each swing result by looking at the screen of a smartphone


In order to minimize the interaction between a golf player and smartphone, the application has two important features:

  • Voice assistant that reads
    the feedback of each swing
  • Disable the screen auto-lock
    to keep screen active for a golfer



One of the main requirements was a fundamental improvement in UI and UX. It had to be convenient, inspiring, and engaging

Initially, the user's feedback was difficult to read as it looked like long charts. Instead, we used the ring concept to structure feedback and make it more readable

a Swing

  • Showing the short info in rings, and extended feedback and tips in sections below
  • Marking parameters like backswing, downswing, and tempo by colors in rings and expanded info; thus users see what parameter responds to a particular color, and spend less time analyzing the feedback
connected sensors and the app
connected sensors and the app

In the app, we used the same colors as on sensors to make the use more convenient and to show that the sensors and the app are successfully connected


We also added the calibration and
scanning animations to illustrate the 
process of sensors and app interaction

All illustrations and icons used in the application were drawn manually to make the app unique and to ensure that each element makes
a point. Thanks to close-knit work with the client's team and the ability to get regular feedback from the real golf players during the app concept and visual elements creation, we can be sure that each app element is intuitively clear for the end-users.

To start training, users first need
to set up a swing they want to practice. This is a process of three steps:

  • 1Setting up
    a swing name
  • 2Club type selection phone
  • 3Ball flight selection phone

In order not to overload the screen with all this information, we created a wizard that is not only easy-to-navigate and helps to get more familiar with golf terminology


Previously, game statistics were just
long charts and looked unclear for
users. We restructured the statistics
screen into 3 tabs:

  • Lifetime
  • Training
  • Session
phone phone

Users can choose any training or a session within the training and review how they are progressing. Initially, they see the overall training rate and feedback which was added to keep a high level of users’ motivation.

Then goes more tabs where they can find average results as well as more detailed feedback displayed in a form of scalable charts and organized into tabs to avoid cluttered screens.



The Android app is written with Kotlin and interacts with the Bluetooth sensors developed by our client. Interaction with Bluetooth devices is performed with the help of the RxAndroidBle library

The project is based on Firebase - 
a cloud solution

One of the key features of the application is advanced statistics organized into different types of charts built up with the help of MPAndroidChart library

  • Kotlin
  • AndroidX
  • Coroutines
  • Navigation Component
  • Material Design
  • MVVM
  • Koin
  • MPAndroidChart

Bluetooth Devices


GoogleAuth was used to also allow the users’ sign in with Google accounts



Sign In, Sign Up
User Accounts
Sing In with Google

Sensors Connect/Disconnect Forget the device

Auto-lock Enable/Disable

Training & Swing Management

visualized as
graphs and charts

Sound Enable/Disable

At NPS questionnaire, the client evaluated our company at 10 out of 10

It has been an absolute pleasure working with the team at Altamira. We have
never been blocked or impeded by their work. They operate efficiently and
quickly to get the job done

Check out full client's review here
Contact Us
Contact Us
Contact Us
Contact Us
Contact Us
Contact Us
Contact Us
Contact Us
Contact Us