A library for fancy iOS animations that you will definitely love.

Overview

EazelAnimationsKit

Frame (1)

Table of Contents

  1. Introduction
  2. Animations
  3. Usage
  4. Installation
  5. Contribution
  6. Authors

Introduction

The drive for developing this animation SDK from iOS team at eazel's was taken from our company's slogan:

/ Bringing global art world to the comfort of your home /

However, if we paraphrase it a bit:

/ Bringing global animation world to the comfort of your repository /

If you're fancy UI lover, you may know that developing beautiful UI is easier said than done. From your busy schedule to endless new features to develop, limitations in time can make it difficult for you to indulge in UI animations as much as you'd like.

Eazel iOS team works to change that. We have created beatiful and easily scalable EazelAnimationsKit, providing you with fast and easy access to different kind of animations, bringing the animations world to the comfort of your own repository.

Animations

EazelAnimationsKit was developed with the idea for future easy scalability. Written in pure swift 5.6 with protocol oriented design and well known UIKit framework, EazelAnimationsKit's main goal is to give opportunity for developing animations with no hesitations for all different kinds of UIKit views!

So far, we have two different animations for UIButton aka EmergingButton or PreEmergingButton:

  1. .expandAnimation:

expand

  1. .fillUpAnimation

fillUp

Usage

If you want to use EazelAnimationsKit for your button with default animations, you can follow up these steps:

  1. You need to create your button programmatically, and make it a type of EmergingButton, and pass images for selected and unselected states as constructor parameters.
var expandableButton: EmergingButton = EmergingButton(unselectedImage: UIImage(named: "btn_bookmark"),
                                                      selectedImage: UIImage(named: "btn_bookmark_on"))
  1. Then, in your target function, you can choose the animation type with speed type by simple .animate command.
expandableButton.animate(with: .expandAnimation(isSelected: !expandableButton.isSelected, duration: .fast))
// for expand animation with fast duration
        
expandableButton.animate(with: .expandAnimation(isSelected: !expandableButton.isSelected, duration: .slow))
// for expand animation with slow duration
        
expandableButton.animate(with: .fillUpAnimation(isSelected: !expandableButton.isSelected, duration: .fast))
// for fill up animation with fast duration
        
expandableButton.animate(with: .fillUpAnimation(isSelected: !expandableButton.isSelected, duration: .slow)) 
// for fill up animation with slow duration

Since EmergingButton is a child of UIButton, it inherits all of the default instances and functions that regular UIButton includes, such as .addTarget.

If you want to use EazelAnimationsKit for your button with custom animations, you can follow up these steps:

  1. You need to create your button programmatically, and make it a type of PreEmergingButton, and pass images for selected and unselected states as constructor parameters.
var expandableButton: PreEmergingButton = PreEmergingButton(unselectedImage: UIImage(named: "btn_bookmark"),
                                                            selectedImage: UIImage(named: "btn_bookmark_on"))
  1. Then, in your target function, you can choose the animation type with custom speed type by simple .animate command.
expandableButton.animate(with: .expandAnimation(isSelected: !ovelappingButton.isSelected, duration: .init(startAnimating: 0.3, finishAnimating: 0.5)))
// startAnimating is the duration of first animation until it changes the state finishAnimating is the duration of last animation after button changed the state
        
expandableButton.animate(with: .fillUpAnimation(isSelected: !ovelappingButton.isSelected, duration: .init(startAnimating: 0.3, finishAnimating: 0.5)))
// startAnimating is the duration of first animation until it changes the state finishAnimating is the duration of last animation after button changed the state

Since PreEmergingButton is a child of UIButton, it inherits all of the default instances and functions that regular UIButton includes, such as .addTarget.

Installation

Since eazel is trying to use best practices, EazelAnimationsKit can be installed through Swift Package Manager easily and with comfort.

let package = Package(
  name: "MyPackage",
  dependencies: [
    .package(url: "https://github.com/eazel/EazelAnimationsKit.git", .upToNextMinor(from: "1.0.0"))
  ],
  targets: [
    .target(name: "MyTarget", dependencies: ["EazelAnimationsKit"])
  ]
)

Contribution

Any discussion and pull requests are more than welcome!

For the potential contributors, before starting the development, please open the issue with your ideas. Assign proper label(feature, bug, refactor), and create sub branch from 'develop' with following structure:

feature/#132/CreateAnimationForLabel // where feature is the label of issue, #132 is the issue number, and CreateAnimationForLabel is short title of the task.

After the work done, and all tests are passed, please open the PR to the develop branch, with explaining the task including as much details of your work as possible. Leaving the links to the resources will be much appricated!

The PR rule of EazelAnimationsKit is that it should be reviewed by at least one of the admins, and pass the CI testing before merging.

Please note that we will review the code style as well together with the efficiency of the code!

Everybody is welcome for the contributions!

Example of PR

Authors

License

EazelAnimationsKit is under MIT license. See the LICENSE for more info.

You might also like...
SamuraiTransition is an open source Swift based library providing a collection of ViewController transitions featuring a number of neat “cutting” animations.
SamuraiTransition is an open source Swift based library providing a collection of ViewController transitions featuring a number of neat “cutting” animations.

SamuraiTransiton is a ViewController transition framework in Swift. It is an animation as if Samurai cut out the screen with a sword. transition types

Physics-based animations for iOS, tvOS, and macOS.

Advance An animation library for iOS, tvOS, and macOS that uses physics-based animations (including springs) to power interactions that move and respo

Sample way of integrating animations into a design system for iOS app projects.

Animations in Design System The project presents a sample way of integrating animations into a design system for iOS developers. Project setup A sampl

Easily build advanced custom animations on iOS.
Easily build advanced custom animations on iOS.

INTUAnimationEngine makes it easy to build advanced custom animations on iOS. INTUAnimationEngine provides a friendly interface to drive custom animat

Wave is a spring-based animation engine for iOS that makes it easy to create fluid, interruptible animations that feel great.
Wave is a spring-based animation engine for iOS that makes it easy to create fluid, interruptible animations that feel great.

Wave is a spring-based animation engine for iOS and iPadOS. It makes it easy to create fluid, interactive, and interruptible animations that feel great.

Stagehand provides a modern, type-safe API for building animations on iOS

Stagehand Stagehand provides a modern, type-safe API for building animations on iOS. Stagehand is designed around a set of core ideas: Composition of

This repo contains swift collection of gui, games, menu, animations, music, payment, etc... for iOS, macOS, watchOS and tvOS
This repo contains swift collection of gui, games, menu, animations, music, payment, etc... for iOS, macOS, watchOS and tvOS

Swift-Collections About: This repo contains a collection of projects built using swift and objective-c Contains projects for macOS iOS iPad watchOS tv

iOS framework for impressive transition animations between views.

CoreTransition iOS framework for impressive transition animations between views. Built using Swift, and supports a lot of animations to navigate to a

Ease is an event driven animation system that combines the observer pattern with custom spring animations as observers
Ease is an event driven animation system that combines the observer pattern with custom spring animations as observers

Ease is an event driven animation system that combines the observer pattern with custom spring animations as observers. It's magic. Features Animate a

Releases(1.0.1)
  • 1.0.1(Aug 2, 2022)

    What's Changed

    • added contentMode to be changed by user. by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/9
    • fix spacings by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/11
    • Update to change contentMode by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/10

    Full Changelog: https://github.com/eazel/EazelAnimationsKit/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Jul 29, 2022)

    What's Changed

    • Added Animatable functions. by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/3
    • added CI on PR to main and dev by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/4
    • Documentation/#5/wonderful readme by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/6
    • Hello World! by @yermukhanbet in https://github.com/eazel/EazelAnimationsKit/pull/7

    New Contributors

    • @yermukhanbet made their first contribution in https://github.com/eazel/EazelAnimationsKit/pull/3

    Full Changelog: https://github.com/eazel/EazelAnimationsKit/commits/1.0.0

    Source code(tar.gz)
    Source code(zip)
A Swift library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level - layers, springs, chain-able animations and mixing view and layer animations together!

ver 2.0 NB! Breaking changes in 2.0 - due to a lot of requests EasyAnimation does NOT automatically install itself when imported. You need to enable i

Marin Todorov 3k Dec 27, 2022
(Animate CSS) animations for iOS. An easy to use library of iOS animations. As easy to use as an easy thing.

wobbly See Wobbly in action (examples) Add a drop of honey ?? to your project wobbly has a bunch of cool, fun, and easy to use iOS animations for you

Sagaya Abdulhafeez 150 Dec 23, 2021
(Animate CSS) animations for iOS. An easy to use library of iOS animations. As easy to use as an easy thing.

wobbly See Wobbly in action (examples) Add a drop of honey ?? to your project wobbly has a bunch of cool, fun, and easy to use iOS animations for you

Sagaya Abdulhafeez 150 Dec 23, 2021
ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation

ChainPageCollectionView A custom View with two level chained collection views and fancy transition animation. Demo Requirements iOS 9.0+ Xcode 8 Insta

Yansong Li 775 Dec 7, 2022
A collection of animations for iOS. Simple, just add water animations.

DCAnimationKit A collection of animations for iOS Simply, just add water! DCAnimationKit is a category on UIView to make animations easy to perform. E

Dalton 797 Sep 23, 2022
MotionBlur allows you to add motion blur effect to iOS animations.

MotionBlur MotionBlur allows you to add motion blur effect to your animations (currently only position's change). See the accompanying blog post to le

Arek Holko 1.5k Nov 3, 2022
An iOS library to natively render After Effects vector animations

Lottie for iOS, macOS (and Android and React Native) View documentation, FAQ, help, examples, and more at airbnb.io/lottie Lottie is a mobile library

Airbnb 23.6k Dec 31, 2022
A library to simplify iOS animations in Swift.

Updated for Swift 4.2 Requires Xcode 10 and Swift 4.2. Installation Drop in the Spring folder to your Xcode project (make sure to enable "Copy items i

Meng To 14k Jan 3, 2023
A library of custom iOS View Controller Animations and Interactions.

RZTransitions is a library to help make iOS7 custom View Controller transitions slick and simple. Installation CocoaPods (Recommended) Add the followi

Rightpoint 1.9k Nov 20, 2022
Swift library for choreographing animations on the screen.

Spruce iOS Animation Library (and Android) What is it? Spruce is a lightweight animation library that helps choreograph the animations on the screen.

WillowTree, LLC 3.4k Jan 3, 2023