Merge branch 'release-candidate' into stable
diff --git a/.travis.yml b/.travis.yml
index 0186e9f..ceb1481 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,14 +7,12 @@
   - LANGUAGE=en_US.UTF-8
 matrix:
   include:
-    - osx_image: xcode9.2
-      env: COVERAGE=code_coverage SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=11.2"
-    - osx_image: xcode9.2
-      env: SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=10.3.1"
-    - osx_image: xcode9.2
-      env: SDK="iphonesimulator11.2" DESTINATION="name=iPhone 6s,OS=9.3"
+    - osx_image: xcode12.2
+      env: COVERAGE=code_coverage SDK="iphonesimulator14.2" DESTINATION="name=iPhone 6s,OS=11.4"
+    - osx_image: xcode12.2
+      env: SDK="iphonesimulator14.2" DESTINATION="name=iPhone 6s,OS=10.3.1"
 before_install:
-  - gem install cocoapods --no-rdoc --no-ri --no-document --quiet
+  - gem install cocoapods --no-document --quiet
   - pod install --repo-update
 script:
   - set -o pipefail
diff --git a/BUILD b/BUILD
deleted file mode 100644
index 0d75e8b..0000000
--- a/BUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 2017-present The Material Motion Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-# Description:
-# Light-weight API for building UIViewController transitions.
-
-licenses(["notice"])  # Apache 2.0
-
-exports_files(["LICENSE"])
-
-load("@build_bazel_rules_apple//apple:ios.bzl", "ios_ui_test")
-load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library")
-load("@bazel_ios_warnings//:strict_warnings_objc_library.bzl", "strict_warnings_objc_library")
-
-strict_warnings_objc_library(
-    name = "MotionTransitioning",
-    srcs = glob([
-        "src/*.m",
-        "src/private/*.m",
-    ]),
-    hdrs = glob([
-        "src/*.h",
-        "src/private/*.h",
-    ]),
-    enable_modules = 1,
-    includes = ["src"],
-    visibility = ["//visibility:public"],
-)
-
-swift_library(
-    name = "UnitTestsSwiftLib",
-    srcs = glob([
-        "tests/unit/*.swift",
-        "tests/unit/Transitions/*.swift",
-    ]),
-    deps = [":MotionTransitioning"],
-    visibility = ["//visibility:private"],
-)
-
-objc_library(
-    name = "UnitTestsLib",
-    srcs = glob([
-        "tests/unit/*.m",
-    ]),
-    deps = [":MotionTransitioning"],
-    visibility = ["//visibility:private"],
-)
-
-ios_ui_test(
-    name = "UnitTests",
-    deps = [
-      ":UnitTestsLib",
-      ":UnitTestsSwiftLib"
-    ],
-    test_host = "@build_bazel_rules_apple//apple/testing/default_host/ios",
-    minimum_os_version = "9.0",
-    timeout = "short",
-    visibility = ["//visibility:private"],
-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 48e5995..17691f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 8.0.0
+
+This major release drops official support for iOS 9 and bazel.
+
 # 7.0.1
 
 This patch release fixes a bug on iOS 13 where the presented view controller would not be added to
diff --git a/MotionTransitioning.podspec b/MotionTransitioning.podspec
index 50e0db5..a27d374 100644
--- a/MotionTransitioning.podspec
+++ b/MotionTransitioning.podspec
@@ -1,12 +1,12 @@
 Pod::Spec.new do |s|
   s.name         = "MotionTransitioning"
   s.summary      = "Light-weight API for building UIViewController transitions."
-  s.version      = "7.0.1"
+  s.version      = "8.0.0"
   s.authors      = "The Material Motion Authors"
   s.license      = "Apache 2.0"
   s.homepage     = "https://github.com/material-motion/transitioning-objc"
   s.source       = { :git => "https://github.com/material-motion/transitioning-objc.git", :tag => "v" + s.version.to_s }
-  s.platform     = :ios, "9.0"
+  s.platform     = :ios, "10.0"
   s.requires_arc = true
 
   s.public_header_files = "src/*.h"
diff --git a/Podfile b/Podfile
index 71bf2ff..568c357 100644
--- a/Podfile
+++ b/Podfile
@@ -1,6 +1,6 @@
 workspace 'MotionTransitioning.xcworkspace'
 use_frameworks!
-platform :ios, '9.0'
+platform :ios, '10.0'
 
 target "TransitionsCatalog" do
   pod 'CatalogByConvention'
@@ -18,7 +18,7 @@
 post_install do |installer|
   installer.pods_project.targets.each do |target|
     target.build_configurations.each do |configuration|
-      configuration.build_settings['SWIFT_VERSION'] = "3.0"
+      configuration.build_settings['SWIFT_VERSION'] = "5.0"
       if target.name.start_with?("MotionTransitioning")
         configuration.build_settings['WARNING_CFLAGS'] ="$(inherited) -Wall -Wcast-align -Wconversion -Werror -Wextra -Wimplicit-atomic-properties -Wmissing-prototypes -Wno-sign-conversion -Wno-unused-parameter -Woverlength-strings -Wshadow -Wstrict-selector-match -Wundeclared-selector -Wunreachable-code"
       end
diff --git a/Podfile.lock b/Podfile.lock
index 98141be..34b7f90 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -1,13 +1,13 @@
 PODS:
-  - CatalogByConvention (2.1.1)
-  - MotionTransitioning (7.0.0)
+  - CatalogByConvention (2.5.2)
+  - MotionTransitioning (8.0.0)
 
 DEPENDENCIES:
   - CatalogByConvention
   - MotionTransitioning (from `./`)
 
 SPEC REPOS:
-  https://github.com/cocoapods/specs.git:
+  trunk:
     - CatalogByConvention
 
 EXTERNAL SOURCES:
@@ -15,9 +15,9 @@
     :path: "./"
 
 SPEC CHECKSUMS:
-  CatalogByConvention: c3a5319de04250a7cd4649127fcfca5fe3322a43
-  MotionTransitioning: afdc2fb08fc6e8744dab4f160b3764c9bde59338
+  CatalogByConvention: ef713654160053be026fa4648dd28caf6b5ca4e1
+  MotionTransitioning: c54913ff269a0d93291bb113612c2da325f45f74
 
-PODFILE CHECKSUM: c1fb58e87919bf8979e1ee2b4db99797e975d789
+PODFILE CHECKSUM: d209f6834e4d16c2a6eca09a6ddcde7e50331cda
 
-COCOAPODS: 1.6.0
+COCOAPODS: 1.10.1
diff --git a/WORKSPACE b/WORKSPACE
deleted file mode 100644
index 7b1a5be..0000000
--- a/WORKSPACE
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 2017-present The Material Motion Authors. All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
-
-git_repository(
-    name = "build_bazel_rules_apple",
-    remote = "https://github.com/bazelbuild/rules_apple.git",
-    tag = "0.9.0",
-)
-
-load(
-    "@build_bazel_rules_apple//apple:repositories.bzl",
-    "apple_rules_dependencies",
-)
-
-apple_rules_dependencies()
-
-git_repository(
-    name = "build_bazel_rules_swift",
-    remote = "https://github.com/bazelbuild/rules_swift.git",
-    tag = "0.4.0",
-)
-
-load(
-    "@build_bazel_rules_swift//swift:repositories.bzl",
-    "swift_rules_dependencies",
-)
-
-swift_rules_dependencies()
-
-git_repository(
-    name = "bazel_ios_warnings",
-    remote = "https://github.com/material-foundation/bazel_ios_warnings.git",
-    tag = "v2.0.0",
-)
-
-http_file(
-    name = "xctestrunner",
-    executable = 1,
-    urls = ["https://github.com/google/xctestrunner/releases/download/0.2.5/ios_test_runner.par"],
-)
diff --git a/examples/ContextualExample.swift b/examples/ContextualExample.swift
index 6f78520..9f5342b 100644
--- a/examples/ContextualExample.swift
+++ b/examples/ContextualExample.swift
@@ -110,7 +110,7 @@
                                                    isAppearing: context.direction == .backward)
 
     let expand = CABasicAnimation(keyPath: "transform.scale.xy")
-    expand.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
+    expand.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
     expand.fromValue = 1
     expand.toValue = 2
     addAnimationToLayer(expand, snapshotContextView.layer)
diff --git a/examples/CustomPresentationExample.swift b/examples/CustomPresentationExample.swift
index ee70705..662251a 100644
--- a/examples/CustomPresentationExample.swift
+++ b/examples/CustomPresentationExample.swift
@@ -22,7 +22,7 @@
 
 class CustomPresentationExampleViewController: ExampleTableViewController {
 
-  override init(style: UITableViewStyle) {
+  override init(style: UITableView.Style) {
     super.init(style: style)
 
     transitions = []
diff --git a/examples/PhotoAlbumExample.swift b/examples/PhotoAlbumExample.swift
index e3a0b90..06247a9 100644
--- a/examples/PhotoAlbumExample.swift
+++ b/examples/PhotoAlbumExample.swift
@@ -75,6 +75,7 @@
     viewController.currentPhoto = album.photos[indexPath.row]
     viewController.mdm_transitionController.transition = PhotoAlbumTransition(backDelegate: self,
                                                                           foreDelegate: viewController)
+    viewController.modalPresentationStyle = .custom
     present(viewController, animated: true)
   }
 
@@ -161,7 +162,7 @@
 
     navigationController?.setNavigationBarHidden(true, animated: animated)
 
-    let photoIndex = album.photos.index { $0.image == currentPhoto.image }!
+    let photoIndex = album.photos.firstIndex { $0.image == currentPhoto.image }!
     let indexPath = IndexPath(item: photoIndex, section: 0)
     collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: false)
   }
diff --git a/examples/apps/Catalog/Catalog/AppDelegate.swift b/examples/apps/Catalog/Catalog/AppDelegate.swift
index 670feb0..74beaf2 100644
--- a/examples/apps/Catalog/Catalog/AppDelegate.swift
+++ b/examples/apps/Catalog/Catalog/AppDelegate.swift
@@ -22,7 +22,7 @@
 
   var window: UIWindow?
 
-  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
+  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
     let window = UIWindow(frame: UIScreen.main.bounds)
     self.window = window
 
diff --git a/examples/apps/Catalog/TestHarness/AppDelegate.swift b/examples/apps/Catalog/TestHarness/AppDelegate.swift
index 95b687c..60ab344 100644
--- a/examples/apps/Catalog/TestHarness/AppDelegate.swift
+++ b/examples/apps/Catalog/TestHarness/AppDelegate.swift
@@ -21,7 +21,7 @@
 
   var window: UIWindow?
 
-  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
+  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
     let window = UIWindow(frame: UIScreen.main.bounds)
     self.window = window
     window.rootViewController = UINavigationController(rootViewController: UIViewController())
diff --git a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/project.pbxproj b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/project.pbxproj
index 1fa1ff4..22e2178 100644
--- a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/project.pbxproj
+++ b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/project.pbxproj
@@ -424,7 +424,7 @@
 			isa = PBXProject;
 			attributes = {
 				LastSwiftUpdateCheck = 0810;
-				LastUpgradeCheck = 0900;
+				LastUpgradeCheck = 1240;
 				ORGANIZATIONNAME = Google;
 				TargetAttributes = {
 					666FAA7F1D384A6B000363DA = {
@@ -664,6 +664,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
@@ -673,14 +674,17 @@
 				CLANG_WARN_BOOL_CONVERSION = YES;
 				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -705,12 +709,12 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 10;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				SDKROOT = iphoneos;
 				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
-				SWIFT_VERSION = 4.0;
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 			};
 			name = Debug;
@@ -719,6 +723,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 				CLANG_ANALYZER_NONNULL = YES;
 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
 				CLANG_CXX_LIBRARY = "libc++";
@@ -728,14 +733,17 @@
 				CLANG_WARN_BOOL_CONVERSION = YES;
 				CLANG_WARN_COMMA = YES;
 				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 				CLANG_WARN_EMPTY_BODY = YES;
 				CLANG_WARN_ENUM_CONVERSION = YES;
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 				CLANG_WARN_STRICT_PROTOTYPES = YES;
 				CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -754,10 +762,10 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 10;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				SDKROOT = iphoneos;
-				SWIFT_VERSION = 4.0;
+				SWIFT_VERSION = 5.0;
 				TARGETED_DEVICE_FAMILY = "1,2";
 				VALIDATE_PRODUCT = YES;
 			};
diff --git a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/TransitionsCatalog.xcscheme b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/TransitionsCatalog.xcscheme
index 14100e1..a37af84 100644
--- a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/TransitionsCatalog.xcscheme
+++ b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/TransitionsCatalog.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0900"
+   LastUpgradeVersion = "1240"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -26,8 +26,16 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       shouldUseLaunchSchemeArgsEnv = "YES">
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "666FAA7F1D384A6B000363DA"
+            BuildableName = "TransitionsCatalog.app"
+            BlueprintName = "TransitionsCatalog"
+            ReferencedContainer = "container:TransitionsCatalog.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
       <Testables>
          <TestableReference
             skipped = "NO">
@@ -40,23 +48,11 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <MacroExpansion>
-         <BuildableReference
-            BuildableIdentifier = "primary"
-            BlueprintIdentifier = "666FAA7F1D384A6B000363DA"
-            BuildableName = "TransitionsCatalog.app"
-            BlueprintName = "TransitionsCatalog"
-            ReferencedContainer = "container:TransitionsCatalog.xcodeproj">
-         </BuildableReference>
-      </MacroExpansion>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"
@@ -73,8 +69,6 @@
             ReferencedContainer = "container:TransitionsCatalog.xcodeproj">
          </BuildableReference>
       </BuildableProductRunnable>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"
diff --git a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme
index 49bfba8..d2defa8 100644
--- a/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme
+++ b/examples/apps/Catalog/TransitionsCatalog.xcodeproj/xcshareddata/xcschemes/UnitTests.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0900"
+   LastUpgradeVersion = "1240"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
@@ -10,7 +10,6 @@
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       shouldUseLaunchSchemeArgsEnv = "YES">
       <Testables>
          <TestableReference
@@ -24,22 +23,17 @@
             </BuildableReference>
          </TestableReference>
       </Testables>
-      <AdditionalOptions>
-      </AdditionalOptions>
    </TestAction>
    <LaunchAction
       buildConfiguration = "Debug"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
-      language = ""
       launchStyle = "0"
       useCustomWorkingDirectory = "NO"
       ignoresPersistentStateOnLaunch = "NO"
       debugDocumentVersioning = "YES"
       debugServiceExtension = "internal"
       allowLocationSimulation = "YES">
-      <AdditionalOptions>
-      </AdditionalOptions>
    </LaunchAction>
    <ProfileAction
       buildConfiguration = "Release"
diff --git a/examples/supplemental/ExampleViewController.swift b/examples/supplemental/ExampleViewController.swift
index 095a771..8ab9780 100644
--- a/examples/supplemental/ExampleViewController.swift
+++ b/examples/supplemental/ExampleViewController.swift
@@ -53,7 +53,7 @@
     self.init(style: .plain)
   }
 
-  override init(style: UITableViewStyle) {
+  override init(style: UITableView.Style) {
     super.init(style: style)
 
     self.title = exampleInformation().title
diff --git a/examples/transitions/CompositeTransition.swift b/examples/transitions/CompositeTransition.swift
index 615d053..90fecb5 100644
--- a/examples/transitions/CompositeTransition.swift
+++ b/examples/transitions/CompositeTransition.swift
@@ -37,7 +37,7 @@
   // MARK: TransitionWithCustomDuration
 
   func transitionDuration(with context: TransitionContext) -> TimeInterval {
-    let duration = transitions.flatMap { $0 as? TransitionWithCustomDuration }.map { $0.transitionDuration(with: context) }.max { $0 < $1 }
+    let duration = transitions.compactMap { $0 as? TransitionWithCustomDuration }.map { $0.transitionDuration(with: context) }.max { $0 < $1 }
     if let duration = duration {
       return duration
     }
diff --git a/examples/transitions/FadeTransition.swift b/examples/transitions/FadeTransition.swift
index d6002af..f2970c4 100644
--- a/examples/transitions/FadeTransition.swift
+++ b/examples/transitions/FadeTransition.swift
@@ -50,7 +50,7 @@
 
     let fade = CABasicAnimation(keyPath: "opacity")
 
-    fade.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
+    fade.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
 
     switch style {
     case .fadeIn: