An elegant and flexible tweening library for iOS and tvOS, enabling smooth animations with support for grouping, sequencing, and custom easing.
PMTween is a tweening library for Objective-C that enables smooth animations and interpolations on iOS and tvOS. It solves the problem of creating complex, customizable animations by providing a modular system for tweening values, object properties, and supporting grouping, sequencing, and physics-based motion.
iOS and tvOS developers building applications with custom animations, especially those who prefer Objective-C or need fine-grained control over tweening behavior and easing.
Developers choose PMTween for its elegant API, deep extensibility, and support for both static and physics-based tweening, all while maintaining compatibility with iOS's additive animation system and offering a protocol-driven design for custom implementations.
An elegant and flexible tweening library for iOS and tvOS.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
All core classes adopt the PMTweening protocol, enabling unlimited nesting and combination of tweens, groups, and sequences as demonstrated in the README's complex animation examples.
PMTweenPhysicsUnit provides dynamic, decaying velocity tweening inspired by Pop, allowing for realistic motion effects that integrate seamlessly with other tween classes.
Default additive tweening in PMTweenUnit composites multiple animations on the same property, essential for fluid UI interactions as highlighted in the 1.2.0 release notes and GIF examples.
Includes all standard Robert Penner easing types and supports custom easing blocks, offering precise control over animation curves without extra dependencies.
Primarily designed for Objective-C; Swift developers are directed to a separate library (MotionMachine), reducing its relevance in modern Swift-centric iOS development.
Requires manual configuration via code for each tween, lacking visual editors or declarative syntax, which can slow down development for intricate animation sequences.
As a niche library, it has fewer resources, tutorials, and community support compared to mainstream options like UIKit animations or Facebook's POP, potentially hindering troubleshooting.