Giter Club home page Giter Club logo

pop-swift's People

Contributors

jverkoey avatar maxluzuriaga avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

carabina

pop-swift's Issues

Paused spring can be resumed mid-gesture with SpringTo

runtime.addPlan(SpringTo(property, foo_destination));
// Spring now active.

runtime.addPlan(PausesSpring(property, gesture));
gesture.setState(BEGAN); 
// Spring now paused.

runtime.addPlan(SpringTo(property, bar_destination));
// Spring now active - oops too early!

gesture.setState(RECOGNIZED);
// Spring should now be active.

Animation completion should assert if no token was found

We currently silently ignore animations that complete without a corresponding token. This situation should not happen, so we should use a stronger assertion of the token's existence.

This will also improve our testing coverage.

Build configuration into spring plan

Right now, there's a springTo and configureSpring. The need to configure a spring mid-flight feels hypothetical.

Can we reduce it to one plan: springTo(destination, config?)?

Write the README.md

Should include the following:

  • Installation steps. (Steal the ones from here).
  • Getting started example.

Assume that this repo is the entry-point for an application developer who has never used Material Motion before.

Support changing toValue of animations

This feature request is resulting from explorations found in https://github.com/material-motion/material-motion-catalog-swift/issues/1.

The creator of a POPAnimation object is unable to change the toValue on the object after committing it to a scheduler. This is because we copy the animation objects and pop does not appear, and rightfully so, to maintain a connection between these two instances.

One approach that will appear within the broader context of Material Motion is to configure existing pop animation objects when a new one with the same name is added to a target. This may be how pop already works if we use the key argument.

If this is not how POP works then we may need to implement the mapping of state ourselves. Specifically, we'll need to extract the various properties that may be set on the animation when a new one with the same name is committed.

Note: This functionality may be somewhat easier to build once performers support named plans.

Is-active tokens should be acquired on pop_animationDidStart

pop_animationDidStart is invoked the moment a POP animation begins. This method can be called multiple times if the animation isn't removed on completion.

Should also implement a unit test for animations that aren't removed on completion.

Write a usage guide in the README.md

Should show how to add a pop animation to a scheduler. Should also show how to emit pop animation objects from other performers (composition).

Make property a string like Core Animation in order to unify how properties work

We currently expose a POPProperty type that clearly shows which properties we support for pop's SpringTo implementation. This API is inflexible and makes it difficult to commit SpringTo values to the target directly using traditional setValueForKeyPath APIs.

Goal of this task is to explore a string-based property API that is a traditional key path. We'll need to map these key paths to internal POPProperties.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.