A real-life case-study of how things can get really bad really fast when developing Android (or iOS) apps.
Jarmo Pertman 2023-08-26 (7 minute read)
We have been in charge of maintaining one legacy Android app for our customer. It is an app, which is used by end-customers in production, but it does not have any active development going on because it’s been ready for years now.
If it would be up to us, then we would not touch that app and would let it live its life happily ever after.
The Beginning
It all started with the following innocent-looking e-mail by Google received at 18th of August 2023:
Trying to find more information about this requirement I found the following on Google’s website:
The following sentence caught our eye:
Existing apps must target API level 31 or above to remain available to users on devices running Android OS higher than your app’s target API level.
Reading this it’s hard to understand what will happen exactly to the apps installed on newer Android devices targeting lower API levels.
I took the approach of better safe than sorry and prioritized this task even though it would add no business value — it was only required to be completed because Google said so.
And the deadline set by Google was less than 3 weeks from the time when e-mail was received. No other e-mails have been sent by Google before regarding this issue.
Implementing Change
I started with this task on 23th of August. I updated targetSdkVersion
from API level 30 to 33 and tried to compile/run the application in Android emulator.
First run failed due to incompatible dependency. Fortunately I could just remove that dependency since it was related to analytics and not tightly coupled to the business logic itself so it was not that critical one.
Ran the application successfully and tried core functionality which seemed to work the same way as before without any problems. It was time to put it up into Google Play Store.
Play Store
Putting application up into Play Store went mostly without any hiccups.
Of course, since this is a legacy app not having releases happening often, then I needed to fill some questionnaires created by Google, but this is pretty normal thing to happen when apps are updated at most once or twice per year. After completing these, app was sent to review. It took less than an hour unt