Facebook论文 - 第三方库用于应用程序的哪些部分?

时间:2014-02-04 09:06:39

标签: ios iphone objective-c facebook animation

我只是为iOS下载Facebook Paper应用。这个应用中有很多很棒的东西,特别是动画明智的。对我来说,它也像黄油一样顺利运行 - 显然在幕后发生了一些非常棒的事情。

我想知道的是是用于应用程序功能的库(使用的第三方库如下所示。其中有一卡车)。基本上,他们是如何让它看起来和工作一样好 - 我可以使用哪些库来做同样的事情?

由于这是一个非常广泛的问题,特别是我想了解动画 - 折叠,向下滑动,点按设置部分,点按图标。是否使用了第三方库 - Facebook如何实现动画的平滑性和复杂性?

以下列出了Facebook论文中的所有第三方库。

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

2 个答案:

答案 0 :(得分:10)

引用纸上工程师的话:

  

这里的工程复杂性正在寻找一种充分利用它的方法   在UIKit框架之上的更新iPhone的多核架构   它不支持多线程。重要的工作进入了   创建一个框架,用于在多个线程上进行渲染工作,以及   我们花了很长时间才找到性能和性能之间的平衡   复杂性。

这里的全文: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

答案 1 :(得分:6)

Facebook于4月1日在旧金山举办了一场名为"An Inside Look at Facebook Paper"的活动。请参阅“Spring& Delight:超越静态动画 - Kimon Tsinteris”部分。

总之,对于动画,他们使用了一个名为Pop的内部库,该库现已开源。它比CoreAnimation更有优势1)它不依赖于CALayer ...任何对象都可以被动画2)动画可以在流动中停止,而新动画开始时动画对象的结束状态匹配它所在的位置停止。您会注意到Paper中的动画都可以被中断。

在F8 Facebook announced,他们将开放渲染渲染库DisplayNode,允许大量渲染发生在主线程之外。这是在2014年10月以AsyncDisplayKit发布的。