Подтвердить что ты не робот

Facebook Paper - какие сторонние библиотеки используются для каких частей приложения?

Я просто скачал приложение для Facebook для iOS. В этом приложении много отличного материала, в частности анимация мудрый. Очевидно, что он работает как масло для меня - некоторые действительно замечательные вещи, по-видимому, происходят за кулисами.

То, что я хотел бы знать, - это то, какие библиотеки используются, для каких функций приложения (используемые библиотеки сторонних разработчиков перечислены ниже). В основном, как они выглядели и работали так же хорошо, как и он, - какую из этих библиотек я могу использовать для этого?

Так как это довольно широкий вопрос, в частности, я хотел бы узнать об анимации - свернуть, прокрутить вниз, коснуться раздела настроек, нажать значок. Была ли использована сторонняя библиотека - как 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
4b9b3361

Ответ 1

Цитата от инженера, работающего на бумаге:

Инженерная сложность здесь заключается в том, чтобы найти способ полностью использовать многоядерная архитектура новых iPhone на платформе UIKit который не поддерживает многопоточность. Значительная работа создание структуры для выполнения работы по нескольким потокам и мы долго находили баланс между производительностью и сложность.

Полная статья здесь: 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

Ответ 2

Facebook провела мероприятие в Сан-Франциско 1 апреля под названием "Внутри взглянуть на бумагу Facebook" . См. Раздел "Spring и восторг: за пределами статической анимации - Кимон Цинтерис".

В целом, для анимаций они использовали внутреннюю библиотеку, называемую Pop, которая теперь была открыта. Преимущества CoreAnimation: 1) что он не зависит от CALayer... любой объект может быть анимирован 2) анимация может быть остановлена ​​в середине потока, а новая начата с конечного состояния анимированного объекта, соответствующего тому, где оно было остановился. Вы заметите, что анимация в Бумаге может быть прервана.

В F8 Facebook анонсировано, они будут открыты для поиска библиотеки отображения DisplayNode, которая позволяет сделать большой объем рендеринга с основного потока. Это было выпущено как AsyncDisplayKit в октябре 2014 года.