gitmyhub

pop

Objective-C++ ★ 20k updated 6y ago ▣ archived

An extensible iOS and OS X animation library, useful for physics-based interactions.

Physics-based animation library for iOS/macOS that adds spring bounces and decay effects beyond Apple's standard animations, making UI feel more natural and responsive.

Objective-C++CocoaPodsiOStvOSmacOSsetup: easycomplexity 2/5

Pop is an animation library for iOS, tvOS, and macOS built by Facebook (now archived) that goes beyond the standard built-in animations Apple provides. The problem it solves is that standard animations in Apple's frameworks use fixed timings and curves — an element moves from point A to point B in a set duration. Pop adds physics-based animations: spring animations that give elements a realistic bounce, and decay animations that gradually slow an object to a stop like something losing momentum. These make interfaces feel more natural and responsive, mimicking how physical objects actually behave.

Pop offers four animation types. Spring animations let you bounce an element to a new position or size — useful for UI elements that should feel alive when they appear or change. Decay animations slow a moving element to a halt, like a swiped card that decelerates and stops. Basic animations interpolate values over a fixed time period, similar to standard animations. Custom animations give full control, handling the timing loop automatically. Crucially, any property on any object can be animated — position, size, opacity, color, or even custom properties you define yourself with read/write blocks. You can also update a running animation's destination mid-flight, which allows seamless course corrections without starting over.

The library is written in Objective-C++ and can be used from both Objective-C and Swift code. It was used to power all animations in Facebook's Paper app. Installation is via CocoaPods. The project is now archived (no longer actively maintained).

Where it fits