diff --git a/Anima.podspec b/Anima.podspec
index c57df15..e92b766 100644
--- a/Anima.podspec
+++ b/Anima.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "Anima"
- s.version = "0.9.2"
+ s.version = "0.9.3"
s.authors = { "satoshin21" => "satoshi.nagasaka21@gmail.com" }
s.homepage = "https://github.com/satoshin21/Anima"
s.summary = "Anima is swifty animation library."
@@ -11,12 +11,12 @@ Pod::Spec.new do |s|
s.requires_arc = true
s.source = { :git => "https://github.com/satoshin21/Anima.git", :tag => s.version.to_s }
s.source_files = "Sources/*{.swift,.h}"
- s.swift_version = "4.2"
+ s.swift_version = "5.1"
s.pod_target_xcconfig = {
- 'SWIFT_VERSION' => '4.2',
+ 'SWIFT_VERSION' => '5.1',
}
s.description = <<-DESC
- Anima is chainable Layer-Based Animation library for Swift4.
+ Anima is chainable Layer-Based Animation library for Swift5.
It support to make sequensial and groouped animation more easily.
DESC
end
diff --git a/Anima.xcodeproj/project.pbxproj b/Anima.xcodeproj/project.pbxproj
index f156c94..505548f 100644
--- a/Anima.xcodeproj/project.pbxproj
+++ b/Anima.xcodeproj/project.pbxproj
@@ -288,17 +288,17 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1000;
- LastUpgradeCheck = 1000;
+ LastUpgradeCheck = 1030;
ORGANIZATIONNAME = satoshin21;
TargetAttributes = {
63A950B81EAFAB6C007AFB34 = {
CreatedOnToolsVersion = 8.3.2;
- LastSwiftMigration = 0900;
+ LastSwiftMigration = 1030;
ProvisioningStyle = Manual;
};
63A950C71EAFAB92007AFB34 = {
CreatedOnToolsVersion = 8.3.2;
- LastSwiftMigration = 0900;
+ LastSwiftMigration = 1030;
ProvisioningStyle = Automatic;
};
63D9DAA2215A556D00299EE9 = {
@@ -312,6 +312,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
+ English,
en,
Base,
);
@@ -422,6 +423,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -474,7 +476,7 @@
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@@ -485,6 +487,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
@@ -529,7 +532,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
@@ -556,8 +559,7 @@
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
- SWIFT_SWIFT3_OBJC_INFERENCE = Off;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
};
name = Debug;
};
@@ -579,8 +581,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SKIP_INSTALL = YES;
- SWIFT_SWIFT3_OBJC_INFERENCE = Off;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
};
name = Release;
};
@@ -596,8 +597,7 @@
PRODUCT_BUNDLE_IDENTIFIER = jp.hatenadiary.satoshin21.anima.example;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_SWIFT3_OBJC_INFERENCE = Default;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
@@ -614,8 +614,7 @@
PRODUCT_BUNDLE_IDENTIFIER = jp.hatenadiary.satoshin21.anima.example;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_SWIFT3_OBJC_INFERENCE = Default;
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = 1;
};
name = Release;
@@ -638,7 +637,7 @@
PRODUCT_BUNDLE_IDENTIFIER = work.satoshin21.AnimaTests;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -660,7 +659,7 @@
PRODUCT_BUNDLE_IDENTIFIER = work.satoshin21.AnimaTests;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
- SWIFT_VERSION = 4.2;
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
diff --git a/Anima.xcodeproj/xcshareddata/xcschemes/Anima.xcscheme b/Anima.xcodeproj/xcshareddata/xcschemes/Anima.xcscheme
index 25d4743..047cbdc 100644
--- a/Anima.xcodeproj/xcshareddata/xcschemes/Anima.xcscheme
+++ b/Anima.xcodeproj/xcshareddata/xcschemes/Anima.xcscheme
@@ -1,6 +1,6 @@
= 2.0.2, < 4.0)
+ atomos (0.1.3)
+ babosa (1.0.2)
+ claide (1.0.2)
+ colored (1.2)
+ colored2 (3.1.2)
+ commander-fastlane (4.4.6)
+ highline (~> 1.7.2)
+ declarative (0.0.10)
+ declarative-option (0.1.0)
+ domain_name (0.5.20180417)
+ unf (>= 0.0.5, < 1.0.0)
+ dotenv (2.5.0)
+ emoji_regex (0.1.1)
+ excon (0.62.0)
+ faraday (0.15.3)
+ multipart-post (>= 1.2, < 3)
+ faraday-cookie_jar (0.0.6)
+ faraday (>= 0.7.4)
+ http-cookie (~> 1.0.0)
+ faraday_middleware (0.12.2)
+ faraday (>= 0.7.4, < 1.0)
+ fastimage (2.1.4)
+ fastlane (2.105.2)
+ CFPropertyList (>= 2.3, < 4.0.0)
+ addressable (>= 2.3, < 3.0.0)
+ babosa (>= 1.0.2, < 2.0.0)
+ bundler (>= 1.12.0, < 2.0.0)
+ colored
+ commander-fastlane (>= 4.4.6, < 5.0.0)
+ dotenv (>= 2.1.1, < 3.0.0)
+ emoji_regex (~> 0.1)
+ excon (>= 0.45.0, < 1.0.0)
+ faraday (~> 0.9)
+ faraday-cookie_jar (~> 0.0.6)
+ faraday_middleware (~> 0.9)
+ fastimage (>= 2.1.0, < 3.0.0)
+ gh_inspector (>= 1.1.2, < 2.0.0)
+ google-api-client (>= 0.21.2, < 0.24.0)
+ highline (>= 1.7.2, < 2.0.0)
+ json (< 3.0.0)
+ mini_magick (~> 4.5.1)
+ multi_json
+ multi_xml (~> 0.5)
+ multipart-post (~> 2.0.0)
+ plist (>= 3.1.0, < 4.0.0)
+ public_suffix (~> 2.0.0)
+ rubyzip (>= 1.2.2, < 2.0.0)
+ security (= 0.1.3)
+ simctl (~> 1.6.3)
+ slack-notifier (>= 2.0.0, < 3.0.0)
+ terminal-notifier (>= 1.6.2, < 2.0.0)
+ terminal-table (>= 1.4.5, < 2.0.0)
+ tty-screen (>= 0.6.3, < 1.0.0)
+ tty-spinner (>= 0.8.0, < 1.0.0)
+ word_wrap (~> 1.0.0)
+ xcodeproj (>= 1.6.0, < 2.0.0)
+ xcpretty (~> 0.3.0)
+ xcpretty-travis-formatter (>= 0.0.3)
+ gh_inspector (1.1.3)
+ google-api-client (0.23.9)
+ addressable (~> 2.5, >= 2.5.1)
+ googleauth (>= 0.5, < 0.7.0)
+ httpclient (>= 2.8.1, < 3.0)
+ mime-types (~> 3.0)
+ representable (~> 3.0)
+ retriable (>= 2.0, < 4.0)
+ signet (~> 0.9)
+ googleauth (0.6.6)
+ faraday (~> 0.12)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.12)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (~> 0.7)
+ highline (1.7.10)
+ http-cookie (1.0.3)
+ domain_name (~> 0.5)
+ httpclient (2.8.3)
+ json (2.1.0)
+ jwt (2.1.0)
+ memoist (0.16.0)
+ mime-types (3.2.2)
+ mime-types-data (~> 3.2015)
+ mime-types-data (3.2018.0812)
+ mini_magick (4.5.1)
+ multi_json (1.13.1)
+ multi_xml (0.6.0)
+ multipart-post (2.0.0)
+ nanaimo (0.2.6)
+ naturally (2.2.0)
+ os (1.0.0)
+ plist (3.4.0)
+ public_suffix (2.0.5)
+ representable (3.0.4)
+ declarative (< 0.1.0)
+ declarative-option (< 0.2.0)
+ uber (< 0.2.0)
+ retriable (3.1.2)
+ rouge (2.0.7)
+ rubyzip (1.2.2)
+ security (0.1.3)
+ signet (0.10.0)
+ addressable (~> 2.3)
+ faraday (~> 0.9)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ simctl (1.6.5)
+ CFPropertyList
+ naturally
+ slack-notifier (2.3.2)
+ terminal-notifier (1.8.0)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ tty-cursor (0.6.0)
+ tty-screen (0.6.5)
+ tty-spinner (0.8.0)
+ tty-cursor (>= 0.5.0)
+ uber (0.1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.7.5)
+ unicode-display_width (1.4.0)
+ word_wrap (1.0.0)
+ xcodeproj (1.6.0)
+ CFPropertyList (>= 2.3.3, < 4.0)
+ atomos (~> 0.1.3)
+ claide (>= 1.0.2, < 2.0)
+ colored2 (~> 3.1)
+ nanaimo (~> 0.2.6)
+ xcpretty (0.3.0)
+ rouge (~> 2.0.7)
+ xcpretty-travis-formatter (1.0.0)
+ xcpretty (~> 0.2, >= 0.0.7)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ fastlane
+
+BUNDLED WITH
+ 1.16.1
diff --git a/LICENSE b/LICENSE
index 547d8d3..80a8102 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2015 Jeff Hurray
+Copyright (c) 2019 Satoshi Nagasaka
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 93b675c..28faf71 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,8 @@
# Anima
-Anima is chainable Layer-Based Animation library for Swift4.
+
+Anima is chainable Layer-Based Animation library for Swift5.
It support to make sequensial and grouped animation more easily.
@@ -45,22 +46,19 @@ func labelAnimaOption(index: Int) -> [AnimaOption] {
```
## Requirements
-Anima require for Swift4 and greater than iOS9.0📱
-### Anima version / Swift version
-Anima support Swift 4.
-
-Latest version is developed with Swift 4,
-So if you want to use Anima with Swift 3, please specify Anima version to `0.5.1`.
+Anima require for Swift4 and greater than iOS9.0📱
## Features
-* Almost all timing modes from [easings.set](http://easings.net/) are implemented.
-* Spring Animation ( featured by [CASpringAnimation](https://developer.apple.com/reference/quartzcore/caspringanimation) )
-* Type-Safed Animation KeyPath ()
+
+- Almost all timing modes from [easings.set](http://easings.net/) are implemented.
+- Spring Animation ( featured by [CASpringAnimation](https://developer.apple.com/reference/quartzcore/caspringanimation) )
+- Type-Safed Animation KeyPath ()
## Usage
### Move Position
+
If you want to translate `CALayer.position` relatively, use `.moveByX(CGFloat)`, `.moveByY(CGFloat)`, `.moveByXY(x: CGFloat, y: CGFloat)` AnimaTypes.
@@ -74,9 +72,11 @@ or destination is determined, use `.moveTo(x: CGFloat, y: CGFloat)`.
※ Anima doesn't update `CALayer.position` value for animations. Because when update Layer-backed view's layer position value, It will be resetted to default value frequently.
### Sequential Animation
+
Anima supports.
### Group Animation
+
To run animation concurrently, you use `CAAnimationGroup` with CoreAnimation.
In Anima, you can use `Anima.then(group: )` to run some `AnimaType` concurrently.
@@ -93,17 +93,16 @@ layer.anima
```
### Animation Options
+
There are some options for Anima.
-* duration(TimeInterval)
-* timingFunction(TimingFunction)
- * Change timing function defining the pacing of the animation.
- * Default timing function is at `Anima.defaultTimingFunction`. If you do not set the timing function option, defaultTimingFunction is used.
- * Please read `Anima.TimingFunction.swift`
-* repeat(count: Float)
- * To run animation infinitely, set `.infinity`.
-* autoreverse
-* completion(() -> Void)
+- duration(TimeInterval)
+- timingFunction(TimingFunction)
+ _ Change timing function defining the pacing of the animation.
+ _ Default timing function is at `Anima.defaultTimingFunction`. If you do not set the timing function option, defaultTimingFunction is used. \* Please read `Anima.TimingFunction.swift`
+- repeat(count: Float) \* To run animation infinitely, set `.infinity`.
+- autoreverse
+- completion(() -> Void)
you can use these values as belows.
@@ -151,6 +150,7 @@ layer.anima
```
### Move Path
+
If you want to make moving animation more complex, use `.movePath(path: CGPath, keyTymes: [Double])`.
Anima example app has sample of creating animation by drag gesture. you see it!
@@ -158,6 +158,7 @@ but It has any problems when you use with `AnimaOption.autoreverse`.
so If you use it, please be careful of options.
### Original KeyPath
+
If you want to animate other animatable values, You can use `AnimaType.original(keyPath: String, from: Any?, to: Any)` for it.
`CAEmitterLayer`'s animation is like this.
@@ -167,7 +168,7 @@ layer.emitterPosition = CGPoint(x: 100.0, y:100.0)
layer.anima
.then(.original(keyPath: #keyPath(CAEmitterLayer.emitterPosition), from: layer.emitterPosition, to: CGPoint(x: 200.0, y:200.0)))
- .fire()
+ .fire()
```
## Example
@@ -177,6 +178,7 @@ To run the example project, clone the repo, open `Anima.xcodeproj`, and run targ
## Installation
### Cocoapods
+
Anima is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:
@@ -189,6 +191,7 @@ pod "Anima", "0.5.1"
```
### Carthage
+
Add github `satoshin21/Anima` to your `Cartfile`.
Execute carthage update to install it.
diff --git a/fastlane/Appfile b/fastlane/Appfile
new file mode 100644
index 0000000..1803063
--- /dev/null
+++ b/fastlane/Appfile
@@ -0,0 +1,6 @@
+# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
+# apple_id("[[APPLE_ID]]") # Your Apple email address
+
+
+# For more information about the Appfile, see:
+# https://docs.fastlane.tools/advanced/#appfile
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
new file mode 100644
index 0000000..0f39ea6
--- /dev/null
+++ b/fastlane/Fastfile
@@ -0,0 +1,23 @@
+# This file contains the fastlane.tools configuration
+# You can find the documentation at https://docs.fastlane.tools
+#
+# For a list of all available actions, check out
+#
+# https://docs.fastlane.tools/actions
+#
+# For a list of all available plugins, check out
+#
+# https://docs.fastlane.tools/plugins/available-plugins
+#
+
+# Uncomment the line if you want fastlane to automatically update itself
+# update_fastlane
+
+default_platform(:ios)
+
+platform :ios do
+ desc "Description of what the lane does"
+ lane :custom_lane do
+ # add actions here: https://docs.fastlane.tools/actions
+ end
+end