Engineers Detail Extensive Efforts to Rewrite Facebook iOS App - MacRumors
Skip to Content

Engineers Detail Extensive Efforts to Rewrite Facebook iOS App

by

NewImageFacebook employee Jonathan Dann has written a blog post detailing how the company's iOS engineering team designed earlier Facebook for iPhone apps and the extensive coding that was required to rewrite the new Facebook 5.0 app.

The post is a bit technical in parts, but is worth a read for developers and others interested in how one of the most popular iPhone apps gets made.

An excerpt:

One of the biggest advantages we've gained from building on native iOS has been the ability to make the app fast. Now, when you scroll through your news feed on the new Facebook for iOS, you'll notice that it feels much faster than before. One way we have achieved this is by re-balancing where we perform certain tasks. For example, in iOS, the main thread drives the UI and handles touch events, so the more work we do on the main thread, the slower the app feels. Instead, we take care to perform computationally expensive tasks in the background. This means all our networking activity, JSON parsing, NSManagedObject creation, and saving to disk never touches the main thread.

To give another example, we use Core Text to lay out many of our strings, but layout calculations can quickly become a bottleneck. With our new iOS app, when we download new content, we asynchronously calculate the sizes for all these strings, cache our CTFramesetters (which can be expensive to create), and then use all these calculations later when we present the story into our UITableView.

Finally, when you start Facebook for iOS, you want to see your news feed, not a loading spinner. To provide the best experience possible, we now show previously-cached content immediately. But this introduces a new problem: If you have a lot of stories in your news feed, UITableView throws a small spanner in the works by calling the delegate method -tableView:heightForRowAtIndexPath: for each story in your news feed in order to work out how tall to make its scrollbar. This would result in the app loading all the story data from disk and calculating the entire story layout solely to return the height of the story, meaning startup would get progressively slower as you accumulate more stories.

The solution to this particular problem has two main parts. Firstly, when we do our initial asynchronous layout calculations, we also store the height of the story in Core Data. In doing so, we completely avoid layout calculation in -tableView:heightForRowAtIndexPath:. Secondly, we've split up our "story" model object. We only fetch the story heights (and a few other things) from disk on startup. Later, we fetch the rest of the story data, and any more layout calculations we have to do are all performed asynchronously.

Top Rated Comments

185 months ago
Hate to see if they had to work on a game or some other app that really required good coding skills.

I guess making an app to download cat pics and "I'm going to bed now!" messages was tough work.



Michael

Do you have programming experience?
Score: 19 Votes (Like | Disagree)
Pakaku Avatar
185 months ago
It's marginally better. Completely rewritten, huh? So instead of making actual improvements on the UI in the process, they kept the same limited capabilities and just made the app start up a little faster.

Still no way to share posts.
I don't use the facebook app, but I'm pretty sure I'd like a decent, usable app that's missing a few features, rather than a terrible, laggy app.
Score: 13 Votes (Like | Disagree)
Tinmania Avatar
185 months ago
Hate to see if they had to work on a game or some other app that really required good coding skills.

I guess making an app to download cat pics and "I'm going to bed now!" messages was tough work.



Michael
Score: 13 Votes (Like | Disagree)
185 months ago
Nah.... just how I have earned my living for the last 11 years. That's all lol.

Sorry, it's just that your comment makes it seem like you have never coded anything of quality. Just because it can display cat pictures doesn't make it trivial. I would expect anyone with experience to respect the work that went into this app, especially after reading the linked article.
Score: 9 Votes (Like | Disagree)
185 months ago
It's always great to see real-world hard-won experience doled out like this.

To those mad there aren't more changes, rebuilding is hard. New features are hard too. Don't do both at once. Rebuilding makes future changes easier.
Patience. Mobile users barely make Facebook money anyway.
Score: 7 Votes (Like | Disagree)
185 months ago
Hate to see if they had to work on a game or some other app that really required good coding skills.

I guess making an app to download cat pics and "I'm going to bed now!" messages was tough work.



Michael

Never coded before, have you? Games are difficult but nowhere near the most challenging.
Score: 6 Votes (Like | Disagree)

Popular Stories

apple pro tell logo

Apple Launching Five New Products Today

Thursday November 5, 2026 12:59 am PST by
Apple is launching five new products on Friday, November 6, following pre-orders that opened last week, including its first touchscreen MacBook Pro models. The following new products will be available from today: iPad mini with OLED display and A20 Pro chip iMac with M6 chip 14-inch MacBook Pro with M6 chip 14-inch MacBook Pro with OLED touchscreen 16-inch MacBook Pro with OLED...
duo aquarium

More Fun iPhone Duo Apps: 30 New Picks to Try

Friday November 6, 2026 3:27 pm PST by
When the iPhone Duo launched, we shared a list of some of the fun apps developers created for the new form factor. Two weeks out, developers are continuing to come up with fresh ideas, so we thought we'd share some of our favorites. Games Marbles Unhinged ($2.99) - Marbles Unhinged is a marble maze designed for the Duo. When you fold it, the floor turns into a ramp. If you stand the top...
silver iphone 18 pro

Apple Rumored to Drop the iPhone's Action Button Next Year

Friday November 6, 2026 6:07 am PST by
Apple plans to merge the iPhone's Action button with the Camera Control starting next year, according to the leaker known as "Instant Digital." In a new post on Weibo, the leaker claimed that a single press of the combined button would open the camera, while a long press would trigger the function assigned to the Action button. They explicitly clarified that the dedicated Action button would ...
Latest Stories
Early Apple Black Friday Deals on Apple Watch, MacBook Air, and More
Early Apple Black Friday Deals on Apple Watch, MacBook Air, and More
15 hours ago
'Backglow' Lets You Customize New MacBook Pro's Glowing Apple Logo
'Backglow' Lets You Customize New MacBook Pro's Glowing Apple Logo
15 hours ago
Top Stories: Apple Product Launches, iOS 27.3 Beta, and More
Top Stories: Apple Product Launches, iOS 27.3 Beta, and More
22 hours ago
More Fun iPhone Duo Apps: 30 New Picks to Try
More Fun iPhone Duo Apps: 30 New Picks to Try
2 days ago
Hands-On With Apple's New OLED Touchscreen MacBook Pro
Hands-On With Apple's New OLED Touchscreen MacBook Pro
2 days ago
Apple Store With All-New Design Opening Soon in Southern California
Apple Store With All-New Design Opening Soon in Southern California
2 days ago
Control the Glowing Apple Logo on Your New MacBook Pro
Control the Glowing Apple Logo on Your New MacBook Pro
2 days ago
Apple Shares New 'Apple Card: Apply and Use in Minutes' Ad
Apple Shares New 'Apple Card: Apply and Use in Minutes' Ad
2 days ago
Apple Says More Than 100,000 Apps Optimized for iPhone Duo, Here's What's Still Missing
Apple Says More Than 100,000 Apps Optimized for iPhone Duo, Here's What's Still Missing
2 days ago
Early Black Friday Deals Kickoff With Steep Discounts on Apple Watch Ultras and More
Early Black Friday Deals Kickoff With Steep Discounts on Apple Watch Ultras and More
2 days ago
The MacRumors Show: iOS 27.3 Looks Like a Huge Update
The MacRumors Show: iOS 27.3 Looks Like a Huge Update
2 days ago
Best Buy's Black Friday Event Begins With Sitewide Savings on Apple, TVs, More
Best Buy's Black Friday Event Begins With Sitewide Savings on Apple, TVs, More
2 days ago
Apple Releasing Yet Another Two New Products Next Week
Apple Releasing Yet Another Two New Products Next Week
2 days ago
MacBook Air Drops to Lowest Price in Months With Amazon's $250 Discount
MacBook Air Drops to Lowest Price in Months With Amazon's $250 Discount
2 days ago
Apple Rumored to Drop the iPhone's Action Button Next Year
Apple Rumored to Drop the iPhone's Action Button Next Year
2 days ago
Apple's Extended Return Policy Now in Effect for 2026 Holiday Season
Apple's Extended Return Policy Now in Effect for 2026 Holiday Season
2 days ago
Apple Music Classical Updated With New Icon and Refreshed Design
Apple Music Classical Updated With New Icon and Refreshed Design
2 days ago
OLED iPad Mini, M6 iMac, and New MacBook Pros Available From Today
OLED iPad Mini, M6 iMac, and New MacBook Pros Available From Today
2 days ago
Apple Surveys iPhone Duo Buyers About Crease and Camera
Apple Surveys iPhone Duo Buyers About Crease and Camera
3 days ago
Apple's First Touchscreen Mac is Now Arriving to Customers
Apple's First Touchscreen Mac is Now Arriving to Customers
3 days ago
Claude Gets Personal Finance Feature With Bank Account Linking
Claude Gets Personal Finance Feature With Bank Account Linking
3 days ago
Apple Arcade Adds Crossy Road Rush and NBA 2K27
Apple Arcade Adds Crossy Road Rush and NBA 2K27
3 days ago
Apple's New HomeView Smart Home Hub: Here's How Much RAM It Has
Apple's New HomeView Smart Home Hub: Here's How Much RAM It Has
3 days ago
iPad Mini vs. iPad Air Buyer's Guide: Now Just $50 Apart
iPad Mini vs. iPad Air Buyer's Guide: Now Just $50 Apart
3 days ago
First iOS 27.3 and macOS Golden Gate 27.3 Public Betas Now Available
First iOS 27.3 and macOS Golden Gate 27.3 Public Betas Now Available
3 days ago
Apple Announces a New Mac Sales Record
Apple Announces a New Mac Sales Record
3 days ago
Paid $200 for Logic Pro? Apple Says You Won't Get This New Feature
Paid $200 for Logic Pro? Apple Says You Won't Get This New Feature
3 days ago
Instagram's Edits Video Editor is Now Available on Mac
Instagram's Edits Video Editor is Now Available on Mac
3 days ago
Prevent Siri and Search From Accessing Specific iPhone Apps
Prevent Siri and Search From Accessing Specific iPhone Apps
3 days ago
Best Early Black Friday Deals on iPhone 18 Pro and iPhone Duo
Best Early Black Friday Deals on iPhone 18 Pro and iPhone Duo
3 days ago