
Q: Why Is the Facebook App So Large? A: iOS Can’t Handle Facebook Scale - daigoba66
http://quellish.tumblr.com/post/129756254607/q-why-is-the-facebook-app-so-large-a-ios-cant
======
toufka
If you read the presentation, it's more like,

>A: Facebook app has such different priorities than other developers, that
Apple's development ecosystem has 'unreasonable' expectations and assumptions.

Facebook wants to be (and seems to like being) a "clowntown" (as the author
puts it) where anyone and everyone can write up a duplicate library to
anything and ship it. Any and all code will ship, it just can't make the app
dip below 60fps. To meet those strange goals, they 'hacked' together their own
GUIKit (at least three of them, actually), their own IDE, their own animation
kit, their own debugger, etc. A general theme seemed to be that this was done
in order to get everything off the main thread and onto background threads. By
only depositing the very smallest amount of work onto the main thread from a
gigantic soup of background threads you could keep the app snappy without
needing to prune any code.

Seems to me to be a silly way to differentiate one's self.

~~~
gavazzy
I was going to read your comment but I felt like I had a better way to do it
so I just wrote my own. I think it's better but I didn't do any benchmarks
because I have to ship it now. Oh well, onto my next comment.

\-- Facebook dev

------
andrewchambers
This is like being proud of doing a shit so large it clogs the toilet. You
shouldn't be proud of this.

~~~
billrobertson42
Stay classy.

~~~
BinaryIdiot
I thought it was brilliantly apt.

------
ksec
Wow, At least that is a start, I have been shouting and even parking for an
answer as to why some of the Apps are huge. May be next time i should ask that
on Reddit to finally get an response.

To be honest performance wise Facebook app is great. Butter smooth, but there
is no reason a 20MB App cant be butter smooth either. Feedly App, is only
18MB.

And it seems large app isn't just Facebook, twitter is 60MB. QQ is 130MB, or
We Chat, etc..... Many apps seems to be be way bloated.

So are we implying all these apps are over engineered?

------
wkoszek
You can take a look at one of the possible reasons in a short piece I wrote
about Facebook Paper, and especially screenshots :-)

[http://www.koszek.com/blog/2015/09/08/copyright-screen-of-
fa...](http://www.koszek.com/blog/2015/09/08/copyright-screen-of-facebook-
paper/)

------
allsystemsgo
That's silly.

I work on a multitude of apps that have _huge_ customer bases. Obviously no
where near Facebook but, definitely a couple million users. The largest app
has maybe 200K lines of code? And we are always able to find sections of the
app to refactor or find dead code to cut.

~~~
tastynacho
No offense but a couple million users doesn't mean you're playing the same
game as someone significantly bigger than you.

I've worked for places that average 2-4 million users/per day 40+ million a
day, they're an order of magnitudes different in every single way

~~~
wodenokoto
I understand why the backend is different between such user bases, but
shouldn't the complexity of the app be a function of features, not number of
users?

------
X-Istence
The PDF is no longer available.

~~~
aspHax0
[https://static1.squarespace.com/static/5463eca4e4b09c644a61f...](https://static1.squarespace.com/static/5463eca4e4b09c644a61f99a/t/55fa801ae4b008853e3de038/1442480154751/SimonWhitaker.pdf)

------
a3voices
That's an idiotic reason. Obviously they over-engineered their iOS app.

~~~
justinlardinois
From having used the Facebook iOS app for the last four years or so, I assumed
that they had taken the agile methodology to the extreme. They keep adding
more and more features to the app until it's unusable, and every now and then
throw the whole thing away and start from scratch.

Granted, I've had an iPhone 4 the whole time, so the experience has gotten
worse and worse as time's gone on. But there's definitely been performance
booms and busts throughout that time, with the performance getting a lot
better whenever they release a version that's been completely redesigned.

~~~
justinlardinois
Also, the app can get _very_ kludgy at times. When you come across a rarely
used feature, you'll often find you get the mobile site in a web view (which
has a noticeably different interface) instead of an in-app implementation.
Polls in Groups are the last one I remember coming across.

------
rendambathu
Shots fired.

~~~
alistproducer2
lol

