Comment by andreashansen
9 years ago
Watch the State of the Web talk from Google IO 2017. Certain native apps (Twitter, OLA) are 70-100MB in size when downloaded from the app stores. Their progressive web app version are 0.2-0.6MB. Extremely important in countries with very limited and/or expensive mobile data.
That doesn't have anything to do with native vs web though.
Twitter's native app is heavier than their web app because Twitter has historically filled the native app with junk (like a fullscreen video just for the login screen, "moments", "highlights", hijacking browser URLs, a bunch of ads and ad tracking, etc). Facebook does the same, to an almost silly degree - https://news.ycombinator.com/item?id=8162342
The Twitter client could easily be ~3MB on Android, for instance, if they just stripped the garbage out. And similarly, if you take a web app, and embed all that same junk into it, it will suddenly be a heavy download too.
In theory you could make a web app look like a native iOS app too, yet in practice developers don't either.
In practice, they tend to make it look like iOS, but then they ship the same thing for Android, meaning the Android app looks like an iOS app.
https://sensortower.com/blog/ios-app-size-growth
According to this, Facebook was 32 MBs 4 years ago. It's similar with Twitter.
It's their fault that they keep adding stuff to track you. And Facebook contains just about every library that has ever existed now.
But now Facebook mobile app is a different tech. It's ReactNative, not Obj-C, right?
React Native under the hood uses Obj-C to bridge to native Cocoa frameworks. For example when you uses a <View> tag in JavaScript, it ends up calling iOS UIView.
1 reply →
Only a tiny fraction of the Facebook app is actually RN. Messenger uses none of it for performance reasons.
2 replies →
I'd say that's another issue. Duplicate frameworks in Facebook.app, monolithic tracking frameworks, etc. So much useless stuff prying on the user's privacy.
I remember Twitter.app had code to get the currently installed apps, to "better target ads." It's user hostile and we are paying with the multi gigabytes of data.
The argument can't go only one way, though. If a web app doesn't get the UI in tune with the OS' look and feel, "the developer should be bothered to create a native app". But if a native app is a massive bloat, "that's another issue".
0.6MB to launch the app, which downloads 100MB more resources as soon as it starts up.