{"id":19162356,"url":"https://github.com/agilie/interfaceinteraction","last_synced_at":"2026-02-24T09:04:05.986Z","repository":{"id":71905341,"uuid":"95529548","full_name":"agilie/InterfaceInteraction","owner":"agilie","description":"Interact your app's interface elements with different effects!","archived":false,"fork":false,"pushed_at":"2017-07-25T12:13:07.000Z","size":348,"stargazers_count":57,"open_issues_count":0,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-06-23T14:47:46.848Z","etag":null,"topics":["accelerometer","animation","gravity","interface","kotlin","kotlin-android","physics","shake"],"latest_commit_sha":null,"homepage":"https://agilie.com","language":"Kotlin","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/agilie.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-27T07:21:32.000Z","updated_at":"2025-01-21T06:13:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"b23efd03-4e03-462d-867d-c0a4c577514f","html_url":"https://github.com/agilie/InterfaceInteraction","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/agilie/InterfaceInteraction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FInterfaceInteraction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FInterfaceInteraction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FInterfaceInteraction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FInterfaceInteraction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agilie","download_url":"https://codeload.github.com/agilie/InterfaceInteraction/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilie%2FInterfaceInteraction/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777620,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["accelerometer","animation","gravity","interface","kotlin","kotlin-android","physics","shake"],"created_at":"2024-11-09T09:10:29.461Z","updated_at":"2026-02-24T09:04:05.941Z","avatar_url":"https://github.com/agilie.png","language":"Kotlin","readme":"\u003cp align=\"center\"\u003e\n\n\u003cimg src=\"https://user-images.githubusercontent.com/1777595/28571143-22a3a860-714a-11e7-92a4-28e89a3d0bb6.png\" alt=\"InterfaceInteraction\" title=\"InterfaceInteraction\" width=\"75%\"/\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Android_Kotlin\u0026utm_term=InterfaceInteraction\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Made%20by-Agilie-green.svg?style=flat\" alt=\"Made by Agilie\"\u003e\n\u003c/a\u003e\n\n\u003ca href='https://bintray.com/agilie/maven/InterfaceInteraction/_latestVersion'\u003e\n\u003cimg src='https://api.bintray.com/packages/agilie/maven/VolumeControlView/images/download.svg'\u003e\n\u003c/a\u003e\n\n\u003ca href='https://raw.githubusercontent.com/agilie/InterfaceInteraction/master/LICENSE.txt'\u003e\n\u003cimg src='https://img.shields.io/badge/license-MIT-blue.svg' alt='GitHub license'\u003e\n\u003c/a\u003e\n\n\u003c/p\u003e\n\nInfluenced with [PhysicsLayout](https://github.com/Jawnnypoo/PhysicsLayout) project, we've implemented an interesting animation. Our library captures any interface (screen or view) and throws its UI elements over under the influence of gravity, so that one can move them from side to side obliquely. Gravity depends on device's [accelerometer data](https://developer.android.com/reference/android/hardware/SensorManager.html). Call *stop()* method to return all the UI elements to their original location. \n\nAnother option is to apply _shake_ animation for your UI elements.\n\nThese animations can be easily used during the development of any application as an event activated after a specified user action.\n\n\n### Gravity\n\u003cimg src=\"https://cloud.githubusercontent.com/assets/1777595/26116081/8e029c0e-3a6a-11e7-9626-2753a9e31b83.gif\" width=\"32%\"\u003e \n\n### Shake\n\u003cimg src=\"https://user-images.githubusercontent.com/17047537/26974906-1fa4d884-4d26-11e7-9628-770d84ab0e7d.gif\" width=\"32%\"\u003e\n\n## Example\n\n### How does it work?\n\n__Gravity:__\n\nFirst, create an instance of *GravityControllerImpl*. Pass context instance and root *ViewGroup* as constructor parameters:\n\n````kotlin\nval gravityController = GravityControllerImpl(this, rootLayout)\n````\n\nTo initiate gravity animation of all subviews (except ViewGroup instances) and then return back these UI elements simply call appropriate methods:\n\n````kotlin\ngravityController.start()\ngravityController.stop()\n````\n\n__Shake:__\n\nChoose what you want to shake: all activity or only view. Then you need to build your ShakeBuilder, call the method *shake* where the parameter is yours view and in the end call the method *build*.\n\n````kotlin\nval shaker = InterfaceInteractorImpl().shake(this).build()\n````\n\nIn order to start animation you need to call the method *shakeMyActivity* or *shakeMyView*. To complete the animation call the method *stopAnimation*\n\n````kotlin\nshaker.shakeMyActivity()\nshaker.shakeMyView()\nshaker.stopAnimation()\n````\n\n## Usage\n\n### Gradle\n\nAdd dependency in your `build.gradle` file:\n````gradle\ncompile 'com.agilie:interface-interaction:1.0'\n````\n\n### Maven\nAdd rependency in your `.pom` file:\n````xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.agilie\u003c/groupId\u003e\n  \u003cartifactId\u003einterface-interaction\u003c/artifactId\u003e\n  \u003cversion\u003e1.0\u003c/version\u003e\n  \u003ctype\u003epom\u003c/type\u003e\n\u003c/dependency\u003e\n````\n\n## Requirements\n\nAGMobileGift works on Android API 19+\n\n## Troubleshooting\n\nProblems? Check the [Issues](https://github.com/agilie/AGMobileGift/issues) block\nto find the solution or create an new issue that we will fix asap.\n\n\n## Author\n\nThis library is open-sourced by [Agilie Team](https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Android_Kotlin\u0026utm_term=InterfaceInteraction) \u003cinfo@agilie.com\u003e\n\n## Contributors\n\n- [Eugene Surkov](https://github.com/ukevgen)\n\n## Contact us\nIf you have any questions, suggestions or just need a help with web or mobile development, please email us at\u003cbr/\u003e \u003candroid@agilie.com\u003e\u003cbr/\u003e\nYou can ask us anything from basic to complex questions. \u003cbr/\u003e\nWe will continue publishing new open-source projects. Stay with us, more updates will follow!\u003cbr/\u003e\n\n## License\n\nThe [MIT](LICENSE.md) License (MIT) Copyright © 2017 [Agilie Team](https://www.agilie.com?utm_source=github\u0026utm_medium=referral\u0026utm_campaign=Git_Android_Kotlin\u0026utm_term=InterfaceInteraction)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilie%2Finterfaceinteraction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagilie%2Finterfaceinteraction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilie%2Finterfaceinteraction/lists"}