文档章节

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

m
 mingxun
发布于 2014/04/29 12:45
字数 605
阅读 82
收藏 0

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种静态动画: http://img.my.csdn.net/uploads/201404/29/1398716870_8337.png

这些限制了iOS设备上触摸和手势应该有的表现力。因此Kimon Tsinteris决定在Core Animation基础上增加Spring、Decay和Custom 3种动态动画效果: http://img.my.csdn.net/uploads/201404/29/1398716967_9847.png

Spring和Decay是Paper如此灵动的原因所在。而Custom则使Pop成为可扩展的动画框架,可以为任何Objective-C对象的任何属性增加动画效果。

另外,Pop还提供了一个对开发者非常友好的编程模型,使用方式与Core Animation基本一致。原来Core Animation用来启停动画的这段代码: http://img.my.csdn.net/uploads/201404/29/1398717025_9616.png

用Pop后可以写成这样: http://img.my.csdn.net/uploads/201404/29/1398717108_4475.png

而这几行代码说明了如何给一个层的边增加Spring效果: http://img.my.csdn.net/uploads/201404/29/1398717254_3294.png

Hacker News上的讨论 更多关于Paper的信息


本文转载自:http://geek.csdn.net/news/detail/7534

共有 人打赏支持
m
粉丝 3
博文 138
码字总数 9074
作品 0
崇明
保持界面流畅性的iOS框架--AsyncDisplayKit

AsyncDisplayKit是一款能够保持界面流畅性的iOS开源框架,即使是最复杂的用户界面,也可以让其流畅运行并快速响应。 AsyncDisplayKit不止是Paper的组成部分,与Facebook神奇的动画引擎Pop也是...

滔哥
2014/10/18
4.2K
0
AsyncDisplayKit 1.0 发布,iOS 开源框架

经过两个 Beta 版本之后,AsyncDisplayKit 1.0 发布了!此版本现已提供下载。 AsyncDisplayKit是一款能够保持界面流畅性的iOS开源框架,即使是最复杂的用户界面,也可以让其流畅运行并快速响...

oschina
2014/10/20
2.8K
1
AsyncDisplayKit 2.0 发布,iOS 开源框架

AsyncDisplayKit 2.0 发布了,AsyncDisplayKit 是一款能够保持界面流畅性的 iOS 开源框架,即使是最复杂的用户界面,也可以让其流畅运行并快速响应。 AsyncDisplayKit 不止是 Paper 的组成部...

王练
2016/12/12
1K
2
网易新闻iOS版使用的18个开源组件

网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件 1、AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大,...

hejunbinlan
2015/08/27
46
0
CHAnimation

CHAnimation 用来演示如何编写自己的动画引擎,灵感来自于 Facebook Pop,只需 600 行的 Objective-C 代码。 使用方法: #import "CHAnimation.h" CHAnimation *animation = [CHAnimation ne...

红薯
2014/06/06
371
0

没有更多内容

加载失败,请刷新页面

加载更多

使用rancher界面化管理docker并部署springCloud项目的其中一个服务

一、先来个简单的 1.安装docker 2.安装eureka——运行docker命令安装 3.安装eureka——运行dokcer镜像安装 (1)构建eureka的镜像,网易云的docker镜像比较全一些,也可以去https://hub.docke...

monroeCode
18分钟前
2
0
理论与实践:如何从Hadoop迁移到MaxCompute

摘要:MaxCompute大数据计算服务,能提供快速、完全托管的PB级数据仓库解决方案,能够使用户经济且高效地分析处理海量数据。而用户往往之前使用了Hadoop实现大数据计算任务,在选择了阿里云大...

阿里云云栖社区
19分钟前
1
0
mysql: utf8 && utf8mb4

https://mathiasbynens.be/notes/mysql-utf8mb4 临时收藏

阿dai
30分钟前
1
0
面试宝典系列-nginx限流

Nginx自身有的请求限制模块ngx_http_limit_req_module、流量限制模块ngx_stream_limit_conn_module基于令牌桶算法,可以方便的控制令牌速率,自定义调节限流,实现基本的限流控制。 如何Ngi...

suyain
31分钟前
2
0
下拉框选择数据过滤?

需求:下拉框数据新增一条数据,已选择的不能再重新被选择 数据:存放表格数据的数组 scoreTable 下拉框数据 catorgaryArr 定义一个已经选择了的id数组 catorgaryIds 实现: arr 使用来保存每...

西园里的猫
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部