| # 4.0.1 |
| |
| This patch release resolves some missed warnings in 4.0.0 and fixes a broken test on iOS 13+14. |
| |
| # 4.0.0 |
| |
| This major release drops official support for Bazel and iOS 9. |
| |
| # 3.0.0 |
| |
| This major release drops official support for iOS 8. |
| |
| ## Non-source changes |
| |
| * [Drop support for iOS 8 (#43)](https://github.com/material-motion/motion-interchange-objc/commit/31a6c576f752a132206c7b09412bd6a390052b88) (featherless) |
| * [Remove the xcode_select logic. (#42)](https://github.com/material-motion/motion-interchange-objc/commit/9cd51bc492174aabfa99cd2d4d802f8f58a3239c) (featherless) |
| |
| # 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 |
| |
| * [Update .travis.yml (#35)](https://github.com/material-motion/motion-interchange-objc/commit/f9891a24b843edc004f86ee86f7477d6327957b1) (featherless) |
| |
| ## Non-source changes |
| |
| * [Update bazel workspace to latest versions. (#40)](https://github.com/material-motion/motion-interchange-objc/commit/a9a1cab4354ce45d8a4548b28c708455ce93885a) (featherless) |
| * [Update .kokoro](https://github.com/material-motion/motion-interchange-objc/commit/cfbd73021314ce24b0e0f2d37906b58b128e416c) (featherless) |
| * [Update .kokoro](https://github.com/material-motion/motion-interchange-objc/commit/7e3af4ac83426ea8da8283211e09c0458ff24b81) (featherless) |
| * [Update bazel workspace and version to latest (#38)](https://github.com/material-motion/motion-interchange-objc/commit/71aa2e4393574d2b4b5cf55695787b9a662165d1) (featherless) |
| * [Update .kokoro to build against Xcode 9.1](https://github.com/material-motion/motion-interchange-objc/commit/816f52f4600b311f50dae7ef9aa3b9f9f1fb1b0e) (featherless) |
| * [Update .travis.yml](https://github.com/material-motion/motion-interchange-objc/commit/ba7e0f0015b83eda35edf0144fb6fa3ebb52a81a) (featherless) |
| |
| # 1.6.0 |
| |
| This patch release introduces a compatibility initializer for creating Objective-C animation traits from C-style motion timings. |
| |
| ## Source changes |
| |
| * [Add a legacy initializer for animation traits. (#34)](https://github.com/material-motion/motion-interchange-objc/commit/e3321d0e4081de1f3d8edee115af0a9ea2142c48) (featherless) |
| |
| ## 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 API | New API | Rationale | |
| |:------- |:-------- |:-----------| |
| | MotionTiming | AnimationTraits | This structure is intended to describe animations only, not motion in general. | |
| | MotionCurve | TimingCurve | This 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. | |
| | MotionRepetition | RepetitionTraits | This aligns the naming with AnimationTraits. | |
| |
| ## Source changes |
| |
| * [Restrict subclassing on all types. (#32)](https://github.com/material-motion/motion-interchange-objc/commit/0530ba355d8af640fd9fd51df137c6aed494f63c) (featherless) |
| * [Re-introduce v1 APIs. (#33)](https://github.com/material-motion/motion-interchange-objc/commit/4a857a0393d55e01d1b282d12a814cec197111c0) (featherless) |
| * [Extract the UIKit damping ratio APIs to their own class. (#31)](https://github.com/material-motion/motion-interchange-objc/commit/e9226a45892cf1a3f783232e6e7fc81751aaeb1d) (featherless) |
| * [Add support for copying animation traits. (#30)](https://github.com/material-motion/motion-interchange-objc/commit/f7fb09546d034fcdf8e57509aa157a760aebd398) (featherless) |
| * [Allow writing of all properties. (#26)](https://github.com/material-motion/motion-interchange-objc/commit/4f74d24b6d66503fed71af36482665814e10a3a4) (featherless) |
| * [Add support for damping ratio initializers on the spring timing curve. (#27)](https://github.com/material-motion/motion-interchange-objc/commit/9d7352cec750b8c00fe300708647ebb01189b6c2) (featherless) |
| * [Use UIViewAnimationCurve instead of NSString as the easing curve type. (#28)](https://github.com/material-motion/motion-interchange-objc/commit/d94246c2b5286d20f92dfc7569b39798394d9422) (featherless) |
| * [Add APIs for initializing an animation trait with a named timing function. (#25)](https://github.com/material-motion/motion-interchange-objc/commit/72e75e44a940e815a06ee516237451be0646b688) (featherless) |
| * [Implement v2 APIs (#22)](https://github.com/material-motion/motion-interchange-objc/commit/3a28e221cfe9fccc2c46523adbb817334e7e918a) (featherless) |
| * [Standardize the timing curve creation methods on CGFloat. (#21)](https://github.com/material-motion/motion-interchange-objc/commit/75f0d3515bda6cb9770c96ddb787a3da50a2b7c6) (featherless) |
| |
| ## 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 |
| |
| * [Update docs with new API.](https://github.com/material-motion/motion-interchange-objc/commit/c30d90457c7bf6901e684ba932a5dd3b8ecd5fe5) (Jeff Verkoeyen) |
| * [Fixing travis builds.](https://github.com/material-motion/motion-interchange-objc/commit/a4301e2eb55594408452446b37dec9a13d93ca53) (Jeff Verkoeyen) |
| * [Use http_archive instead of git_respository as per the bazel team's recommendations. (#29)](https://github.com/material-motion/motion-interchange-objc/commit/0730f1a905421f9a5d75e6015e1bf4d242a76988) (featherless) |
| * [Remove unused header.](https://github.com/material-motion/motion-interchange-objc/commit/e8af0592da1aa244867089532381f6dbdd801a77) (Jeff Verkoeyen) |
| * [Iterating on the usage docs.](https://github.com/material-motion/motion-interchange-objc/commit/dcca85ea152d83cbdcf88d74916a228f40c8c2e1) (Jeff Verkoeyen) |
| * [Revert "Add todo configuration"](https://github.com/material-motion/motion-interchange-objc/commit/41588742c057d79a3a3a7338f867a9622d84e143) (Jeff Verkoeyen) |
| * [Add todo configuration](https://github.com/material-motion/motion-interchange-objc/commit/d2e1450ac327ebfba49c7489375bd635e9cfc1bb) (featherless) |
| * [Enable code coverage on travis](https://github.com/material-motion/motion-interchange-objc/commit/111d91ea2da6ee2a8acd73c89664f4b10b6232c1) (featherless) |
| * [Run tests on Travis.](https://github.com/material-motion/motion-interchange-objc/commit/f56f8a7a75e93a087aadc0f0d5759be13fd43cb7) (Jeff Verkoeyen) |
| * [Update README.md](https://github.com/material-motion/motion-interchange-objc/commit/3f9405eac1445d0f12cb4fad4ad0a89631ded920) (featherless) |
| * [Fix minor typo.](https://github.com/material-motion/motion-interchange-objc/commit/671ab1d579fd1d1c228ec266396145bbaf70f996) (Jeff Verkoeyen) |
| * [Initial pass at fleshing out the readme (#24)](https://github.com/material-motion/motion-interchange-objc/commit/4e0a2e7ad5f258bc450a9dde3281fa7c3752bae6) (featherless) |
| * [Fix travis.](https://github.com/material-motion/motion-interchange-objc/commit/866ec18cf2353c2682f89d1350af57c05ce25839) (Jeff Verkoeyen) |
| * [Add missing Info.plist. (#20)](https://github.com/material-motion/motion-interchange-objc/commit/0080128a6846d2eda8538cab260cbecbbe32b9a1) (Sylvain Defresne) |
| |
| # 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 |
| |
| * [Add new APIs for creating springs with initial velocity. (#19)](https://github.com/material-motion/motion-interchange-objc/commit/326180f9f5f99e7d5e9e23131de8c24abe2e1dbf) (featherless) |
| |
| ## API changes |
| |
| ### MDMMotionCurveMakeSpringWithInitialVelocity |
| |
| **new** function: `MDMMotionCurveMakeSpringWithInitialVelocity` |
| |
| ### _MDMSpringWithInitialVelocity |
| |
| **new** macro: `_MDMSpringWithInitialVelocity` |
| |
| ## Non-source changes |
| |
| * [Add sdk_frameworks dependencies to the BUILD file. (#18)](https://github.com/material-motion/motion-interchange-objc/commit/a601fb65166426bc708d84c0e29d89913c445d04) (featherless) |
| * [Add jazzy yaml.](https://github.com/material-motion/motion-interchange-objc/commit/130e9760bbb8c0e2179f820cc14f1278c9465b84) (Jeff Verkoeyen) |
| |
| # 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 |
| |
| * [Document and define the initial velocity parameter of spring curves (#17)](https://github.com/material-motion/motion-interchange-objc/commit/7eb5e2f79229c3b7cdada7b8df3e1e66b7e229e5) (featherless) |
| * [Add a linear curve constant. (#16)](https://github.com/material-motion/motion-interchange-objc/commit/0aa4f8caff7314310c3cbd721814305ee6f53601) (featherless) |
| * [Deprecate MDMMotionCurveTypeDefault in favor of MDMMotionCurveTypeBezier. (#15)](https://github.com/material-motion/motion-interchange-objc/commit/f5a7f3b4a63d4643700403930e2cafd7d4482013) (featherless) |
| |
| ## 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 |
| |
| * [Add a unit test for MDMModalMovementTiming. (#12)](https://github.com/material-motion/motion-interchange-objc/commit/a0c3566ad52a45365657e0591701afa7989eb822) (featherless) |
| * [Add MDMMotionCurveReversed for reversing timing curves. (#11)](https://github.com/material-motion/motion-interchange-objc/commit/a54a5ffa49052a198b4bb5beedce737bb61ebc91) (featherless) |
| |
| ## API changes |
| |
| ### MDMMotionCurveReversedBezier |
| |
| **new** function: `MDMMotionCurveReversedBezier`. |
| |
| ## Non-source changes |
| |
| * [Standardize the kokoro and bazel files. (#13)](https://github.com/material-motion/motion-interchange-objc/commit/a009d3f7d08d8b2d087891a86eb1e298714198b4) (featherless) |
| * [Use the v1.0.0 tag for bazel_ios_warnings. (#10)](https://github.com/material-motion/motion-interchange-objc/commit/545b6a448ddb235279318dc262f051d653a48ed4) (featherless) |
| |
| # 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](http://bazel.io/). |
| |
| ## Source changes |
| |
| * [Replace arc with bazel and Kokoro continuous integration. (#9)](https://github.com/material-motion/motion-interchange-objc/commit/2ef4dfbf95a7beb3f0e323e259576b6797420202) (featherless) |
| * [Fix warning in unit tests. (#8)](https://github.com/material-motion/motion-interchange-objc/commit/d3203a2857648f74d478525514c0f10cb6552b19) (featherless) |
| * [Add missing import.](https://github.com/material-motion/motion-interchange-objc/commit/445091dbbd68cd0a75e4dd86195cb431b0717e71) (Jeff Verkoeyen) |
| |
| # 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 |
| |
| * [Add MDMMotionCurveFromTimingFunction for creating motion curves from timing functions. (#7)](https://github.com/material-motion/motion-interchange-objc/commit/5e9837cb453f354609f574e42c3c7cf69d4e2796) (featherless) |
| * [Add system timing constant for movement during modal presentation. (#4)](https://github.com/material-motion/motion-interchange-objc/commit/bf757fe5dac65f9e76778d57988689b908a6c69b) (featherless) |
| |
| ## API changes |
| |
| *new* function: `MDMMotionCurveFromTimingFunction`. |
| |
| *new* macro: `MDMModalMovementTiming`. |
| |
| ## Non-source changes |
| |
| * [Update Xcode project settings.](https://github.com/material-motion/motion-interchange-objc/commit/d932efd547276084a09334f38595a3f8da28205d) (Jeff Verkoeyen) |
| * [Update Podfile.lock.](https://github.com/material-motion/motion-interchange-objc/commit/07f701eb6918752c29f381a028080c5c12511474) (Jeff Verkoeyen) |
| |
| # 1.0.1 |
| |
| Added a missing framework header for Objective-C support. |
| |
| ## Source changes |
| |
| * [Add missing framework header.](https://github.com/material-motion/motion-interchange-objc/commit/03a9b2592e805f06eb622238d7ce8ad7e6f56e90) (Jeff Verkoeyen) |
| |
| ## Non-source changes |
| |
| * [Fix links in readme.](https://github.com/material-motion/motion-interchange-objc/commit/a438194edb51214fca13955fc2badcd93f587ec5) (Jeff Verkoeyen) |
| |
| # 1.0.0 |
| |
| Initial release. |
| |
| Includes MotionTiming structure for representing cubic bezier and spring animations. |
| |
| ## Source changes |
| |
| * [Initial commit of motion interchange format. (#1)](https://github.com/material-motion/motion-interchange-objc/commit/e1d882b11f1ecdd3edf5c8746c8d243939ea097a) (featherless) |