{"id":13902293,"url":"https://github.com/taewooyo/shaker","last_synced_at":"2025-07-18T00:31:20.557Z","repository":{"id":207716431,"uuid":"719899248","full_name":"taewooyo/shaker","owner":"taewooyo","description":"👋 Modifier's optimally created rotation, translation, and zoom animations are fully customizable for Android. Only Jetpack Compose is supported. 🫨","archived":false,"fork":false,"pushed_at":"2024-05-21T11:21:47.000Z","size":263,"stargazers_count":11,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-21T12:51:15.917Z","etag":null,"topics":["android","android-library","android-ui","animation","compose","jetpack-compose","kotlin","modifier","shaker","taewooyo"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taewooyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-17T06:17:10.000Z","updated_at":"2024-05-30T00:22:47.774Z","dependencies_parsed_at":"2024-01-07T00:56:42.258Z","dependency_job_id":"796cf6e5-7b2f-4ab9-a9fc-af8a07dd0f52","html_url":"https://github.com/taewooyo/shaker","commit_stats":null,"previous_names":["taewooyo/shaker"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taewooyo%2Fshaker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taewooyo%2Fshaker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taewooyo%2Fshaker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taewooyo%2Fshaker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taewooyo","download_url":"https://codeload.github.com/taewooyo/shaker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":214260220,"owners_count":15707059,"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":["android","android-library","android-ui","animation","compose","jetpack-compose","kotlin","modifier","shaker","taewooyo"],"created_at":"2024-08-06T22:01:05.194Z","updated_at":"2024-08-06T22:03:07.586Z","avatar_url":"https://github.com/taewooyo.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eShaker\u003c/h1\u003e\u003c/br\u003e\n\n\u003cp align=\"center\"\u003e\n👋🫨 Modifier's optimally created rotation, translation, and zoom animations are fully customizable for Android. Only Jetpack Compose is supported. 🫨👋\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://github.com/taewooyo/shaker/assets/66770613/b41e7ab8-6a65-45d4-99a0-652a0940946a\" width=\"280\"/\u003e\n\u003c/p\u003e\n\n\n## Shaker in Jetpack Compose\n\nIf you want to use Shaker in your Jetpack Compose project, check out the **[Shaker in Jetpack Compose](https://github.com/taewooyo/Shaker#shaker-in-jetpack-compose-1)** guidelines.\n\n## How to Use\n\nShaker supports Kotlin projects, so you can reference it by your language.  \n\nAll you need to do is call the composable function rememberShaker, throw ShakerConfiguration data through the shaker function to determine which action to use, and pass it as an argument to the shaker in the Modifier.\n\n```kotlin\nval shakeState = rememberShakerState()\nBox(\n  modifier = Modifier\n    .shaker(shakeState)\n    .padding(15.dp)\n    .clip(RoundedCornerShape(30.dp))\n    .clickable {\n      shakeState.shaker(\n        ShakerConfiguration(\n          iterations = 1,\n          stiffness = 400f,\n          translateX = 50f,\n          translateY = -50f,\n        ),\n      )\n    },\n  contentAlignment = Alignment.Center,\n) {\n  Text(text = \"Example Button\", color = Color.White)\n}\n```\n\n## Shaker in Jetpack Compose\n\nShaker allows you to display scale, rotate, translate animation in Jetpack Compose easily.\n\n![Maven Central Badge](https://img.shields.io/maven-central/v/io.github.taewooyo/shaker)\n\nAdd the dependency below to your **module**'s `build.gradle` file\n\n```build.gradle\ndependencies {\n    implementation \"io.github.taewooyo:shaker:${version}\"\n}\n```\n\n### Shaker Configuration\n\nShaker Configuration allows you to set the number of repetitions, rotation angle, direction of rotation, direction of movement, enlargement, reduction, and intensity.  \n\n```kotlin\npublic data class ShakerConfiguration(\n  val iterations: Int = 0,\n  val stiffness: Float = 100_000f,\n  val rotate: Float = 0f,\n  val rotateX: Float = 0f,\n  val rotateY: Float = 0f,\n  val scaleX: Float = 0f,\n  val scaleY: Float = 0f,\n  val translateX: Float = 0f,\n  val translateY: Float = 0f,\n  val trigger: Long = System.currentTimeMillis(),\n)\n```\n\n\n# License\n\n```xml\nCopyright 2023 taewooyo\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaewooyo%2Fshaker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaewooyo%2Fshaker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaewooyo%2Fshaker/lists"}