Facebook 2月發布的新聞類應用Paper,因為其靈動的用戶界面和交互,成為近來最令人眼前一亮的移動產品之一。
而這個產品的背後是2011年Facebook收購的Push Pop Press,創始人是分別在Apple任設計師和工程師的Mike Matas與Kimon Tsinteris。他們的合作者還有傳奇人物Bret Victor。他們為美國前副總統Al Gore開發的電子書Our Choice當時就曾技驚四座。
產品幕後支撐的則是一系列創新工具和技術(無法直接訪問)的使用,包括非同步的用戶界面,複雜的交互,GPU優化,已經開源的小組件KVOController和Shimmer、Tweaks,原型設計工具Origami等等。而其中非常引人注目的技術,是動畫引擎Pop。
4月21日,Tapity的Jeremy Olson透露Facebook計劃開源Pop之後,移動開發社區都進入了等候狀態。在微博上也可以搜到不只一個開發者在翹首等待Pop的開源。
就在1個小時前,Facebook將Pop開源了:https://github.com/facebook/pop。而就在短短的幾十分鐘里,項目的關注數迅速達到700多。
Paper的主要開發者之一Kimon Tsinteris在Facebook的工程博客里撰文(請自備梯子)簡單介紹了Pop的工作原理。
iOS原生的Core Animation框架只提供了linear, ease-in, ease-out和ease-in-ease-out等4種靜態動畫:
這些限制了iOS設備上觸摸和手勢應該有的表現力。因此Kimon Tsinteris決定在Core Animation基礎上增加Spring、Decay和Custom 3種動態動畫效果:
Spring和Decay是Paper如此靈動的原因所在。而Custom則使Pop成為可擴展的動畫框架,可以為任何Objective-C對象的任何屬性增加動畫效果。
另外,Pop還提供了一個對開發者非常友好的編程模型,使用方式與Core Animation基本一致。原來Core Animation用來啟停動畫的這段代碼:
用Pop后可以寫成這樣:
而這幾行代碼說明了如何給一個層的邊增加Spring效果: