Siametric Systems | Enduro FIT
Siametric needed some additional development resource to add more features to the app which would enable them to attract additional investor funding, including two core features and a number of other improvements.
The Challenge
The client was already an established entity in the equine fitness industry with a pre-existing application on both iOS and Android.
The primary objectives were focused on getting more investor funding and growing the application. This was done by adding a number of key features that addressed feedback collected from users, including app usability improvements as well as the ability to main more insights from the workout data being collected. These features would help to show potential investors the value the app can add.
Siametric wanted to begin introducing AI features into the app to create meaningful insights from the data collected by the app. They had already been through a technology selection process and wanted to use TensorFlow with the model running on the mobile device.
The existing codebase had been worked on by multiple developers with backgrounds that didn’t primarily involve iOS or Android development, therefore the codebase, while holding the potential for innovation had some maintainability and structural issues which was slowing developer productivity and needed to be addressed before and during the process of adding new functionality and features to the application.
The Methodology
The project used a scrum workflow using 4 week sprints, although there were gaps in development during the sprint which allowed Siametric to perform testing with retrospectives to identify any workflow improvements and reviews to look at the progress which had been made and identify any new requirements. Builds were to be regularly uploaded to the internal track on Google Play and Testflight to make them available to the client for testing. This allowed us to identify any issues early so we could address them quickly.
In order to gain familiarity with the codebase Coderus starting working on some of the smaller bug fixes and improvements before tackling larger features. This enabled the development team to understand the structure of the app, the way it used the Firebase APIs and the underlying data model.
To introduce AI to the Enduro application, Siametric had engaged with a machine learning expert to create and train a model capable of detecting the horses gait using sensor data from the mobile device. It would be Coderus’ responsibility to collect data required by the model from the phone’s sensors, pass it to the algorithm and capture the output for presentation to the user.
To support training of the model, the app was updated to allow exporting of ride data for use in training the machine learning model. Similarly once the model was integrated into the app and being run on real world data its raw output was also made exportable allowing its results to be validated.
Unit tests and Test-Driven Development was used for new features to ensure high quality features were delivered. It also helped ensure existing features were not affected by other code changes and allowed the team to find bugs early before builds were released to the client.
During the development process, our team identified that there was no branch protection enabled on the main git branch. By enabling this we removed the the risk of changes being accidentally lost.
The Tech_
- TensorFlow: On device AI
- Firebase: Storage & Firestore Offline persistence
- Android: Kotlin, Coroutines, Hilt & MVVM
- iOS: Swift, UIKit, AVFoundation & Swift Concurrency
The Results
Addressing user feedback and allowing Siametric to introduce their first AI powered feature.
Enabling them to collect feedback from users and seek additional investment funding.
In addition to the AI gait detection Coderus were able to introduce a number of other features.
Adding a mechanism for users to delete existing workouts from their account. This needed to be done in such a way that the workout disappeared from the app but remained in the cloud in order to support a future feature where riders could restore deleted sessions.. The delete state needed to be synced across devices also.
Colour coding of the route taken during a workout displayed on the summary map. Allowing the user to toggle between a visual representation of the gait or heart rate.
Audio announcements were the next major feature to be developed, enabling the riders to hear important information over their headphones or speaker during a session. This was completed in a prompt manner due to taking an agile approach – the feature was created with a limited scope of functionality to prove it works correctly and then over time more improvements were added. This developed into the final feature. We utilised text to speech to help speed up and simplify development instead of relying on many different audio recordings.
Live tracking displaying multiple horse positions at once on the map. Trainers often work with multiple horses at a time, multiple horses may be being trained by different riders at a time. A live tracking feature was developed to show the horses location on the map, allowing trainers to easily see where riders are.
Updated UI elements across the iOS application and watchOS application. The Apple watch layout was updated to bring useful, glanceable data front and centre to make it easier for riders to view their important stats during rides. Other UI changes in the summary views and map also further enhanced the information available to riders