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