Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Facebook Paper - what 3rd party libraries are used for what parts of the app?

I just download Facebook Paper app for iOS. There's a lot of great stuff in this app, specifically animation wise. It runs smooth as butter for me too - some really great stuff going on behind the scenes evidently.

What I'd like to know is what libraries are used for which features of the app (3rd parties libraries used are listed below. There's a truckload of them). Basically, how did they get it looking and working as well as it does - which of these libraries can I use to do the same?

Since this is a pretty broad question, specifically I'd like to know about animations - fold, swipe down, tap on a settings section, tap an icon. Was a third party library used - how did Facebook achieve the smoothness and complexity of animations that are there?

All 3rd party libraries from Facebook paper are listed below.

ACE  Appirater Reachability AQGridView bitvect Boost Breadcrumb breakpad Chromium CocoaHTTPServer CocoaLumberjack DCRoundSwitch DTCoreText EGODatabase expat FFT by Mark Oleson FFT by Takuya Ooura gh-kit gh-unit Google Toolbox for Mac google-web-toolkit gtest gyp IEEE 754r Half Precision floating... HPGrowingTextView InAppSettingsKit ios5-cookbook ios-8601-parser-unparser jqueryjs JSONKit leveldb LibComponentLogging-Core LibComponentLogging-NSLog libjingle libjpeg-turbo libjpeg libPhoneNumber-iOS libphonenumber libsrtp libvpx libyuv llvmreturn MAZeroingWeakRef minizip mizpanel-iphone mosquitto MessagePack Objective C Imple... MessagePack msinttypes OpenCV Tutorials nimbus NJKWebViewProgress unmodified objc4 ObjQREncoder OCHamcrest OCMock OCPDFGen OmniGroup OmniUI OpenSSL OpenUDID opus peertalk PhotoScroller PHP PLCrashReporter pmtk3 Pocket-ObjC-SDK portaudio protobuf PSTCollectionView SUtilities RestKit Ring Buffer Utility SDURLCache SDWebImage SOCKit SPDY-for-iPhone spdylay spreadsort ssziparchive TDOauth tiqr UAModalPanel webkit webp webrtc WebViewJavascriptBridge XMLReader yaml-cpp yasm zlib zxing 
like image 786
tarake Avatar asked Feb 04 '14 09:02

tarake


People also ask

What is third party library?

In programming, third-party software is a reusable component developed by a body other than the original vendor of the development platform. In mobile game apps, third-party libraries might be an advertising software developer kit (SDK) or a crash reporter.

Which file is used to include the third party libraries?

Third-party libraries A third-party (or “contributed”) library is a chunk of Javascript code, usually contained in a single . js file, designed to work with p5.

Is it good to use third party libraries?

The most important benefit of using third-party libraries is that it saves you time as you do not need to develop the functionality that the library provides. Instead, you can focus on the core business logic of your app: the features that really matter.


1 Answers

Quote from an engineer working on paper:

The engineering complexity here is finding a way to fully utilize the multicore architecture of newer iPhones on top of the UIKit framework which has no support for multithreading. Significant work went into creating a framework for doing rendering work on multiple threads, and we spent a long time finding the balance between performance and complexity.

Full length article here: http://www.quora.com/Facebook-Launches-Paper-January-2014/What-was-it-like-to-help-develop-Paper/answer/Jason-Barrett-Prado?srid=iaDC&share=1

like image 51
g_fred Avatar answered Sep 22 '22 10:09

g_fred