Releases: material-motion/motion-animator-objc
v5.0.0
v4.0.1
v4.0.0
This major release drops official support for iOS 8 and fixes a static analyzer warning.
Source changes
- Resolve a static analyzer warning. (#124) (featherless)
Non-source changes
- Ran pod install with latest cocoapods. (#123) (featherless)
- Drop support for iOS 8 (#122) (featherless)
v3.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
- Make tests more robust to crashing failures. (#118) (featherless)
Non-source changes
- Automatic changelog preparation for release. (Jeff Verkoeyen)
- Update bazel workspace to latest versions. (#120) (featherless)
- Don't animate system views with the animator. (#119) (featherless)
- Update .travis.yml (featherless)
- Update .kokoro (featherless)
- Update .kokoro (featherless)
- Update bazel workspace and version to latest. (#117) (featherless)
v2.8.1
This patch release resolves some runtime crashes, improves the stability of our unit tests, and features an improved README.md.
Bug fixes
Fixed unrecognized selector crashes on iOS 8 devices.
Fixed crashes in Legacy API when providing nil completion blocks.
Source changes
- Ensure that zero duration test is testing with zero duration. (#115) (featherless)
- Reduce flakiness in UIKitBehavioralTests. (#113) (featherless)
- Return
nil
CAAction when swapping implementation (#109) (Robert Moore) - Fix crash in Legacy API for nil completion blocks (#110) (Robert Moore)
Non-source changes
- Iterating on the readme. (#102) (featherless)
- Update .travis.yml (#114) (featherless)
- Add core animation quiz to the readme. (#108) (featherless)
- Add readme section on main thread animations vs Core Animation. (#107) (featherless)
- Add API snippets section. (#106) (featherless)
- Add drop in replacement APIs section to the readme (#105) (featherless)
- Add a feature table to the readme. (#104) (featherless)
v2.8.0
This minor release introduces support for animating more key paths and support for drop-in UIView animation API replacements.
New features
The MotionAnimator can now implicitly animate the following CALayer properties: anchorPoint
, borderWidth
, borderColor
, shadowColor
, and zPosition
.
There are now UIKit equivalency APIs that can be used as drop-in replacements for existing UIView animation code.
Source changes
- Add IS_BAZEL_BUILD around MotionInterchange import (#103) (Louis Romero)
- Anchor point became animatable on iOS 11. (Jeff Verkoeyen)
- Add support for animating anchorPoint. (#97) (featherless)
- Add support for animating shadow color. (#99) (featherless)
- Add support for animating border width and color. (#98) (featherless)
- Add support for animating z position. (#96) (featherless)
- Add support for additively animating bounds. (#93) (featherless)
- Improve the documentation for initial velocity. (#94) (featherless)
- Standardize our param docs formatting. (#95) (featherless)
- Add back test properties that were accidentally removed in 69469aedb987e516ff1f43a123b3ee29dfef38ca. (Jeff Verkoeyen)
- Add support for using a spring generator as a timing curve. (#91) (featherless)
- Throw an assertion when an unrecognized timing curve is provided. (#92) (featherless)
- Add UIKit equivalent APIs for animating implicitly. (#90) (featherless)
API changes
Auto-generated by running:
apidiff origin/stable release-candidate objc src/MotionAnimator.h
Animatable key paths
new constant: MDMKeyPathAnchorPoint
new constant: MDMKeyPathBorderWidth
new constant: MDMKeyPathBorderColor
new constant: MDMKeyPathShadowColor
new constant: MDMKeyPathZ
MDMMotionAnimator(UIKitEquivalency)
new class method: +animateWithDuration:delay:options:animations:completion:
in MDMMotionAnimator(UIKitEquivalency)
new class method: +animateWithDuration:animations:completion:
in MDMMotionAnimator(UIKitEquivalency)
new class method: +animateWithDuration:animations:
in MDMMotionAnimator(UIKitEquivalency)
new class method: +animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:
in MDMMotionAnimator(UIKitEquivalency)
Non-source changes
- Animate the border as well to demonstrate that we can animate CALayer properties with the animator. (#101) (featherless)
- Add a UIKit-ish tap to bounce example as a contrast to the traits example. (#100) (featherless)
- Wording order. (Jeff Verkoeyen)
- Min SDK support. (Jeff Verkoeyen)
- Fix the banner url. (Jeff Verkoeyen)
- Add banner and drop most of the preamble docs in preparation for the new readme. (Jeff Verkoeyen)
v2.7.0
This minor release introduces support for the new v1.5.0 MotionInterchange format.
New features
It is now possible to additively and implicitly animate the transform
property of both UIView and CALayer.
Source changes
- Fix pre-iOS 11 unit test failure. (#89) (featherless)
- Migrate to the Objective-C interchange format (#88) (featherless)
- Revert "Update with ObjC implementation." (Jeff Verkoeyen)
- Update with ObjC implementation. (Jeff Verkoeyen)
- Add support for additively animating transform. (#85) (featherless)
API changes
Auto-generated by running:
apidiff origin/stable release-candidate objc src/MotionAnimator.h
MDMMotionAnimator
new method: -animateWithTraits:animations:completion:
in MDMMotionAnimator
new method: -animateWithTraits:between:layer:keyPath:
in MDMMotionAnimator
new method: -animateWithTraits:animations:
in MDMMotionAnimator
new method: -animateWithTraits:between:layer:keyPath:completion:
in MDMMotionAnimator
MDMKeyPathTransform
new constant: MDMKeyPathTransform
Non-source changes
- Update .travis.yml (featherless)
- Enable coverage on travis (featherless)
- Update kokoro bazel runner for v4. (Jeff Verkoeyen)
v2.6.0
This minor release increases test coverage, fixes a variety of bugs related to beginFromCurrentState
, and generally improves the stability and robustness of the underlying implementation.
New features
The following key paths are now officially supported: MDMKeyPathBounds
, MDMKeyPathShadowOffset
, MDMKeyPathShadowOpacity
, and MDMKeyPathShadowRadius
.
Source changes
- Add tests verifying the UIKit beginFromCurrentState option behavior. (#84) (featherless)
- Disable additive animations for backgroundColor and opacity. (#66) (featherless)
- Run the implicit animations block when exiting early. (#81) (featherless)
- Clarify when completion is invoked in the docs. (#82) (featherless)
- Implement a motion animator behavioral test. (#80) (featherless)
- Refactor common code from explicit/implicit animation implementations. (#78) (featherless)
- Check for divide-by-zero before calculating the initial velocity of spring animations. (#75) (featherless)
- Add fallback mechanism for non-additive animations when beginFromCurrentState is enabled. (#76) (featherless)
- Fix the bounds key path docs to indicate that additive animations are not supported. (#77) (featherless)
- Use objcType to identify the value types. (#73) (featherless)
- Fix bug where beginFromCurrentState would not start from the current model/presentation value. (#71) (featherless)
- Only animate CGSize and CGPoint key paths additively if additive is enabled. (#72) (featherless)
- Add public/private marks to the animator implementation. (#70) (featherless)
- Add MDMAllAnimatableKeyPaths API for retrieving all animatable key paths. (#69) (featherless)
- Add bounds to the list of supported key paths. (#68) (featherless)
- Document each animatable key path. (#65) (featherless)
- Add shadow key paths to the animatable keypaths list. (#64) (featherless)
- Add UIKit behavioral test verifying that layer values never implicitly animate outside of an animation block. (#63) (featherless)
- Add CALayer behavioral tests. (#62) (featherless)
- Add UIKit behavioral tests. (#60) (featherless)
API changes
MDMAnimatableKeyPaths
new supported key paths: MDMKeyPathBounds
, MDMKeyPathShadowOffset
, MDMKeyPathShadowOpacity
, and MDMKeyPathShadowRadius
.
Non-source changes
- Add literature docs. (Jeff Verkoeyen)
- Make use of the implicit animator in the example. (#79) (featherless)
- Fix minor wording in the readme. (Jeff Verkoeyen)
- Drop cocoadocs from the readme. (Jeff Verkoeyen)
- Update travis.yml with latest supported Xcode release. (Jeff Verkoeyen)
v2.5.0
This minor release makes CALayer implicit animation support more robust while simplifying the internal animator implementation.
New deprecations
MDMMotionAnimator
's +sharedLayerDelegate
API has been deprecated and is no longer needed to animate headless CALayer instances.
New features
The animator now supports additive animations on CALayer's shadowOffset
property.
Source changes
- Improved robustness of implicit animation support (#53) (featherless)
- If timeScaleFactor is 0 then exit early. (#58) (featherless)
- Spring animations now take velocity into account when determining duration. (#56) (featherless)
- Flatten the animate internal logic. (#55) (featherless)
- Allow headless CALayers to implicitly animate when using the sharedLayerDelegate. (#57) (featherless)
- Always commit the model layer value inside a transaction with actions disabled. (#54) (featherless)
- Add shadowOffset to list of support CGSize properties. (#50) (featherless)
API changes
MDMMotionAnimator
deprecated method: +sharedLayerDelegate
v2.4.0
This minor release introduces support for implicitly animating CALayers that have been created
independently of a UIView. To use this new functionality, consider the following example:
let layer = CALayer()
layer.delegate = MotionAnimator.sharedLayerDelegate()
animator.animate(with: timing) {
layer.opacity = 0.5
}
New features
Added support for adding implicit animations to headless CALayer instances.
Source changes
API changes
MDMAnimator
new method: +sharedLayerDelegate
Non-source changes
- Remove references to interchange macros. (#44) (featherless)
- Add missing Info.plist. (#43) (Sylvain Defresne)