8
votes

I am going to develop a react-native app.I want to make some good decisions of choosing the technology stack before I begin my work.

Features I am sure about:

1) For users authentication,datastore,offline syncing, Firebase does an excellent job and I am happy to use Firebase for these features.

Feature in Question

2) Now,I would like to occasionally add certain options in my App only for a specific period of time(festive season offers,or something else for a specific user,etc),Ex: Like an extra menu button option, and on click of that menu, I ll show the offers and after a week's time I would want that menu to disappear again.

NOTE: I dont want users to keep updating their apps every time I give some offers or new features.

Now to achieve this functionality, I came across Firebase Remote Config and Microsoft CodePush?

I would like to know the things that can be achieved using these both. It seems Firebase remote config can only update the UI's but Codepush can update JS files and can update the App itself, but I am not sure and confused. Which one would be more suitable for me to achieve the feature in question?

EDIT: Please see my comment as well.

1
I think you are thinking way complicated than you should. A simple REST API call that would return you any results (offers etc.) if there are would be more than enough. Rendering menu options according to there result would be a simpler solution.bennygenel
What I am asking is, can I release any new features without making users update their app. Ex: I have already deployed an app without any provision of an offer menu button and then I want to include the offer button and on click of the offer button, I would make the rest API call and fetch the offers and displayAbhinav
If you deployed your app without any provision of these sort of behavior then you definitely have to update your app. All these features need an implementation some sort. You can't just start using them on the fly.bennygenel
Then why the need for Codepush? and what it does?Abhinav
@downvoters: Have I asked something that doesnt make sense?Abhinav

1 Answers

11
votes

Firebase Remote Config is kind of remote settings, for your case consider it as remote feature toggles. In Martin Fowler's term:

Feature Toggles (often also refered to as Feature Flags) are a powerful technique, allowing teams to modify system behavior without changing code.

To do this, all the features you want to expose are ideally already in the app, you use Remote Config to toggle it on/off.

enter image description here

Codepush is different in that it can release incremental features/patches, and not all the features you want to expose are in the original app, but you might need to release incremental changes (non-native js bundles).

Specific to your case, Firebase Remote Config is your best friend. And if you are tolerate to incremental updates, codepush also does well.