Facebook Paper: ¿qué bibliotecas de terceros se utilizan para qué partes de la aplicación?

Acabo de download la aplicación Facebook Paper para iOS. Hay muchas cosas geniales en esta aplicación, específicamente en animation. Funciona sin problemas como la mantequilla también para mí, algunas cosas realmente buenas detrás de escena, evidentemente.

Lo que me gustaría saber es qué bibliotecas se utilizan para qué características de la aplicación (las bibliotecas de terceros utilizadas se enumeran a continuación. Hay un montón de ellas). Básicamente, ¿cómo lo hicieron verse y funcionar tan bien como lo hace? ¿Cuál de estas bibliotecas puedo usar para hacer lo mismo?

Como esta es una pregunta muy amplia, específicamente me gustaría saber sobre las animaciones: doble, desliza hacia abajo, toca una sección de configuration, toca un ícono. ¿Se usó una biblioteca de terceros? ¿Cómo logró Facebook la suavidad y complejidad de las animaciones que están allí?

Todas las bibliotecas de terceros de papel de Facebook se enumeran a continuación.

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 

Cita de un ingeniero trabajando en papel:

La complejidad de la ingeniería aquí es encontrar una manera de utilizar por completo la architecture multinúcleo de los nuevos iPhones en la parte superior del marco UIKit que no tiene soporte para multihilo. Se trabajó de forma significativa en la creación de un marco para hacer que el renderizado funcione en varios subprocesss, y pasamos mucho time buscando el equilibrio entre el performance y la complejidad.

Artículo completo aquí: 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

Facebook celebró un evento en San Francisco el 1 de abril llamado "Una mirada interior al papel de Facebook" . Vea la sección "Primavera y delicias: más allá de las animaciones estáticas – Kimon Tsinteris".

En resumen, para las animaciones utilizaron una biblioteca interna llamada Pop que ahora ha sido de origen abierto. Sus ventajas sobre CoreAnimation son 1) que no depende de CALayer … cualquier object puede ser animado 2) las animaciones pueden detenerse a mitad de flujo y una nueva se inició con el estado final del object animado coincidiendo donde estaba detenido. Notarás que las animaciones en Paper se pueden interrumpir.

En F8, Facebook anunció que se abriría el abastecimiento de la biblioteca de representación DisplayNode que permite que una gran cantidad de representación ocurra fuera del hilo principal. Esto se lanzó como AsyncDisplayKit en octubre de 2014.