Our Android Developer shares his thoughts on Version 2 of the GHS App

Another exciting GetHomeSafe update is on its way. 

The mobile application for both IOS and Android will be taking on a fresh new look. All users on the GetHomeSafe will receive an update on their phones to enable a newly designed User Interface

This update will align our Apps with the new and improved branding applied to the GetHomeSafe dashboard in September.  

Our Android Developer, Leandro, shares some high-level insights on the project he has worked on with the team and the reasoning behind rewriting the Android App. 

Renovate or build new?

There comes a time in the lifetime of any successful application, mobile or otherwise, in which a significant upgrade is needed. This need may be driven by technological innovation, emerging digital design trends, and/or evolving requirements and expectations from the users.

​When this moment arrives, we are presented with a choice: 

  • Should we renovate (completely refactor the existing codebase)?
  • Or should we build new (rewrite code from scratch)?

We won’t be going into the details but there are endless debates in the tech community about which of these options is best.  In our case, we chose the former.

Refactoring

Our mobile apps are about 9 years old now, which is a long life for a mobile application. In that time, a lot of work has gone into them, not only in terms of lines of code written but also in terms of time spent refining and improving their quality and usability.

On the other hand, it also means they accumulated a substantial amount of technical debt or, in odder words, structural limitations caused by outdated development practices and the lack of better tools and techniques at the time the code was written.

By refactoring the codebase (i.e., gradually modifying existing code or replacing it in small chunks at a time) we fundamentally achieved 2 things:

  • Preservation of the core business logic of the app.
  • Ability to continue to deploy the application while the renovation work is still in progress.

What changed?

The purpose of the rewrite was to improve the overall stability and scalability of the application, better support the long-term vision of the product, and modernize the user experience.

  To improve the stability and scalability of the application we:

  •   Transcribed most of the codebase from older programming languages (Kotlin, Objective-C) to their more modern and expressive alternatives at the time (Kotlin, Swift).
  •  Introduced current code architecture practices, like reactive programming and unidirectional dataflows.
  •  Improved the testability of the codebase and substantially increased its test coverage.

To better support the long-term vision of our product and modernize its user experience we:

  • Implemented modern User Interface patterns and libraries.
  • Simplified and streamlined the core features of the app.
  • Revised the overall look and feel of the app.

Although there is still more to be done, the work we have done so far has brought new life to our mobile applications and it sets the basis for the exciting new challenges that lay ahead of us. We hope you enjoy our upcoming releases of the GetHomeSafe apps and we would love to hear your thoughts.