Running Fitness App with Native Device Integration [brownfield]


The client is an industry-leading hardware manufacturer company located in Asia. When they contacted the Scriptide team, they had already developed an application alongside subcontractor companies for the past three years.

The app was already a cross-platform (iOS, Android) mobile application that allowed users to track their running progress from a fitness standpoint. The app came with many features, including trackable, interactive goals that helped users increase their overall fitness, track their progress in terms of speed and distance they could cover, and build endurance.

The app provides valuable insights into the user’s progress over time and actively provides tips on how and where to improve. Importantly, the app could also communicate with certain types of watches, motion sensors, and fitness trackers to provide a more detailed analysis of your activities. The app can be linked with other third-party applications to export and import data between each other.



Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project
Screenshot of a previous project


Objective


The Scriptide team was tasked with making the hardly maintainable codebase manageable, up-to-date, and easy to extend and scale with upcoming updates.

Once tidied, the team would then develop new features and fix bugs in the existing code. Alongside the existing app, we needed to release a similar app with a different goal with a shared codebase between the two.



Process


1,We familiarized ourselves with the codebase.

2,We've identified code parts searching for bottlenecks, identifying our priority areas.

3,We rewrote code for the essential parts of the app that were crucial for further extension while ensuring the application remained fully functioning without regression.

4,We replicated shareable parts of the code to a separate codebase to share with the new version of the application.

5,We continue to provide ongoing development (two years and counting) with both applications, weekly meetings, and new features and fixes.



Scope


Mobile App Development



Tech stack


Vue

Vuex

Cordova

MySQL

NodeJS



Technical challenges


The most significant challenge was the code we had to work with from day one. After years of careless, poorly planned, and unspecified development, the app’s code was dire. The codebase was outdated, incorrectly structured, and non-modular.

We had to find a way to modernize the essential aspects of the codebase while keeping the logic and functionality intact. We were also tied to the Apache Cordova container because the client didn't want to rewrite the whole application with a stack like React Native, Flutter, or Native. This meant we had to create custom native plugins and modify existing Cordova plugins.

Once everything was tidy, we still had to overcome the challenge of integrating the two apps with a common login, secure storage, and hardware handling. Finally, we had to support a wide variety of phones, including small and old ones.



Outcome

We've always managed to deliver on time, and this project was no exception. Having worked with the team for the last two years, the application was quickly made modular, maintainable, and extendable. Updates have been continuously released since and remain a growing success in the East Asian regions, used by over 10K+ users. Both our client and their users have been thrilled with the app experience and continue to grow with us.

By clicking 'Accept' you agree to the use of all cookies as described in our Privacy Policy.

© 2023 Scriptide Ltd.

All rights reserved