A library for creating easy-to-read and write chainable animations in Objective-C and Swift for iOS/tvOS.
JHChainableAnimations is an iOS/tvOS animation library that provides a chainable API for creating complex, multi-step animations with a clean, readable syntax. It solves the problem of verbose and nested animation code in Objective-C and Swift by allowing developers to combine movements, transforms, and effects into a single fluent chain.
iOS and tvOS developers who need to create sophisticated, sequenced animations in their apps and want a more maintainable alternative to Core Animation or UIView animation blocks.
Developers choose JHChainableAnimations for its intuitive chainable syntax that drastically reduces code complexity, its support for advanced features like easing effects and bezier paths, and its seamless compatibility with both Objective-C and Swift projects.
Easy to read and write chainable animations in Objective-C and Swift
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Transforms verbose, nested animation blocks into a single, readable line of code, as shown in the README comparison reducing multiple UIView animations to one chain.
Provides native frameworks for both Objective-C and Swift, with a separate Swift framework offering a more idiomatic syntax for smoother integration.
Includes pause/resume functionality, repeat animations with counts, and pre/post-animation hooks, allowing fine-grained timing and execution management.
Offers specific chainable properties like transformX and transformScale that are designed to work correctly with Auto Layout-constrained views, as noted in the usage section.
The README explicitly states that animation effects such as spring or easeIn do not work on bezier path movements, restricting stylistic options for path-based animations.
Developers must use separate transform properties and avoid mixing them with other chainable animations for Auto Layout views, which can lead to confusion and potential bugs.
Requires handling two distinct frameworks (JHChainableAnimations for Objective-C and ChainableAnimations for Swift), adding overhead to dependency setup and maintenance.