{"action":"created","issue":{"url":"https://api.github.com/repos/IFTTT/JazzHands/issues/1198","labels_url":"https://api.github.com/repos/IFTTT/JazzHands/issues/1198/labels{/name}","comments_url":"https://api.github.com/repos/IFTTT/JazzHands/issues/1198/comments","events_url":"https://api.github.com/repos/IFTTT/JazzHands/issues/1198/events","html_url":"https://github.com/IFTTT/JazzHands/pull/1198","id":53903280,"number":1198,"title":"Tweening function","user":{"login":"felixjendrusch","id":27429,"avatar_url":"https://avatars.githubusercontent.com/u/27429?v=3","gravatar_id":"","url":"https://api.github.com/users/felixjendrusch","html_url":"https://github.com/felixjendrusch","followers_url":"https://api.github.com/users/felixjendrusch/followers","following_url":"https://api.github.com/users/felixjendrusch/following{/other_user}","gists_url":"https://api.github.com/users/felixjendrusch/gists{/gist_id}","starred_url":"https://api.github.com/users/felixjendrusch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felixjendrusch/subscriptions","organizations_url":"https://api.github.com/users/felixjendrusch/orgs","repos_url":"https://api.github.com/users/felixjendrusch/repos","events_url":"https://api.github.com/users/felixjendrusch/events{/privacy}","received_events_url":"https://api.github.com/users/felixjendrusch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-09T19:11:25Z","updated_at":"2015-01-12T20:14:32Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/IFTTT/JazzHands/pulls/1198","html_url":"https://github.com/IFTTT/JazzHands/pull/1198","diff_url":"https://github.com/IFTTT/JazzHands/pull/1198.diff","patch_url":"https://github.com/IFTTT/JazzHands/pull/1198.patch"},"body":"The initial idea was to provide quadratic and cubic bezier curve animations of the frame's origin. I'm not sure this is a good way, but it's at least a very flexible one. Basically, all frame tweening is proxied through a tweening function. For any two consecutive key frames `A` and `B`, `A`'s tweening function is called to generate the requested frame.\r\n\r\nBesides the default tweening function, which calls `-[IFTTTAnimation frameForTime:startKeyFrame:endKeyFrame:]`, functions for the mentioned quadratic and cubic bezier curve animations of the frame's origin are provided."},"comment":{"url":"https://api.github.com/repos/IFTTT/JazzHands/issues/comments/69637449","html_url":"https://github.com/IFTTT/JazzHands/pull/1198#issuecomment-69637449","issue_url":"https://api.github.com/repos/IFTTT/JazzHands/issues/1198","id":69637449,"user":{"login":"felixjendrusch","id":27429,"avatar_url":"https://avatars.githubusercontent.com/u/27429?v=3","gravatar_id":"","url":"https://api.github.com/users/felixjendrusch","html_url":"https://github.com/felixjendrusch","followers_url":"https://api.github.com/users/felixjendrusch/followers","following_url":"https://api.github.com/users/felixjendrusch/following{/other_user}","gists_url":"https://api.github.com/users/felixjendrusch/gists{/gist_id}","starred_url":"https://api.github.com/users/felixjendrusch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felixjendrusch/subscriptions","organizations_url":"https://api.github.com/users/felixjendrusch/orgs","repos_url":"https://api.github.com/users/felixjendrusch/repos","events_url":"https://api.github.com/users/felixjendrusch/events{/privacy}","received_events_url":"https://api.github.com/users/felixjendrusch/received_events","type":"User","site_admin":false},"created_at":"2015-01-12T20:14:32Z","updated_at":"2015-01-12T20:14:32Z","body":"btw, I also thought about adding another property to (key) frames holding, for example, a bezier curve's control points, but wasn't happy with the chance of that being too ambiguous. In another project (w/ SpriteKit) I ended up having a JazzHands-like solution with animation-type specific (key) frames, also reducing both memory usage and allocation time (there were a lot of frames)."}}