5.0.0

This major change introduces a breaking API change for Swift clients.

Breaking changes

Swift only: The UIViewController extension property transitionController has been renamed to mdm_transitionController.

Source changes

API changes

UIViewController

renamed (swift) method: transitionController to mdm_transitionController.

4.0.2

This patch release fixes a bug where the frames of custom presented views would be incorrectly set
to the view controller's frame.

Source changes

Non-source changes

4.0.1

This patch release resolves a build warning and migrates the project's continuous integration to
bazel and kokoro.

Source changes

4.0.0

This major release adds support for composable transitions. See the catalog app for a variety of
examples making use of this new functionality.

Fixed issues

Breaking changes

New features

MDMTransitionWithFeasibility allows a transition to indicate whether it is capable of performing
the transition with a given context.

The new composeWithTransition: API on MDMTransitionContext makes it possible to build modular
transition objects that delegate responsibility out to other transition objects. View the
PhotoAlbumTransition example transition to see the following code in action:

context.compose(with: FadeTransition(target: .foreView, style: .fadeIn))
context.compose(with: SpringFrameTransition(target: .target(snapshotContextView),
                                            size: fitSize))

if let toolbar = foreDelegate.toolbar(for: self) {
  context.compose(with: SlideUpTransition(target: .target(toolbar)))
}

Source changes

API changes

MDMTransitionWithCustomDuration

changed protocol MDMTransitionWithCustomDuration now conforms to MDMTransition.

MDMTransitionWithFallback

changed protocol MDMTransitionWithFallback now conforms to MDMTransition.

MDMTransitionWithFeasibility

new protocol MDMTransitionWithFeasibility.

MDMTransitionContext

new method composeWithTransition:

Non-source changes

3.3.0

This minor release deprecates some behavior and replaces it with a new API.

New deprecations

Source changes

API changes

MDMTransitionWithFeasibility

new protocol MDMTransitionWithFeasibility.

3.2.1

This patch release resolves Xcode 9 compiler warnings.

Source changes

3.2.0

This minor release introduces new features for presentation, view snapshotting, and defered transition work. There is also a new photo album example demonstrating how to build a contextual transition in which the context may change.

New features

Transition context now has a deferToCompletion: API for deferring work to the completion of the transition.

// Example (Swift):
foreImageView.isHidden = true
context.defer {
  foreImageView.isHidden = false
}

MDMTransitionPresentationController is a presentation controller that supports presenting view controllers at custom frames and showing an overlay scrim view.

The new MDMTransitionViewSnapshotter class can be used to create and manage snapshot views during a transition.

let snapshotter = TransitionViewSnapshotter(containerView: context.containerView)
context.defer {
  snapshotter.removeAllSnapshots()
}

let snapshotView = snapshotter.snapshot(of: view, isAppearing: context.direction == .forward)

Source changes

API changes

MDMTransitionContext

new method: deferToCompletion:. Defers execution of the provided work until the completion of the transition.

MDMTransitionPresentationController

new class: MDMTransitionPresentationController. A transition presentation controller implementation that supports animation delegation, a darkened overlay view, and custom presentation frames.

MDMTransitionViewSnapshotter

new class: MDMTransitionViewSnapshotter. A view snapshotter creates visual replicas of views so that they may be animated during a transition without adversely affecting the original view hierarchy.

Non-source changes

3.1.0

This minor release resolves a build warning and introduces the ability to customize navigation
controller transitions.

New features

Source changes

API changes

MDMTransitionNavigationControllerDelegate

new class: MDMTransitionNavigationControllerDelegate.

3.0.1

Fixed the umbrella header name to match the library name.

3.0.0 (MotionTransitioning)

The library has been renamed to MotionTransitioning.


Prior releases under the library name MaterialMotionTransitioning.

2.0.0 (MaterialMotionTransitioning)

The library has been renamed to MaterialMotionTransitioning.

New features

Source changes

API changes

Auto-generated by running:

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

MDMTransitionContext

new property: presentationController in MDMTransitionContext

Non-source changes


Prior releases under the library name Transitioning.

1.1.1

This is a patch fix release to address build issues within Google's build environment.

Source changes

Non-source changes

1.1.0

This minor release introduces two new features to the Transition protocol family.

New features

API changes

MDMTransitionWithFallback

new protocol: MDMTransitionWithFallback

new method: -fallbackTransitionWithContext: in MDMTransitionWithFallback

MDMTransitionWithCustomDuration

new protocol: MDMTransitionWithCustomDuration

new method: -transitionDurationWithContext: in MDMTransitionWithCustomDuration

MDMTransitionController

new property: activeTransition in MDMTransitionController

1.0.0

Initial release.

Includes support for building simple view controller transitions and transitions that support custom presentation.

Source changes

Non-source changes