您的位置:首页 > 运维架构

Facebook将神奇动画引擎Pop开源了!

2014-04-29 00:00 281 查看
Facebook 2月发布的新闻类应用Paper,因为其灵动的用户界面和交互,成为近来最令人眼前一亮的移动产品之一。
而这个产品的背后是2011年Facebook收购的Push Pop Press,创始人是分别在Apple任设计师和工程师的Mike MatasKimon Tsinteris。他们的合作者还有传奇人物Bret Victor。他们为美国前副总统Al Gore开发的电子书Our Choice当时就曾技惊四座。
产品幕后支撑的则是一系列创新工具和技术(无法直接访问)的使用,包括异步的用户界面,复杂的交互,GPU优化,已经开源的小组件KVOControllerShimmerTweaks,原型设计工具Origami等等。(对Paper所用技术的全面介绍,可以参考唐巧在《程序员》杂志上发表的文章“从Facebook看移动开发的发展”)而其中非常引人注目的技术,是动画引擎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效果:


Hacker News上的讨论 更多关于Paper的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: