How do OS updates impact apps?
OS updates are a regular part of the computing world, but they often have implications for the software that rides on top of them. New releases bring excitement, but they can also raise some questions about how they impact app development.
Many of our clients rightly ask whether OS updates will impact the functionality of an app they built on a previous OS. The answer is, generally, “It might!”
With a new OS release, it’s always wise to review existing code to ensure it’ll work as well as it did when it was first written. Our Android and iOS developers share a few challenges a new OS version creates.
Implications of OS Updates
There are a few different ways an OS update can affect current code:
- Changes to SDKs
- Changes to UI conventions
- Changes to compatibility
Changes to SDKs
Software development kits (SDKs) are the underlying frameworks that make an OS what it is. As an OS matures, each release will naturally include changes to the SDKs an app relies on to work. Those changes can cause the app code to break.
For example, some recoding is required when deprecated methods are justifiably removed from an SDK but are still used in the app. Or, if the semantics of existing methods change to accommodate long-term OS strategies, it may negatively affect a part of the app, again requiring recoding and recompiling.
Changes to UI Conventions
OS changes can also bring about new user interface (UI) conventions affecting existing apps. While the code might still work, these changes may negatively impact an old app’s visual appearance and usability.
For example, the default size and presence of navigation bars can change with a new OS, making the app look awkward if not re-coded. Similarly, for Android apps, many icons and design cards can feel stale if they’re not updated with each new OS release.
Changes to Compatibility
Updates also impact developers (and thus apps) in areas like forward and backward compatibility. Development tools are interconnected, and maintaining compatibility may require code changes.
Forward compatibility refers to a design characteristic that allows a system to accept input intended for a later version. Backward compatibility is a property that allows for interoperability with an older version. When developing for both forward and backward compatibility and using several tools, developers may be forced to upgrade an app, even when they don’t want to.
For example, our developers often work with Xcode, a suite of software development tools created by Apple. If they update Xcode to build apps with the latest technologies like iMessage Apps, they may be required to also update their Swift code for other apps for those apps to compile in the updated XCode. One of our developers stated, “I felt betrayed by my tools,” when he was required to make a change he did not desire to make.
Managing a New OS Update
Fortunately, the time between the beta release and the public release of a new OS is long enough for developers to start using the new features before users are typically affected. Developers are generally given 3 to 5 months to install the beta version of the OS and begin tinkering on it before that release is publicly available. The beta provides an opportunity to understand where the new OS has the potential to cause a current app to break.
All of our developers spoke about the need to do testing, testing, and more testing to ensure the apps are functioning superbly on the new OS. One of our Android developers stated, “Ideally, I would build a test platform that pulls code from all of our projects and runs it on different virtual devices at different OS levels, taking screenshots and notifying us of any failed tests.”
When time does not allow for that ideal scenario, we rely on regression tests to test all the code in the app. Apple and Google provide release notes detailing the changes in the new OS so that we can focus our tests on the areas with the most change. With a whole new OS, though, the list of changes is so long that it makes more sense to run a complete regression test.
The Bright Side for Third-Party Apps
Transitioning to the latest OS version and overcoming the abovementioned challenges takes some forethought. However, the changes can also provide opportunities for clients to upgrade the functionality of their apps, incorporating new features that weren’t previously possible.
Apple iOS Updates
For example, Apple recently released a powerful weather framework. Such new functionality could be a perfect enhancement to fitness, travel, real estate, or even mental health apps.
Furthermore, customizable widgets are here, and we’re already seeing increasing development of widgets for our enterprise customers. The newest Apple apps offer lock-screen widgets.
Android OS Updates
On the Google front, ultra-wideband antennas (UWB) for third-party Android apps are growing in usage. With UWB, phones could be used as a key fob, serving as an ID for building system entry and other potential new features. Certain Android phones can now use UWB to unlock cars, for instance.
Accessibility features may be enhanced in future OS upgrades, giving developers more control over the usability of their apps. Furthermore, Android wearables are becoming more mainstream, and new Android OS releases may improve synergy between devices.
App Maintenance for Your App
If you want to talk more about possibilities for changes to your app or concerns you have about how it functions now, you can always leverage the support of an experienced app developer. Our team would be happy to take a look.