NDA: Mobile app – boxed diets

Ecommerce / Technology: Flutter

About the project

Takeover of Mobile Application Development and Refactoring

We took over the design of a mobile application from a previous vendor who failed to meet the client’s expectations. The application, used daily by thousands of users, required urgent intervention. Its technical state prevented further development – the code was difficult to modify, and each change triggered unpredictable errors. Our task was to save the project and restore its full functionality, without the possibility of rewriting it from scratch due to budget and time constraints.

Project Objectives

The main goal was to take over the application and ensure its continuity, while eliminating critical bugs and preparing it for further stable development. We had to carry out ongoing development of new features and salvage existing code in parallel to minimize the level of bugs and improve user satisfaction.

Challenges

  • Code complexity and instability: The main challenge was the non-developable code, in which even small changes in one part of the application caused a cascade of errors in other, seemingly unrelated areas. The lack of stability prevented the rapid addition of new features.
  • Lack of documentation and testing: The project was not equipped with any automated tests, making it impossible to make changes safely. In addition, the lack of detailed technical documentation made it difficult to understand the operation of key modules.
  • High error rate: Despite thousands of daily users, the error rate (crash free users) was low, negatively affecting the user experience and reputation of the application.
  • Budget and time constraints: We had to work within a strict budget and deadlines, which precluded the possibility of creating the application from scratch. What’s more, we took over the project at a key time in the industry, which meant that the app had the highest traffic and load at the time.

Solution

We began our work with an in-depth analysis of the code and an overview of the planned functionality. To minimize the risk of introducing further bugs, a key step was to write unit tests for the existing code. This allowed us to make sure that our modifications did not spoil features that were already working.

After this stage, we proceeded to refactor the most critical parts of the code, while conducting ongoing development of new functionality. In six months of intensive work, combined with continuous testing, we managed to raise the level of error-free operation of the application (crash free users) to more than 99%, which restored its stability and enabled further, safe development.

Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.