Generally, updates create a demand for maintenance, which tends to create technical debt. How you accumulate that debt will partially depend on whether you have a native, hybrid, or progressive web app. Here’s a brief overview of the difference:
- Native apps are built specifically for the mobile device’s operating system. OS and app store updates will have a significant impact on your app’s performance.
- Hybrid apps have a core application code that is shared with a container, making them less affected by store and OS updates.
- Progressive web apps (PWAs) run on the browser of the device instead of through the app store, so they’re more affected by browser updates.
Using a workaround to keep your app running is fine for the short term, but putting off too many of these small fixes can make updates more complex down the road.
Here’s more detail on what those fixes look like – plus a few other examples we sometimes encounter.
App store updates
App stores often update submission requirements, security protocols, and user experience guidelines, which may mean you’ll have to update your app to stay compliant. These updates affect native and hybrid apps the most.
In 2024, Google ramped up security requirements in its app store that prevented 2.28 million apps from being published. One of those requirements was that users should be able to request that their data be deleted, and that users be able to make such a request without having to re-install the app on their device. We therefore had to update numerous apps to provide ‘Account Deletion’ functionality, as well as expanding our clients’ websites to allow deletion requests from users who have already removed the app from their device.
These policy changes might not always affect your app, but when they do, it’s important to stay on top of making the right adjustments.
Device updates
One significant update slated for iOS 18.2 is that users will be able to choose default calling and messaging apps. Messaging app developers will need to update their app configuration for users to be able to select it.
OS updates might also impact security, notifications, biometric sensors, APIs, and network connectivity. Part of app maintenance is testing and tweaking apps to keep them compatible with newer operating systems. For example, in recent Android versions, Google has changed the way that photos and videos are selected, allowing users to give an app access to only specific media items rather than their entire photo gallery. This change required updates to several apps to support the new functionality.
Browser updates
If you’ve noticed that you need to restart Chrome for frequent updates, you’re not alone. Google and many other browsers have recently started releasing smaller, incremental updates to keep users safe – but sometimes, these updates can change the way your app behaves. For example, the layout or colours used in apps and web sites built more than a few years ago may suddenly change or shift around the screen, as the rules that browsers use to position and space out different parts of the app have changed.
Browser updates will impact browser-based PWA apps the most. PWAs should be updated for all major browsers, which might not follow the same schedule or implement new features at the same time.
These changes might still affect native and hybrid apps, but usually only if they include embedded browser elements or web views.
Library updates
App developers often use programming libraries like React to optimize development with highly tested code bases for basic functionality. Rather than writing code from scratch, libraries let developers outsource the code for common functions.
But sometimes, these libraries release version updates with changes that can break the functionality of app features. Stick with the outdated version, and you might face security risks and compatibility issues – so modifying the code sooner rather than later is ideal.
Library updates impact all app types, since they’re often used in building core features. How complex the updates are (and how much work they leave in their wake) will vary depending on how integral the library is to the app’s architecture.
One of the most significant issues with library updates is their tendency to cascade, meaning that an update to library X also requires a corresponding update to library Y. If there is a third library Z that also relies on library Y, you may also need to update library Z. Leave these updates for too long, and you eventually get to the point where nothing can be updated without performing a major rewrite of large parts of your app. The best approach is to stay reasonably up-to-date with all these libraries, so that each update and change is small, easily tested, and less likely to break your app.
APIs and external integrations
Complex apps like health trackers, e-commerce platforms, and travel booking sites often use APIs to access the data and features of other software. For example, you might use Stripe’s API for payment processing, or Google’s geolocation API to track movement. These software providers often update their APIs for better security and functionality. For example, if PayPal updates its API to improve their checkout process, apps integrated with the older version might have to adjust their code to keep payment processing smooth.
Similarly, integrating new technologies and solutions with old code and systems can be difficult and create reliability challenges. For example, while developing a new web-based application for use in a call center environment, we recently had to invent a number of workaround solutions to allow the new software to communicate with other very old, legacy systems that could not be easily upgraded at the same time. If your app relies on third-party integrations, you’ll also need to watch those integrations and make updates to avoid service disruptions. Hybrid apps in particular might need to update both their core code and the containers they use for each device.
Regulatory compliance
New regulations can have a significant impact on all of the above – but they may also have an impact on whether or not your app is compliant with local laws. For example, GDPR forced apps to obtain explicit user consent for data handling. Apps that didn’t comply had to revise their code and digital management practices. Keeping on top of the regulatory landscape can help you anticipate what changes might be coming your way, and how you can modify your app to stay ahead of the curve.
This applies to all app types, but native and hybrid apps might need deeper integrations with system-level privacy features and updates, while PWAs will need to focus on browser-based regulations.
Test case regression errors
App features are highly interconnected – and that means sometimes, adding a new feature can break older parts of the app. For example, adding a new payment option might disrupt checkout workflows, which creates more work to test and fix older code.
Ideally, QA testers should conduct regression testing after a new feature is added to make sure everything works properly. But sometimes, developers assume that a small change won’t matter especially if the right documentation isn’t there to guide them.
It’s important to understand how the features of your app work together, create regression test cases carefully, and test as often as you can.
System Architecture and Server environment Tech Debt
Technical debt not only accrues within an application, but also in the environment surrounding it. Before cloud hosting was so prevalent, this might have been seen in physical servers getting old and mechanically breaking down. Today, the issue is often that the system software becomes dated, abandoned, or is no longer receiving updates, and an upgrade is required.
For example, a large number of apps and web sites are built using the PHP programming language. As of January 2025, updates to PHP will only be provided for version 8.1+ (released in 2021). For security reasons it will soon be necessary to update all servers that are running earlier versions of PHP. Because of changes in the language, this will require changing not only the server but also updating the code in the applications that it runs.
How we can help you keep tech debt low
Keeping tech debt low is a big part of what we do at Vertical Motion. We run monthly reports for clients that detail security risks, upcoming technical debt issues, or performance bottlenecks for every app we build.
If you’ve built your own app and want to manage tech debt yourself, we recommend you:
- Stay on top of updates
- Use your own software as much as possible
- Regression test as often as you can
- Keep your documentation organized
- Don’t rely on quick fixes for too long
Need help? We also offer one-time reports for anyone with an app they’re concerned about through our Application Health Assessment (AHA) service.
The AHA takes one business week, after which you’ll get a report that walks you through the overall health of your app, any critical issues, and a comprehensive roadmap for fixing them.
App maintenance can get complicated, but it doesn’t have to be. If you’re struggling to manage tech debt, our team of experts at Vertical Motion can help you restore your app to its best self!
Vertical Motion is a trusted Canadian software development and entrepreneur assistance company that has supported the global efforts of startups, non-profits, B2B, and B2C businesses since 2006. With headquarters in Calgary and Kelowna, and team members coast to coast, Vertical Motion is recognized as an award-winning leader in the technology industry. Our team of executive advisors, project managers, software developers, business analysts, marketing specialists, and graphic designers have extensive experience in several industries including — Energy, Finance, Blockchain, Real Estate, Health Care, Clean Technology, Clothing & Apparel, Sports & Recreation, Software as a Service (SaaS), and Augmented & Virtual Reality (AR/VR).
Come chat with us and let us take you “From Idea to Execution and Beyond!” 🚀