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
IndefiniteObservable MotionObservable $._nextOperator · $._remember · Interaction-constraints · MotionObservable-Metadata · MotionObservable-core-animation · sources · runtime · ReactiveProperty · connection-inline · connection-object · ignoreUntil · merge · pluck · slop · startWith · valve · visualize
Status Interface level Implementation level Library
Stable as of December 7, 2016 L3: Stream creator L4: Runtime engineering material-motion
UpdatesCurrent StatusInitiation dateCompletion date
Stabilized the MotionObservable API Stable December 7, 2017
Removed the state channel Stable February 13, 2017 February 17, 2017
Android View View
JavaScript View View
iOS (Swift) View View

MotionObservable specification

This is the engineering specification for the MotionObservable object.


MotionObservable is a specialization of IndefiniteObservable.

The purpose of this specialization is to provide a canonical scope for building motion-related operators.


Expose a MotionObserver API

Provide a class for creating a motion observer using inline functions.

public final class MotionObserver<T> {
  public typealias Value = T

  public init(_ next: (T) -> Void) { = next

  public let next: (T) -> Void

Subclass IndefiniteObservable

public class MotionObservable<T>: IndefiniteObservable<MotionObserver<T>> {