A lightweight Swift library for choreographing multi-view animations on iOS screens.
Spruce is a Swift library for choreographing animations across multiple views on iOS screens. It solves the problem of coordinating complex multi-view animations requested by designers, providing tools to sequence and time animations elegantly without cumbersome manual delay management.
iOS developers building apps with polished screen transitions, onboarding flows, or any UI requiring coordinated animations across multiple elements.
Developers choose Spruce for its lightweight API, built-in sort functions for controlling animation sequences, and extensibility through custom animations—making it easier to implement designer-driven motion without low-level UIKit complexity.
Swift library for choreographing animations on the screen.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes pre-built animations like fadeIn, slide, and expand, reducing boilerplate for common UI effects as demonstrated in the basic usage examples.
Offers eight built-in algorithms such as Linear and Radial to control animation sequences, enabling varied motion patterns without custom delay logic.
Allows creation of custom animations and sort functions via the Animation and SortFunction protocols, supporting tailored solutions for complex designs.
Provides UIView extensions like spruce.prepare() and spruce.animate() that simplify setup and execution, as shown in the getting started guide.
Lacks Objective-C support, which hinders adoption in mixed-language projects or legacy codebases, as noted in the README's pending wrappers.
Sorting algorithms and delay management for many subviews could degrade performance in animations with hundreds of elements, though not explicitly addressed.
Tied to UIKit without native SwiftUI support, making it less suitable for modern iOS projects adopting declarative UI frameworks.