famous

21
Александр Кожевин front-end developer

Upload: moscowjs

Post on 14-Jun-2015

648 views

Category:

Software


2 download

DESCRIPTION

Слайды доклада Александра Кожевина с MoscowJS 16

TRANSCRIPT

Page 1: Famous

Александр Кожевин front-end developer

Page 2: Famous

2

Таблица Менделеева на famo.us: http://alexander-kozhevin.com/famous/

2

Page 3: Famous

3

Page 4: Famous

4

Page 5: Famous

5

Page 6: Famous

Главные проблемы:

Рендеринг + Анимация

6

Page 7: Famous

1998 Сегодня

Рендеринг: Что мы хотим 7

Page 8: Famous

Анимация: Чего мы хотим 8

Page 9: Famous

Анимация: Что у нас есть? 9

Page 10: Famous

10

Page 11: Famous

3D DOM

Canvas WebGL

iOS/Android/Kindle

FAMO.US = PORTABLE RENDERING ENGINE

NO install NO download

NO plugin PURE JavaScript SMALL footprint

11

Page 12: Famous

12 Почему он так быстр?

context var context = Engine.createContext();

> Render Tree <

modifier var chain = context.add(modifier);

surface chain.add(surface);

Page 13: Famous

Famo.us крутой потому, что:

1.  Интеграция с MV* фреймворками 2.  Физика 3.  Набор View’ек 4.  Touch события

13

Page 14: Famous

Touch event

var sync = new GenericSync( ['mouse', 'touch'], {direction : GenericSync.DIRECTION_X} );

sync.on('update', function(data) { var currentPosition = this.pageViewPos.get();

if(currentPosition === 0 && data.velocity > 0) { //do smth }

14

Page 15: Famous

FAMO.US работает: 15

Page 16: Famous

“Чистый” famo.us

var backgroundSurface = new Surface({ size: [this.options.width, this.options.height], properties: { backgroundColor: 'black', boxShadow: '0 0 1px black' } });

16

Page 17: Famous

var rotateModifier = new StateModifier({ transform: Transform.rotateZ(this.options.angle) }); var skewModifier = new StateModifier({ transform: Transform.skew(0, 0, this.options.angle) }); this.add(rotateModifier). add(skewModifier).add(backgroundSurface);

17

Page 18: Famous

Famo.us + AngularJS

<fa-modifier ng-repeat="cat in cats" fa-animate-enter="catEnter(cat.t, $done)" fa-animate-leave="catLeave(cat.t, $done)" > <fa-surface> ... </fa-surface> </fa-modifier> <fa-surface> <input type="range" ng-model="data.t"> </fa-surface>

18

Page 19: Famous

Let’s do cool stuff: 1.  http://famo.us/

2.  https://github.com/Famous/famous

3.  https://github.com/thomasstreet/famous-angular-examples

19

Page 20: Famous

Спасибо за внимание!

Alexander Kozhevin

https://www.facebook.com/alexander.polymath

20

Page 21: Famous

Вопросы?

21