Rebuilding Facebook for iOS
Jonathan Dann (formerly of Sofa) on the previously announced rewrite from HTML5 to Objective-C:
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.
Facebook’s previous app—particularly the version just before this, 4.1.1—did not have a good reputation. Ratings on the App Store hovered around the two-star mark, and on any given day, a search on either Facebook or Twitter would yield hundreds of complaints about the mobile app’s slowness or bugginess.