{"id":18271123,"url":"https://github.com/yangmeyer/CPAnimationSequence","last_synced_at":"2025-04-05T01:31:02.660Z","repository":{"id":56904998,"uuid":"2108776","full_name":"yangmeyer/CPAnimationSequence","owner":"yangmeyer","description":"Describe multi-step UIView animation sequences declaratively.","archived":false,"fork":false,"pushed_at":"2015-03-11T11:42:41.000Z","size":258,"stargazers_count":451,"open_issues_count":2,"forks_count":45,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-03-14T19:18:01.985Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://blog.compeople.eu/apps/?p=43","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yangmeyer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-07-26T19:10:18.000Z","updated_at":"2023-12-25T22:33:37.000Z","dependencies_parsed_at":"2022-08-20T19:20:31.583Z","dependency_job_id":null,"html_url":"https://github.com/yangmeyer/CPAnimationSequence","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangmeyer%2FCPAnimationSequence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangmeyer%2FCPAnimationSequence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangmeyer%2FCPAnimationSequence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangmeyer%2FCPAnimationSequence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yangmeyer","download_url":"https://codeload.github.com/yangmeyer/CPAnimationSequence/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276043,"owners_count":20912286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T11:39:05.926Z","updated_at":"2025-04-05T01:31:02.161Z","avatar_url":"https://github.com/yangmeyer.png","language":"Objective-C","readme":"CPAnimationSequence\n===================\n\n**Describe multi-step animation sequences declaratively.**\n\nSomething like this:\n\n\tCPAnimationSequence* shakespeare = [CPAnimationSequence sequenceWithSteps:\n\t\t[CPAnimationStep           for:0.2 animate:^{ self.romeo.alpha = 1.0;\n\t                                                       self.julia.alpha = 1.0; }],\n\t\t[CPAnimationStep after:1.0 for:0.7 animate:^{\n\t\t\t\t\t\t\t\tCGPoint kiss = CGPointMake((self.romeo.center.x + self.julia.center.x)/2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t   (self.romeo.center.y + self.julia.center.y)/2);\n\t\t\t\t\t\t\t\tself.romeo.center = kiss;\n\t\t\t\t\t\t\t\tself.julia.center = kiss;\n\t\t}],\n\t\t[CPAnimationStep after:2.0 for:0.5 animate:[self dramaticDeathAnimationStep]],\n\t\t[CPAnimationStep           for:0.0 animate:^{ self.theEnd.hidden = NO; }],\n\t\tnil];\n\t[shakespeare runAnimated:YES];\n\nI described the rationale and possible improvements on the [compeople developer blog on Mobile Apps](http://blog.compeople.eu/apps/?p=43).\n\n### CPAnimationProgram\n\nWith the addition of CPAnimationProgram, you can now also **run steps** (and sequences, and programs) **in parallel**, or **overlap** steps (and sequences, and programs).\n\nThis is still somewhat experimental, so you might run into problems with particularly complex overlaps. It does seem to work well, though, so give it a try.\n\n### Composite pattern\n\nThe component implements the Composite design pattern, which means that you can **nest sequences and programs** as much as device memory and your sanity allow.\n\nRequirements\n-------\n* CPAnimationSequence uses [ARC](http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html). If your project doesn’t use ARC, set the `-fobjc-arc` compiler flag on the CPAnimationSequence source files.\n* Deployment target iOS 4.3+ (The demo targets iOS 5.0, but is easily adapted for iOS 4.3).\n\nParticipate\n-------\nFeel free to comment, fork, and submit pull requests!\n\nThanks for the contributions from:\n\n- Karsten Litsche\n- Matthew McCroskey\n- Stephan Diederich\n\nLicense\n-------\nCopyright (c) 2011–2012 compeople AG, 2013 Yang Meyer.\n\nThe CPAnimationSequence component is released under the [MIT License](https://github.com/yangmeyer/CPAnimationSequence/blob/master/LICENSE.md).","funding_links":[],"categories":["etc"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyangmeyer%2FCPAnimationSequence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyangmeyer%2FCPAnimationSequence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyangmeyer%2FCPAnimationSequence/lists"}