Sprung is an easy-to-consume Curve that uses real physics equations to drive your animations.
Easy to consume
AnimatedContainer( curve: Sprung(), /// ... ),
Sprung() also supports three damping curves,
AnimatedContainer( curve: Sprung( damped: Damped.under ), /// ... ),
Note: Sprung is critically damped by default.
Based on Physics
Using Newton's Second Law of Motion, Hooke's Law, and velocity based damping, we implement the following equation in three finite cases.
Sprung exceeds Flutter specifications for curves by guaranteeing an error less than
1e-6. This amounts to a
0.0019px jitter at the beginning or end of a
- Built-in types and core primitives for a Flutter application. [...]
- Support for asynchronous programming, with classes such as Future and Stream. [...]
- Classes and utilities that supplement the collection support in dart:core. [...]
- Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
- Built-in types, collections, and other core functionality for every Dart program. [...]
- Interact with developer tools such as the debugger and inspector. [...]
- Mathematical constants and functions, plus a random number generator. [...]
- Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]
- File, socket, HTTP, and other I/O support for non-web applications. [...]
- Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]