5 ms·
The evolution of Facebook’s iOS app architecture
- fingerlocks 4y agoIt’s really hard for me to read this entire post without a nagging dismissive thought in the back of my mind: “They did all of this for a CRUD app?!” I’ve worked on some huge code bases for some very complicated iOS apps, but nothing that comes close to amount of engineering involved here. I wish they went into more depth of what exactly motivated these engineering design decisions so I could understand the problem space. It reads like they had some threading issues in core data, and solved it by completely rearchitecting a new UI framework? Really? Apple seems capable of shipping products using the existing public SDK for the last 15 years, so whats fundamentally different here? I can’t help but wonder if this was all the result of massive over-engineering.
- deleted 4y ago[deleted]
- pixel_tracing 4y agoYea I lol’d hard, it’s like some great massive achievement and then you go work at Google and Apple and realize there’s actual systems engineering under the hood (kernel, process scheduling, daemons, etc.)
- saurik 4y ago> Apple seems capable of shipping products using the existing public SDK for the last 15 years... ? Apple definitely isn't using "the existing public SDK" to build their apps, and absolutely has not been doing so for 15 years: they didn't even adopt their own UIViewController abstractions until like iOS 4 or so, and usage of classes like UIScroller (not UIScrollView) UITable (not UITableView) and UIDocumentView (not UIWebView) continued for a long time while they tried to make the public versions of the API acceptable enough for real apps.
- fingerlocks 4y agoOf course I was being flippant, and I think you know that.
- sokoloff 4y agoThat did not at all come through to this reader.
- School-Cotton 4y agoFBiOS is almost certainly the biggest and most complicated mobile app in the world (edit: perhaps outside of Asia, whose mobile app landscape I’m not familiar with). There is a truly dizzying amount of features, different types of news feed stories with different behavior, etc. Everything described in this article (or at least the parts I have direct knowledge of, which is a sizable chunk of it) was essential to force the thing to continue working at all. It’s not over-engineering, it’s over-producting: Facebook (err… sorry, “Meta”) is politically and culturally incapable of cutting bloat, making engineering solutions like these necessary.
- seanhunter 4y agoWork expands to fill the time of the team allocated to it. This whole article reminds me of the tech blog from Uber[1] proudly describing how they had made their own geofencing system that was worse than what comes out of the box with postgis[2]. [1] https://www.uber.com/en-GB/blog/go-geofence-highest-query-per-second-service/ https://www.uber.com/en-GB/blog/go-geofence-highest-query-pe... [2] https://www.cybertec-postgresql.com/en/beating-uber-with-a-postgresql-prototype/ https://www.cybertec-postgresql.com/en/beating-uber-with-a-p...
- lawgimenez 4y agoAt some point I thought there was React Native in their iOS app.
- School-Cotton 4y agoThere was (IIRC the Marketplace tab was all RN) and I suspect there still is.
- cpeterso 4y agoYes. Here’s a 2017 Facebook post about using React Native in Marketplace: https://reactnative.dev/blog/2017/08/07/react-native-performance-in-marketplace https://reactnative.dev/blog/2017/08/07/react-native-perform...