Material Motion Exploring solutions that will empower creators with the tools needed to describe and implement rich, interactive motion on any platform. Edit this page · History

February 02-08, 2017

Want to contribute? Check out our Android and iOS milestones, many of which are ready for someone to take ownership of. Also check out our newbie-friendly tasks.

This weekly update captures what changed in a given week across the Material Motion ecosystem.

Check out current focus to see what we’re working on next.

Check out stability to learn about the current state of each feature.


View all of our contributors

Android platform

🎉 DirectlyManipulable now uses AnchorPointAdjustable interaction to ensure pivot always aligns with the gesture centroid.

🎉 ReactiveProperty instances are now shared for the same target property. This allows interactions to affect each other by reading and writing to the same properties.

🎉 Spring is now an interaction.

📝 Tossable interaction

ReactiveProperty<Float[]> destination = ReactiveProperty.of(new Float[]{500f, 500f});
runtime.addInteraction(new Tossable(destination), target);

Apple platforms

🎉 Implemented arc move and an arc move example.

Web frameworks

🎉 Built prototype of createDragStream() atop MotionObservable, with translated and read operators


🎉 mdm git tree output now includes the diff url:

$ mdm git tree
* 85aeb16 Sample work in progress commit.
* a4721d0 AnchorPointAdjustable interaction.
* a88acf6 Support idiomatic Android property code.
* 08fdc63 Add onConnect() and onDisconnect() to Operation.
* 16d5036 Add CheckboardDrawable to demo.


Android platform support

Library Build status Coverage Version Issues
catalog-android passing 0%   0 open
conventions-android       0 open
expression-android       2 open
family-direct-manipulation-android passing 100% v1.2.0 2 open
family-rebound-android passing 100% v1.1.0 3 open
family-tween-android passing 100% v2.1.0 2 open
gestures-android passing 91% v1.0.0 4 open
indefinite-observable-android passing 100% v2.0.0 0 open
runtime-android passing 95% v6.0.1 13 open
streams-android passing [-39%-]{+27%+} v1.0.0 [-14-]{+12+} open
transitions-android       9 open

Apple platform support

Library Build status Coverage Version Platforms Docs Issues
catalog-swift passing         10 open
conventions-objc           0 open
coreanimation-swift passing 61% v2.0.0 ios   6 open
coreanimation-transitions-swift passing 84% v1.0.0 ios -1% 0 open
direct-manipulation-swift passing 84% v1.1.0 ios   5 open
indefinite-observable-swift passing 100% v3.1.0 ios / osx 54% 0 open
pop-swift passing 42%     21% 6 open
pop-transitions-swift passing 71% v1.0.0 ios   0 open
runtime-objc passing 91% v6.0.1 ios 100% 16 open
streams-swift [-canceled-]{+passing+} [-10%-]{+6%+}       [-8-]{+13+} open
transitions-objc passing 48% v1.1.0 ios 90% 5 open

Web platform support

Library Build status Coverage Version Issues
indefinite-observable-js passing 100% v1.0.1 3 open
material-motion-js passing     41 open
streams-experiment-js       1 open

Misc libraries

Library Build status Coverage Version Issues
apidiff passing 86% v1.0.0 11 open
chrome-inspector       4 open
ci-staging-area       0 open
direct-web       0 open
hubot       0 open
material-motion       [-37-]{+38+} open
milemarker       18 open
sprints       32 open
starmap       48 open
sublime       4 open
tools       100 open

Learn more

Join us on Discord!