Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Ease

Ease

MITSwift3.2.0

An event-driven animation system for Swift that combines the observer pattern with custom spring animations.

GitHubGitHub
1.3k stars41 forks0 contributors

What is Ease?

Ease is a Swift library that provides an event-driven animation system, combining the observer pattern with custom spring animations to animate any value type. It solves the problem of creating smooth, natural animations in iOS and macOS apps by allowing dynamic updates to animation trajectories as target values change.

Target Audience

iOS and macOS developers building applications with complex UI animations, especially those using UIKit or SceneKit who need fluid, spring-based motion.

Value Proposition

Developers choose Ease for its simplicity in creating dynamic spring animations, its support for multiple animations per value, and its ability to update trajectories on the fly, offering a more declarative and magical approach compared to traditional animation APIs.

Overview

It's magic.

Use Cases

Best For

  • Creating smooth spring animations for UI elements in iOS apps
  • Animating SceneKit 3D objects with natural physics
  • Building gesture-driven interfaces with real-time animation updates
  • Adding dynamic motion to custom value types in Swift
  • Implementing complex animation sequences with multiple springs
  • Optimizing animations for Swift 5 and modern iOS versions

Not Ideal For

  • Projects exclusively using SwiftUI and preferring its native animation modifiers
  • Applications with simple animation needs where UIView.animate or Core Animation suffices
  • Teams needing cross-platform animation solutions beyond iOS and macOS
  • Developers looking for built-in animation presets or drag-and-drop tools without coding

Pros & Cons

Pros

Versatile Value Support

Animates a wide range of types including CGPoint, Int, and custom types, as shown in the README's supported list, making it flexible for various UI and SceneKit scenarios.

Dynamic Trajectory Updates

Allows real-time adjustment of target values mid-animation, enabling responsive interactions like gesture tracking, as demonstrated in the example code where targetValue is updated frequently.

Physics-based Springs

Provides configurable tension, damping, and mass parameters to create natural spring effects, giving animations a realistic, fluid feel compared to basic easing curves.

Multiple Animation Layers

Supports adding several spring animations to a single value, useful for complex effects such as combined motions or overlaying visual feedback, per the README's feature list.

Cons

Manual Memory Management

Requires handling EaseDisposable and weak references to avoid retain cycles, adding boilerplate code and complexity compared to simpler, auto-managed animation APIs.

Limited SwiftUI Integration

Primarily designed for UIKit and SceneKit with no mention of SwiftUI support, which may hinder adoption in modern projects favoring declarative UI frameworks.

Dependency on CocoaPods

Installation is only via CocoaPods, as stated in the README, which could be a barrier for projects using Swift Package Manager or Carthage exclusively.

Frequently Asked Questions

Quick Stats

Stars1,265
Forks41
Contributors0
Open Issues1
Last commit5 years ago
CreatedSince 2017

Tags

#spring-animation#event-driven#ui-animation#system#easing#animation#observer#ios-animation#observer-pattern#animations#events#scenekit#swift#swift-library#event#uikit

Built With

S
Swift

Included in

iOS51.7kSwift26.0k
Auto-fetched 14 hours ago

Related Projects

LottieLottie

An iOS library to natively render After Effects vector animations

Stars26,732
Forks3,829
Last commit15 hours ago
SpringSpring

A library to simplify iOS animations in Swift.

Stars14,043
Forks1,806
Last commit2 years ago
IBAnimatableIBAnimatable

Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable.

Stars8,652
Forks777
Last commit3 years ago
ViewAnimatorViewAnimator

ViewAnimator brings your UI to life with just one line

Stars7,328
Forks488
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub