27 votes

Facebook Paper - Quelles bibliothèques tierces sont utilisées pour quelles parties de l'application?

Je viens de télécharger Facebook Paper app pour iOS. Il y a beaucoup de choses dans cette application, plus précisément de l'animation sage. Il fonctionne lisse comme du beurre pour moi aussi - certains trucs vraiment super se passe derrière les coulisses, de toute évidence.

Ce que je voudrais savoir est ce que les bibliothèques sont utilisés pour les fonctionnalités de l'application (3ème parties les bibliothèques utilisées sont énumérées ci-dessous. Il y a un camion de mer). En gros, comment avaient-ils à la recherche et de travail aussi bien qu'il n' - laquelle de ces bibliothèques puis-je utiliser pour faire de même?

Depuis c'est une question assez vaste question, plus précisément, je voudrais savoir sur les animations de fois, balayez vers le bas, appuyez sur paramètres, appuyez sur une icône. A un tiers bibliothèque utilisée - comment avez-Facebook obtenir la finesse et la complexité des animations qui sont là?

Tous les 3ème partie les bibliothèques de Facebook de papier sont énumérés ci-dessous.

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

10voto

g_fred Points 1791

Citation d'un ingénieur travaillant sur le papier:

L'ingénierie de la complexité est ici de trouver un moyen d'utiliser pleinement les architecture multicœur de nouveaux iPhones sur le dessus du framework UIKit qui n'a pas de support pour le multithreading. Un important travail est allé dans la création d'un cadre pour faire le travail de rendu sur plusieurs threads, et nous avons passé un long moment à la recherche d'un équilibre entre la performance et la la complexité.

Pleine longueur de l'article ici: 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

6voto

combinatorial Points 2022

Facebook a organisé un événement à San Francisco le 1er avril appelé "Un Regard Intérieur sur Facebook Papier". Voir la section "Printemps & Plaisir: au-Delà de Statique des Animations Kimon Tsinteris".

En résumé, pour les animations, ils ont utilisé une bibliothèque appelée Pop qui a maintenant été open-source. C'est plus d'avantages que le CoreAnimation sont 1) qu'il ne dépend pas de CALayer... n'importe quel objet peut être animé (2) les animations peuvent être arrêtée à mi-chemin d'écoulement, et une nouvelle a commencé avec la fin de l'état de l'objet animé d'appariement où il a été arrêté. Vous remarquerez que des animations en Papier peuvent tous être interrompu.

À F8, Facebook a annoncé qu'ils seraient approvisionnement ouvert la bibliothèque de rendu DisplayNode qui permet à une grande quantité de rendu surviennent hors du thread principal.

4voto

Jasper Blues Points 7262

Je dirais que les animations ont été mises en œuvre en interne à l'aide CoreAnimation.

À partir de la liste que vous avez posté, je ne peux exclure la plupart des bibliothèques, laissant une liste de quelques-uns que je ne suis pas familier avec. Basé sur les noms, ils ne ressemblent pas à l'animation de bibliothèques:

bitvect
Breadcrumb
breakpad
Chromium
FFT by Mark Oleson
FFT by Takuya Ooura
gyp
libsrtp
libvpx
libyuv

Je suis encore de la création de mon animation-fu, mais je pense que le meilleur endroit pour commencer serait de:

  • apprendre à utiliser CAKeyFrameAnimation, et comment remplir les cadres à l'aide des formules mathématiques pour des courbes d'animation. Voici un bon tutoriel. Et voici une bibliothèque que les détails de l'interpolation des formules pour CAKeyframeAnimation.
  • apprendre à appliquer les m34 matrice à une couche (ajoute de la 3d) et ne point de vue des transformations.

  • Honcheng fait un excellent paperfold animation ici, et des liens autre exemple, par la personne qui lui a appris les tenants et les aboutissants de l'animation.

0voto

bdv Points 326

Pour tous ceux qui sont intéressés, Facebook a maintenant ouvert la bibliothèque d'animation utilisée pour construire Paper, et c'est assez génial. La documentation sur le fichier Lisezmoi est assez courte, mais il existe déjà de nombreuses ressources pour vous aider à démarrer avec.

https://github.com/facebook/pop

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X