react for vikings

39
WHERE 325 Adelaide Street W. Toronto, ON, Canada M5V 1P8 Greetings, CONTACT Telephone: (416) 531-5263 ONLINE Web: jam3.com Email: [email protected] All original concepts, designs and copy the exclusive property of Jam3 JAM3 REACT FOR VIKINGS

Upload: fitc

Post on 17-Jan-2017

632 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: React For Vikings

WHERE

325 Adelaide Street W.Toronto, ON, Canada M5V 1P8

Greetings,

CONTACT

Telephone: (416) 531-5263

ONLINE

Web: jam3.comEmail: [email protected]

All original concepts, designs andcopy the exclusive property of Jam3

JAM3

REACT FOR VIKINGS

Page 2: React For Vikings

MIKKO HAAPOJA

● Director of Creative Technology at Jam3

● Wrangling animations creating ui for ~10 years

● Dad to two kids and husband to one wife

Page 3: React For Vikings

JAM3

Digital agency in Toronto

Highly experiential work

+ A lot of animation+ WebGL+ Experimental

Lots of open source code

Always hiring

Page 4: React For Vikings

All original concepts, designs andcopy the exclusive property of Jam3

VIKINGS

Page 5: React For Vikings

Worked on Vikings because...

Try out new ways of working

Evaluate React

Evaluate F1

Page 6: React For Vikings

Why is Jam3 using React?

Community

Small/Consistent API

Components, components, components

Page 7: React For Vikings

What was used to build Vikings?

redux

react-router

react-transition-group

react-f1

Page 8: React For Vikings

f1 or react-f1

● A UI animation library - For reals. One F1 instance is one piece of UI

● Inspired by the way designers work

● Highly orchestrated animations

● Cross Platform

■ Works in React, basic DOM, Canvas, or really anything

■ ReactF1 uses F1-Dom and F1-Dom uses F1

● It uses path finding

■ Better separation of concerns

Page 9: React For Vikings

Path Finding

What if you could describe your UI like a map?

● Pickering, Toronto, Mississauga

● Drive from one place to another - this is why it's named F1

Page 10: React For Vikings
Page 11: React For Vikings
Page 12: React For Vikings
Page 13: React For Vikings

Inspired by the way designers work

Design the look/states

Design the animations/transitions

Should produce better path to tooling

Page 14: React For Vikings

States

Page 15: React For Vikings

States

Page 16: React For Vikings

States with ui and styles defined

Page 17: React For Vikings

States In React

Page 18: React For Vikings

Transitions

Page 19: React For Vikings

Bi-Directional Transitions

Page 20: React For Vikings

Adding Animations

Page 21: React For Vikings

Getting Fancy

Page 22: React For Vikings

Getting Even Fancier

Page 23: React For Vikings

Transitions In React

Page 24: React For Vikings

Stuff we missed in React

Page 25: React For Vikings

Why define states and transitions in their own files?

Let’s look at the Vikings project...

Page 26: React For Vikings

The power of go and onComplete

Consistent API throughout the entire app.

Very very testable via Unit tests.

Page 27: React For Vikings

Something is missing... Chief!

Page 28: React For Vikings

The Chief's responsibilities

It's react-f1's boss.

Chief component's tell other components what state they should be in.

Page 29: React For Vikings

Chief's states

Page 30: React For Vikings

Chief's transitions

Page 31: React For Vikings

Chief In React

Page 32: React For Vikings

Chief's crazy function

Page 33: React For Vikings

Chief's crazy function becomes

Page 34: React For Vikings

A segway into animations via props...

The way that chief works is actually how all React animation's should work.

This is how F1 worked also.

But...

Page 35: React For Vikings
Page 36: React For Vikings

Other Features

Custom parsers

Custom transitions via functions

Page 37: React For Vikings

Where F1 is headed...

Better documentation

Tooling

+ Unit testing harness

+ Integration with After Effects or Animate

+ Gallery

+ Etc.

Page 39: React For Vikings

THANKS

WHERE

325 Adelaide Street W.Toronto, ON, Canada M5V 1P8

CONTACT

Telephone: (416) 531-5263

ONLINE

Web: jam3.comEmail: [email protected]

All original concepts, designs andcopy the exclusive property of Jam3