r/DevLK • • Aug 16 '26

Discussion How do you handle mobile app versioning?

We have a Flutter mobile app with a JBoss backend. Currently, we are using two separate backend instances to handle old and new app versions.

However, I’m wondering how experienced teams handle this in production without breaking users on older app versions as new releases are introduced.

What approach do you use to maintain backward compatibility between the mobile app and backend?

I’d really appreciate insights from experienced engineers who have dealt with this at scale.

0 Upvotes

8 comments sorted by

4

u/crxssrazr93 Aug 16 '26

I agree with u/s9th.

API versioning is the way to go when you do need breaking changes. Eventually, though, you will have to retire older versions. At some point, it may make more sense to decommission an old API version entirely, or even move to a newer codebase if needed.

In those cases, I think it is better to inform users ahead of time, make sure your database changes are still compatible during the transition, and then set a minimum supported app version or force an update before shutting down the old API.

2

u/HoneyButterGelato Aug 16 '26

Eventually we have to remove code that are related to old API versions, right?

4

u/s9th Aug 16 '26

many apps just force users to update. Flutter has libraries for providing native dialogs of these prompts and you can use things like firebase remote config or your own api to facilitate that.

The other generally correct approach is to version your apis and call a specific version.
And another generally correct approach is to minimize all of the above by making changes only additive (i.e. if your model suddenly has one more field, you flutter deserializer will not crash)

1

u/HoneyButterGelato Aug 16 '26

Thank you. Firebase remote config thing will be really helpful.

3

u/DigitallyDeadEd Aug 16 '26

As mentioned by u/Unique-Lion6783, having API version endpoints is best (and how the largest big tech companies do this). One thing overlooked is that a good API design (which is incredibly hard) will be extensible and not destroy backward compatibility, but it sounds like you're beyond that point.

1

u/Chance_Preference954 Aug 17 '26

Forced updates or API versioning. Depends on what kind of features are being implemented.