Mistake are Hard to Revert

Randy Arba
4 min readApr 2, 2022

--

As mobile developer there is part that is cant be revert when we already publish app on the store, App store or Playstore. If you had a bug on the live version store, there is no way to revert it back, because your patch update will need to republish using app store mechanism. But the bug remain the user version until the latest version downloaded by user. Please consider this point below;

  1. Apple and google are strict on allowing executable code to be sent on apps, they will threat as malware. Except executable Javascript that non native code, App store will tolerate to use that, so solution like Codepush is become popular, but how come, Codepush only happen on hybrid side, react native.
  2. It takes day to app live on app store, although we already on time to release the store, but live apps will rely on store decision, they will review our app before it live. The Time will depend on them, apple likely almost take 2 days because apple do manual review, compare with play store it not long as apple, it faster than Apple review, cos somehow google rarely do manual review, Google usually using bot review, so not take time to make app live in play store.
  3. So after the app live on the store, the apps is not automatically goes to user, user need to update, some device can update app automatically but after user setting their app update configuration on their device settings. So it possible user still using previous version, so how to notice user that they app is obsolete?
  4. Please don’t assume all user will get the update version, you may thinks that it can be done to ask user to force update, please considerate that force update is the last option. I prefer using update dialog show when launch the app, user will have two choice ignore update or update, please elaborate or description about the update so user know what it impact them. The other option you can use android supports in-app update in play core library

Like that i was mention before, after launch the apps we don’t have any choice if issue happen on production except we relaunch and deploy the app store and the lifecycle process will repeat again, take more time. So make sure everything already tested and all preparation is complete.

Then what internal process testing on the store? i guess you wondering internal testing is common process before it will live on store, but internal testing is not really internal, you must upload your apps and then waiting review from store, the process same as upload, its not really internal because reviewer already review and test your app. So in my opinion, Firebase App distribution is good choice to help you internal testing, just invite via email and they will download your app directly (some device show warning during install, because it install out from Playstore).

But one more things that still bother me, if i have App bundle(ABB) build, why Firebase App distribution still ask me integrate it into Google play store, it means if you using app bundle to internal testing with firebase app distribution, the method is same when you do internal testing using Play store, you need pass all release process, include store review that take a time. So what if our stakeholder or tester wanna test as soon as possible?

Imagine if you have million active user, what step to minimize bugs or regression from occurring old app version?

  1. Do through Testing for all version/level, Do Manual Testing or Automatically Testing, after that you can ensure your app using invite people on company to test your app usually stakeholder and gather feedback from them, please don’t take all feedback, some of that can be feature improvement, just take the urgent part.
  2. Feature Flag, Every app update possible have some error from server when it already live, you can disable it using feature flag, and wait until server no error. it also revert bugs on the fly.
  3. Using Gradual Roll-outs. Gradual rollout can monitoring the release result, Play store can halt the release below 100% rollout it mean if something happen on the production you can halt the release and prevent issue spread all the device when user download.
  4. Force Upgrading, Robust solution so far, but must take carefully, user might not comfortable if force upgrading constantly happen.

--

--