So I do primarily App/Extension development, and I've been doing it for about 15 years now.
The short answer: You must have an interface you control, because app store review times mean there is no "hot fix".
When something upstream of the client breaks - you are DAYS (assume 24 to 48 hours for review, after you fix the bug) from being able to get a new client in front of users, and several weeks out from having all of your users (all being some accepted percentage - I use ~95% for my releases) actually update to the latest version.
If that "something upstream" is you - you can usually plan for it, release the updated client ahead of time, get it rolled out, then pull support for the old feature.
If that "something upstream" is reddit... They break things, and they might (but probably won't) inform you ahead of time. You will have many, many more outages.
All the comments in this thread are right. This specific scenario was about providing a consistent experience. All the work that this backend does could be done using iOS’ background updates, but:
1. Those aren’t consistently scheduled
2. They have an extremely tight deadline (and sometimes Reddit can be a bit slow)
Making it server side means we controlled that experience better.
I can take a guess - it allows you the flexibility of doing things the way you want it without having to update the app. You can make non-breaking changes to handle things/issues or implement workarounds/optimisations without the user realizing anything.
This is only used for the push notifications in the subscription version of Apollo. I haven't checked the code but it probably polls the Reddit API with the users OAuth token and sends a push to the Apollo app if new activity is found.
The short answer: You must have an interface you control, because app store review times mean there is no "hot fix".
When something upstream of the client breaks - you are DAYS (assume 24 to 48 hours for review, after you fix the bug) from being able to get a new client in front of users, and several weeks out from having all of your users (all being some accepted percentage - I use ~95% for my releases) actually update to the latest version.
If that "something upstream" is you - you can usually plan for it, release the updated client ahead of time, get it rolled out, then pull support for the old feature.
If that "something upstream" is reddit... They break things, and they might (but probably won't) inform you ahead of time. You will have many, many more outages.