3.0.0

This major release drops official support for iOS 8.

Non-source changes

2.0.0

This major release upgrades the bazel dependencies and workspace. This change is breaking for anyone using bazel to build this library. In order to use this library with bazel, you will also need to upgrade your workspace versions to match the ones now used in this library's WORKSPACE file.

Source changes

Non-source changes

1.6.0

This patch release introduces a compatibility initializer for creating Objective-C animation traits from C-style motion timings.

Source changes

API changes

Auto-generated by running:

apidiff origin/stable release-candidate objc src/MotionInterchange.h

MDMAnimationTraits(Legacy)

new method: -initWithMotionTiming: in MDMAnimationTraits(Legacy)

new category: MDMAnimationTraits(Legacy)

1.5.0

This minor release introduces new Objective-C APIs for creating and storing animation traits.

New deprecations

All of the original C-style APIs for animation timing are now informally deprecated. We will remove these APIs in the future.

New features

New Objective-C APIs for storing animation traits.

Old APINew APIRationale
MotionTimingAnimationTraitsThis structure is intended to describe animations only, not motion in general.
MotionCurveTimingCurveThis brings the API name closer to the similarly-purposed CAMediaTimingFunction. MotionCurve could also be easily confused with motion through x/y space rather than through time (e.g. ArcMove), which will be problematic as we start defining paths of motion through space.
MotionRepetitionRepetitionTraitsThis aligns the naming with AnimationTraits.

Source changes

API changes

Auto-generated by running:

apidiff origin/stable release-candidate objc src/MotionInterchange.h

MDMRepetitionOverTime

new class: MDMRepetitionOverTime

new method: -initWithDuration:autoreverses: in MDMRepetitionOverTime

new method: -init in MDMRepetitionOverTime

new property: duration in MDMRepetitionOverTime

new method: -initWithDuration: in MDMRepetitionOverTime

MDMTimingCurve

new protocol: MDMTimingCurve

CAMediaTimingFunction()

new category: CAMediaTimingFunction()

MDMRepetitionTraits

new property: autoreverses in MDMRepetitionTraits

new protocol: MDMRepetitionTraits

MDMMotionCurveMakeSpringWithInitialVelocity

modified function: MDMMotionCurveMakeSpringWithInitialVelocity

Type of change:Swift declaration
From:func MotionCurveMakeSpring(mass: Float, tension: Float, friction: Float, initialVelocity: Float) -> MotionCurve
To:func MotionCurveMakeSpring(mass: CGFloat, tension: CGFloat, friction: CGFloat, initialVelocity: CGFloat) -> MotionCurve

modified function: MDMMotionCurveMakeSpringWithInitialVelocity

Type of change:Declaration
From:extern MDMMotionCurve MDMMotionCurveMakeSpringWithInitialVelocity( float mass, float tension, float friction, float initialVelocity)
To:extern MDMMotionCurve MDMMotionCurveMakeSpringWithInitialVelocity( CGFloat mass, CGFloat tension, CGFloat friction, CGFloat initialVelocity)

MDMSpringTimingCurve

new property: tension in MDMSpringTimingCurve

new method: -init in MDMSpringTimingCurve

new property: friction in MDMSpringTimingCurve

new property: initialVelocity in MDMSpringTimingCurve

new property: mass in MDMSpringTimingCurve

new class: MDMSpringTimingCurve

new method: -initWithMass:tension:friction: in MDMSpringTimingCurve

new method: -initWithMass:tension:friction:initialVelocity: in MDMSpringTimingCurve

MDMAnimationTraits

new class: MDMAnimationTraits

new property: repetition in MDMAnimationTraits

new property: delay in MDMAnimationTraits

new property: duration in MDMAnimationTraits

new method: -initWithDelay:duration:animationCurve: in MDMAnimationTraits

new method: -initWithDelay:duration:timingCurve:repetition: in MDMAnimationTraits

new method: -initWithDuration:animationCurve: in MDMAnimationTraits

new method: -initWithDelay:duration: in MDMAnimationTraits

new method: -init in MDMAnimationTraits

new method: -initWithDelay:duration:timingCurve: in MDMAnimationTraits

new method: -initWithDuration: in MDMAnimationTraits

new property: timingCurve in MDMAnimationTraits

CAMediaTimingFunction(MotionInterchangeExtension)

new method: -mdm_reversed in CAMediaTimingFunction(MotionInterchangeExtension)

new property: mdm_point1 in CAMediaTimingFunction(MotionInterchangeExtension)

new category: CAMediaTimingFunction(MotionInterchangeExtension)

new property: mdm_point2 in CAMediaTimingFunction(MotionInterchangeExtension)

MDMMotionCurveMakeSpring

modified function: MDMMotionCurveMakeSpring

Type of change:Swift declaration
From:func MotionCurveMakeSpring(mass: Float, tension: Float, friction: Float) -> MotionCurve
To:func MotionCurveMakeSpring(mass: CGFloat, tension: CGFloat, friction: CGFloat) -> MotionCurve

modified function: MDMMotionCurveMakeSpring

Type of change:Declaration
From:extern MDMMotionCurve MDMMotionCurveMakeSpring(float mass, float tension, float friction)
To:extern MDMMotionCurve MDMMotionCurveMakeSpring(CGFloat mass, CGFloat tension, CGFloat friction)

MDMAnimationTraits(SystemTraits)

new category: MDMAnimationTraits(SystemTraits)

new property: systemModalMovement in MDMAnimationTraits(SystemTraits)

MDMSpringTimingCurveGenerator

new property: initialVelocity in MDMSpringTimingCurveGenerator

new class: MDMSpringTimingCurveGenerator

new method: -init in MDMSpringTimingCurveGenerator

new method: -initWithDuration:dampingRatio:initialVelocity: in MDMSpringTimingCurveGenerator

new property: dampingRatio in MDMSpringTimingCurveGenerator

new method: -springTimingCurve in MDMSpringTimingCurveGenerator

new method: -initWithDuration:dampingRatio: in MDMSpringTimingCurveGenerator

new property: duration in MDMSpringTimingCurveGenerator

MDMMotionCurveMakeBezier

modified function: MDMMotionCurveMakeBezier

Type of change:Swift declaration
From:func MotionCurveMakeBezier(p1x: Float, p1y: Float, p2x: Float, p2y: Float) -> MotionCurve
To:func MotionCurveMakeBezier(p1x: CGFloat, p1y: CGFloat, p2x: CGFloat, p2y: CGFloat) -> MotionCurve

modified function: MDMMotionCurveMakeBezier

Type of change:Declaration
From:extern MDMMotionCurve MDMMotionCurveMakeBezier(float p1x, float p1y, float p2x, float p2y)
To:extern MDMMotionCurve MDMMotionCurveMakeBezier(CGFloat p1x, CGFloat p1y, CGFloat p2x, CGFloat p2y)

MDMRepetition

new method: -initWithNumberOfRepetitions:autoreverses: in MDMRepetition

new method: -initWithNumberOfRepetitions: in MDMRepetition

new class: MDMRepetition

new property: numberOfRepetitions in MDMRepetition

new method: -init in MDMRepetition

Non-source changes

1.4.0

This minor release introduces new APIs for creating springs that have an initial velocity.

New features

Added new APIs for creating springs with initial velocity: MDMMotionCurveMakeSpringWithInitialVelocity and _MDMSpringWithInitialVelocity.

Source changes

API changes

MDMMotionCurveMakeSpringWithInitialVelocity

new function: MDMMotionCurveMakeSpringWithInitialVelocity

_MDMSpringWithInitialVelocity

new macro: _MDMSpringWithInitialVelocity

Non-source changes

1.3.0

This minor releases introduces new APIs for defining motion curves.

New deprecations

MDMMotionCurveTypeDefault is now deprecated. Use MDMMotionCurveTypeBezier instead.

New features

The new MDMLinearMotionCurve macro allows you to define linear easing curves in specs.

Spring curve specs can now define initial velocity. This value can be read using the new MDMSpringMotionCurveDataIndexInitialVelocity enum value for MDMSpringMotionCurveDataIndex.

Source changes

API changes

MDMSpringMotionCurveDataIndexInitialVelocity

new enum: MDMSpringMotionCurveDataIndexInitialVelocity.

MDMLinearMotionCurve

new constant/macro: MDMLinearMotionCurve.

1.2.0

This minor release introduces a new API for reversing cubic beziers and a unit test for MDMModalMovementTiming.

New features

MDMMotionCurveReversedBezier reverses cubic bezier curves. Intended for use when building mirrored bi-directional transitions.

Source changes

API changes

MDMMotionCurveReversedBezier

new function: MDMMotionCurveReversedBezier.

Non-source changes

1.1.1

This patch release migrates the project's continuous integration pipeline from arc to bazel and kokoro.

New features

Continuous integration can now be run locally by executing ./.kokoro from the root of the git repo. Requires bazel.

Source changes

1.1.0

This minor release introduces two new APIs for working with timing curves.

New features

  • MDMMotionCurveFromTimingFunction can create a timing curve from a CAMediaTimingFunction.
  • MDMModalMovementTiming is the iOS timing curve for modal presentation movement.

Source changes

API changes

new function: MDMMotionCurveFromTimingFunction.

new macro: MDMModalMovementTiming.

Non-source changes

1.0.1

Added a missing framework header for Objective-C support.

Source changes

Non-source changes

1.0.0

Initial release.

Includes MotionTiming structure for representing cubic bezier and spring animations.

Source changes