Hello everyone!
I am currently building a community-based mobile application and in the testing phase.
Would like to seek all of your advice on what is the best approach to push out enhancements to the mobile app as we move along in the most risk-free way that will not disrupt existing users / destroy data...
Thank you in advance!
Hey Serene!
What technology did you use to build your application?
As far as I understand, you want to update your application without going through the app store? Then you are looking for a solution like Code Push (https://github.com/microsoft/code-push).
Edit: Also you seem to be worried about loosing data in an update. This should normally not be an issue, since most of the data will be stored in your backend / database. I remember that some time ago there were issues with applications that stored data locally in a solution like Apple's Core Data and lost customer data during schema migration. But I think this is not common any more.
Thank you for your advice! The app is built on Flutter and Firebase.
When introducing new features, resulting in a change of database design or storing of new data in the database, I am worried that it might disrupt the users who are using the platform.
Would you recommend any specific way to test it to make sure it works before we push it out live?
I'm assuming you don't have an api in between the Firebase database and the app. In this case you are right to be worried about breaking changes to the schema, which basically come in two forms:
the new app requires something that is not true for all existing documents e.g. a new field. This can usually be worked around by iterating over all existing documents and adding the new field or by having a backwards compatibility switch in the updated app.
the old app expects something which will not be true for new documents. This case is harder. I've seen apps implement a version check for this, so that the user will be notified that they need to update to a new version. Another solution is outlined towards the end of this article: https://medium.com/firebase-developers/cloud-firestore-on-data-constraints-and-evolvability-a8f44b34fde8.
For testing you should do manual QA by testing in both ways i.e. create an old document with the existing app, then update to the new app and create a document with the updated app and check for issues in the existing version of the app. You should also have a group of beta users that you know and can roll out new versions of the app first.
Hi Thomas,
Thank you so much for your advice and the insights shared. The article that you shared was extremely useful.
Really appreciate it.