Skip to content

manuelCarlos/Easing

Folders and files

NameName
Last commit message
Last commit date
Mar 15, 2024
Mar 15, 2024
Mar 15, 2024
Feb 27, 2023
Mar 15, 2024
Feb 6, 2019
Feb 27, 2023
Mar 15, 2024
Apr 20, 2022

Repository files navigation

License: MIT

Easing

A library that implements easing functions in Swift.

Supported platforms:

  • iOS, macOS, tvOS, watchOS and Linux (latest Ubuntu).

Type of supported functions:

  • Quadratic
  • Cubic
  • Quartic
  • Quintic
  • Sine
  • Circular
  • Exponential
  • Elastic
  • Back
  • Bounce

Each type has its own separate ease-In, ease-Out and ease-In-Out form.

The functions are design to accept a generic floating-point input parameter, and return a floating-point, denoting the rate of change of a property over time.

Supported argument types:

  • Any type that conforms to the Real protocol, e.g.
    • Float
    • Float80
    • Double

Usage:

The Curve type allows access to all the different functions, for example:

let x: Float = 0.3
let y = Curve.quadratic.easeIn(x) // y = 0.09
let x: Double = 0.5
let y = Curve.sine.easeOut(x2) // y = 0.7071067811865    

Here's an example of the use of the elastic ease-in-out function in an array of 75 points in the [0, 1] interval.

Installation:

Swift Package Manager (iOS, macOS, tvOS, watchOS and Linux)

Add Easing to your AwsomeProject, by adding the github URL to your Package.swift, e.g.:

// swift-tools-version:5.0

import PackageDescription

let package = Package(
   name: "AwsomeProject",
   dependencies: [
      .package(url: "https://github.com/manuelCarlos/Easing.git", .upToNextMajor(from: "2.0.0"))
   ],
   targets: [
      .target(
         name: "AwsomeProject",
         dependencies: ["Easing"])
   ]
)
  • To quickly run the tests:

    (on macOS)

    swift test

    (on Linux)

    swift test --enable-test-discovery

Dependencies: