{"id":2300,"url":"https://github.com/matthewcheok/Fluent","last_synced_at":"2025-08-02T23:32:57.254Z","repository":{"id":56911484,"uuid":"41953374","full_name":"matthewcheok/Fluent","owner":"matthewcheok","description":"Swift animation made easy","archived":false,"fork":false,"pushed_at":"2017-03-13T09:24:37.000Z","size":182,"stargazers_count":296,"open_issues_count":1,"forks_count":12,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-24T08:42:31.396Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthewcheok.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-05T07:50:23.000Z","updated_at":"2024-07-31T05:10:19.000Z","dependencies_parsed_at":"2022-08-20T20:20:43.098Z","dependency_job_id":null,"html_url":"https://github.com/matthewcheok/Fluent","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewcheok%2FFluent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewcheok%2FFluent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewcheok%2FFluent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewcheok%2FFluent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthewcheok","download_url":"https://codeload.github.com/matthewcheok/Fluent/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228503176,"owners_count":17930527,"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-01-05T20:16:10.240Z","updated_at":"2024-12-06T17:30:59.195Z","avatar_url":"https://github.com/matthewcheok.png","language":"Swift","funding_links":[],"categories":["UI","Animation"],"sub_categories":["Animation","Other free courses"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/matthewcheok/Fluent/raw/master/logo@2x.png\" alt=\"Logo\" width=\"348\" height=\"145\"\u003e\n\u003c/p\u003e\n\nFluent ![License MIT](https://go-shields.herokuapp.com/license-MIT-blue.png)\n======\n\n[![Badge w/ Version](https://cocoapod-badges.herokuapp.com/v/Fluent/badge.png)](https://github.com/matthewcheok/Fluent)\n[![Badge w/ Platform](https://cocoapod-badges.herokuapp.com/p/Fluent/badge.svg)](https://github.com/matthewcheok/Fluent)\n\nSwift Animations made Easy\n\n## Installation\n\n- Add the following to your [`Podfile`](http://cocoapods.org/) and run `pod install`\n```\n    pod 'Fluent', '~\u003e 0.1'\n```\n- or add the following to your [`Cartfile`](https://github.com/Carthage/Carthage) and run `carthage update`\n```\n    github \"matthewcheok/Fluent\"\n```\n- or clone as a git submodule,\n\n- or just copy files in the ```Fluent``` folder into your project.\n\n## Using Fluent\n\nFluent makes writing animations declarative and chainable.\n\n```\nboxView\n.animate(0.5)\n.rotate(0.5)\n.scale(2)\n.backgroundColor(.blueColor())\n.waitThenAnimate(0.5)\n.scale(1)\n.backgroundColor(.redColor())\n```\n\nSimply call one of the animation methods, of which only `duration` is required:\n\n- animate(duration: NSTimeInterval, velocity: CGFloat , damping: CGFloat, options: UIViewAnimationOptions) \n- waitThenAnimate(duration: NSTimeInterval, velocity: CGFloat , damping: CGFloat, options: UIViewAnimationOptions) \n\nAll common properties on `UIView` are supported:\n\n- scale(factor: CGFloat)\n- translate(x: CGFloat, y: CGFloat)\n- rotate(cycles: CGFloat)\n- backgroundColor(color: UIColor) \n- alpha(alpha: CGFloat)\n- frame(frame: CGRect)\n- bounds(bounds: CGRect)\n- center(center: CGPoint)\n\nThere are also relative versions of the transforms:\n\n- scaleBy(factor: CGFloat)\n- translateBy(x: CGFloat, y: CGFloat)\n- rotateBy(cycles: CGFloat)\n\nYou may not mix absolute and relative transformations in the same animation.\n\n### Using transforms\n\nThe order of the transformations are important!\n\nTo reverse the following:\n\n```\nboxView\n.animate(1)\n.translateBy(50, 50)\n.rotateBy(0.5)\n.scaleBy(2)\n.backgroundColor(.blueColor())\n.alpha(0.7)\n```\n\nWe need to undo the transformations in reverse or get weird results:\n\n```\nboxView\n.animate(1)\n.scaleBy(0.5)\n.rotateBy(-0.5)\n.translateBy(-50, -50)\n.backgroundColor(.redColor())\n```\n## License\n\nFluent is under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewcheok%2FFluent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthewcheok%2FFluent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewcheok%2FFluent/lists"}