Big Picture: What about users who turn off automatic updates?

How do you handle the fact that some users turn off automatic updates? Does your server support old versions of your app just to keep everyone happy? Surely Facebook doesn’t support users who installed their app in 2010. Right? Websites are so much easier because there is only 1 live version, but mobile apps seem to be a completely different animal.

I am still in beta, so not production ready, but as I make changes and pivot like any other startup, I have the luxury of informing my (~20) flexible test users that their current version is broken and they need to update to the latest version. I want to run A/B tests on real users, but I’m not ready for my app to go live, pivot, break, and then receive bad reviews. Once I go live, what is the best way to continue pivoting and improving my app when some of my users will be back at version 1.0? What does everyone else do since we are still pre-ionic deploy?

Thanks!

My two cents, your application should not suffer because of such users. Your API should stay the same as much as humanly possible. Take Google Maps V3 for an example, no matter how many underlying changes has been done during last few years, code written three years will work just the same.

Of course, sometimes, this kind of stability is unachievable. That’s why your API must be as robust as possible (well designed from the start) but you should not wait for users who turned off automatic updates.

Have at least one method in your API which will not change no matter what. This method should be used to check for an application compatibility. Use it only if an application can’t connect to underlying server but has a working internet connection.

So:

  • Make a robust API fight this problem as best as you can
  • When push comes to shove, don’t wait for users who turned off automatic updates

I am currently implementing it using the Accept header approach, this way on client I use an $http interceptor to add this header with version supported by client to each request and on server I have a filter that checks compatibility, client should be able to handle "client too old’ response to display a meaningful message to user.