Skip to content
This repository was archived by the owner on Aug 30, 2023. It is now read-only.

Commit d583d94

Browse files
author
Jeff Verkoeyen
committed
Merge branch 'release-candidate' into develop
2 parents 302d3c4 + f08a19b commit d583d94

File tree

4 files changed

+89
-7
lines changed

4 files changed

+89
-7
lines changed

CHANGELOG.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,71 @@
1+
# 4.0.0
2+
3+
This major release adds support for composable transitions. See the catalog app for a variety of
4+
examples making use of this new functionality.
5+
6+
## Fixed issues
7+
8+
- [Transitions would not complete if the presentation controller didn't implement the startWithContext method](https://github.com/material-motion/transitioning-objc/pull/45)
9+
10+
## Breaking changes
11+
12+
- `MDMTransitionWithFallback`'s return value is now nonnull. If you depended on the nil behavior,
13+
you must now conform to the new protocol `MDMTransitionWithFeasibility` and return `NO` for
14+
`canPerformTransitionWithContext:`.
15+
- `MDMTransitionDirection` has been renamed to `TransitionDirection` in Swift.
16+
17+
## New features
18+
19+
`MDMTransitionWithFeasibility` allows a transition to indicate whether it is capable of performing
20+
the transition with a given context.
21+
22+
The new `composeWithTransition:` API on `MDMTransitionContext` makes it possible to build modular
23+
transition objects that delegate responsibility out to other transition objects. View the
24+
`PhotoAlbumTransition` example transition to see the following code in action:
25+
26+
```swift
27+
context.compose(with: FadeTransition(target: .foreView, style: .fadeIn))
28+
context.compose(with: SpringFrameTransition(target: .target(snapshotContextView),
29+
size: fitSize))
30+
31+
if let toolbar = foreDelegate.toolbar(for: self) {
32+
context.compose(with: SlideUpTransition(target: .target(toolbar)))
33+
}
34+
```
35+
36+
## Source changes
37+
38+
* [Add nullability annotations to MDMTransitionNavigationControllerDelegate. (#46)](https://github.com/material-motion/motion-transitioning-objc/commit/302d3c4ec526ffa942d23937fdfe8ef5163d473d) (featherless)
39+
* [Update Xcode build settings to Xcode 9 warnings and resolve build error.](https://github.com/material-motion/transitioning-objc/commit/5ed85cdc795ae6660901c5e2ae237732f04649e1) (Jeff Verkoeyen)
40+
* [Rework multi-transition support using composition. (#43)](https://github.com/material-motion/transitioning-objc/commit/0b57361557476c7d3ecb8f4c9878da21a2e735ab) (featherless)
41+
* [Fix the Swift symbol name for MDMTransitionDirection. (#44)](https://github.com/material-motion/transitioning-objc/commit/4cdcf4ca0324a1f83d572440887fe5a5d18ee00b) (featherless)
42+
* [Fix bug where transitions would not complete if the presentation controller didn't implement the startWithContext method. (#45)](https://github.com/material-motion/transitioning-objc/commit/784328dae8509df0a2beb3a5afa9701f1e275950) (featherless)
43+
* [Fix broken unit tests.](https://github.com/material-motion/transitioning-objc/commit/46c92ebcab642969ba70ea43aa512cac1cc3cad4) (Jeff Verkoeyen)
44+
* [Add multi-transition support. (#40)](https://github.com/material-motion/transitioning-objc/commit/8653958a5a9419891861fb6fd7648791ca3c744c) (featherless)
45+
* [Remove unused protocol forward declaration.](https://github.com/material-motion/transitioning-objc/commit/74c1655fc3614e5e9788db8b53e8bff83691137a) (Jeff Verkoeyen)
46+
47+
## API changes
48+
49+
### MDMTransitionWithCustomDuration
50+
51+
*changed* protocol `MDMTransitionWithCustomDuration` now conforms to `MDMTransition`.
52+
53+
### MDMTransitionWithFallback
54+
55+
*changed* protocol `MDMTransitionWithFallback` now conforms to `MDMTransition`.
56+
57+
### MDMTransitionWithFeasibility
58+
59+
*new* protocol `MDMTransitionWithFeasibility`.
60+
61+
### MDMTransitionContext
62+
63+
*new* method `composeWithTransition:`
64+
65+
## Non-source changes
66+
67+
* [Add platform to the Podfile per pod install recommendation.](https://github.com/material-motion/transitioning-objc/commit/7384187b2ddd6a2760f5279cabb5032ea3b1e24e) (Jeff Verkoeyen)
68+
169
# 3.3.0
270

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

MotionTransitioning.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Pod::Spec.new do |s|
22
s.name = "MotionTransitioning"
33
s.summary = "Light-weight API for building UIViewController transitions."
4-
s.version = "3.3.0"
4+
s.version = "4.0.0"
55
s.authors = "The Material Motion Authors"
66
s.license = "Apache 2.0"
77
s.homepage = "https://github.com/material-motion/transitioning-objc"

Podfile.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
PODS:
22
- CatalogByConvention (2.1.1)
3-
- MotionTransitioning (3.3.0)
3+
- MotionTransitioning (4.0.0)
44

55
DEPENDENCIES:
66
- CatalogByConvention
77
- MotionTransitioning (from `./`)
88

99
EXTERNAL SOURCES:
1010
MotionTransitioning:
11-
:path: "./"
11+
:path: ./
1212

1313
SPEC CHECKSUMS:
1414
CatalogByConvention: c3a5319de04250a7cd4649127fcfca5fe3322a43
15-
MotionTransitioning: caaa488e0469d93f004793b96a2ed04447af808d
15+
MotionTransitioning: be4161ebcbff7911a1d9c4549e396f486041ca6f
1616

1717
PODFILE CHECKSUM: 25d5942fb7698339a03667bb46c3fbb77529b92d
1818

19-
COCOAPODS: 1.2.1
19+
COCOAPODS: 1.3.1

examples/apps/Catalog/TransitionsCatalog.xcodeproj/project.pbxproj

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -530,13 +530,16 @@
530530
files = (
531531
);
532532
inputPaths = (
533+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
534+
"${PODS_ROOT}/Manifest.lock",
533535
);
534536
name = "[CP] Check Pods Manifest.lock";
535537
outputPaths = (
538+
"$(DERIVED_FILE_DIR)/Pods-TransitionsCatalog-checkManifestLockResult.txt",
536539
);
537540
runOnlyForDeploymentPostprocessing = 0;
538541
shellPath = /bin/sh;
539-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
542+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
540543
showEnvVarsInLog = 0;
541544
};
542545
B07B7D3E33EA12345D5D53CC /* [CP] Embed Pods Frameworks */ = {
@@ -545,9 +548,12 @@
545548
files = (
546549
);
547550
inputPaths = (
551+
"${SRCROOT}/../../../Pods/Target Support Files/Pods-UnitTests/Pods-UnitTests-frameworks.sh",
552+
"${BUILT_PRODUCTS_DIR}/MotionTransitioning/MotionTransitioning.framework",
548553
);
549554
name = "[CP] Embed Pods Frameworks";
550555
outputPaths = (
556+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionTransitioning.framework",
551557
);
552558
runOnlyForDeploymentPostprocessing = 0;
553559
shellPath = /bin/sh;
@@ -560,13 +566,16 @@
560566
files = (
561567
);
562568
inputPaths = (
569+
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
570+
"${PODS_ROOT}/Manifest.lock",
563571
);
564572
name = "[CP] Check Pods Manifest.lock";
565573
outputPaths = (
574+
"$(DERIVED_FILE_DIR)/Pods-UnitTests-checkManifestLockResult.txt",
566575
);
567576
runOnlyForDeploymentPostprocessing = 0;
568577
shellPath = /bin/sh;
569-
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
578+
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
570579
showEnvVarsInLog = 0;
571580
};
572581
EBE92D1BA3D06BD67925A4E0 /* [CP] Embed Pods Frameworks */ = {
@@ -575,9 +584,14 @@
575584
files = (
576585
);
577586
inputPaths = (
587+
"${SRCROOT}/../../../Pods/Target Support Files/Pods-TransitionsCatalog/Pods-TransitionsCatalog-frameworks.sh",
588+
"${BUILT_PRODUCTS_DIR}/CatalogByConvention/CatalogByConvention.framework",
589+
"${BUILT_PRODUCTS_DIR}/MotionTransitioning/MotionTransitioning.framework",
578590
);
579591
name = "[CP] Embed Pods Frameworks";
580592
outputPaths = (
593+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CatalogByConvention.framework",
594+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionTransitioning.framework",
581595
);
582596
runOnlyForDeploymentPostprocessing = 0;
583597
shellPath = /bin/sh;

0 commit comments

Comments
 (0)