Why Do People Want Code Push So Much?
There is an article I wrote that talks about why I think Flutter is better than React Native.
I posted it. It appeared to be well received. And then an army of React Native fanboys descended on that post. And apparently, they can’t even read so they see a heading that says ‘Hot Reload’ and they’re just like ‘Bro…’. I had to rename that heading and remove one paragraph so it’s more clear.
Now, to be perfectly clear it’s perfectly fine to like React Native. In fact in some situations like web React Native is the better choice. But most of the complaints in the comments of that post are nonsense. They sound impressive but when you think about them they’re just a hacky fix on a much deeper problem.
That’s why I like Flutter, it was designed from the ground up to do things properly. It’s a lot more work, you have to draw each individual pixel and reimplement tons of accessibility fixes from scratch. But the upside is you don’t get a mess that is frankensteined together on ancient web technologies.
But there is a complaint about Flutter I couldn’t shake so easily: code push.
Code Push
Code push is simply put, a way to update an app without going through the app store review process. This way you can ensure everyone gets the update, not just people with automatic updates turned on. It’s pretty simple. React Native uses Javascript and Web elements so just make the user download new Javascript files replacing the native content. Although, it’s not literally Javascript you’re uploading. It’s some sort of patch file.
And then if you think about it that way there’s no reason Flutter couldn’t support code push too. I’ve seen people saying how Flutter is compiled so it can’t do it. Not true, the technology behind code push is the same behind something like DLC for a video game. Anyone can do it.
So if it’s not some secret React Native sauce. But if it’s not exclusive to React Native why do more frameworks not implement it? Well, there are a few reasons.
App Stores Would Prefer You Not To Code Push
I was going to name this section ‘It’s Against App Store Rules’. But I looked into it and it’s actually not as I talked about in this post.
However I think Google and Apple only reluctantly allow it. They realized that once a developer makes a web view they have no way to control what your app does anymore. So they put out a section allowing code push. And it applies specifically to interpreted code, AKA HTML/Javascript. Geez, I wonder why.
Also some people still get rejected for trying to implement code push.
I wouldn’t really want to do something that could get me in trouble. And for what?
Is It Really Necessary?
So when people defend code push they always talk about bugs. What if there’s a bug that you didn’t catch and needs to be patched? Now I have encountered bugs like this in the past and they are very embarrassing. But the only time I published a bug that completely broke an app was when I was very new to app development.
Now when I push out an update I go through a few basic manual tests to make sure everything is working before I push the update. And in addition to this I have quite a few automated tests. And since then I have not actually pushed out a broken build.
There have been some minor bugs. But these only affect a few users and they are never that bad. The app is still usable. Certainly nothing that has to be fixed ASAP.
And app stores now let you roll out updates gradually. Both Google Play and Apple allow you to do this. This allows you to catch issues early and halt a release if you notice issues.
The more I think about it the more I think that code push is just an excuse for poor testing practices.
We Can Already Code Push
I said at the beginning of this post that anyone can do code push. And, in fact, someone has already done it with Flutter. A company called ShoreBird has got it running.





