{"id":13611295,"url":"https://github.com/rive-app/rive-android","last_synced_at":"2025-05-15T19:06:31.951Z","repository":{"id":36953730,"uuid":"299578948","full_name":"rive-app/rive-android","owner":"rive-app","description":"A runtime for interactive graphics and animations on Android","archived":false,"fork":false,"pushed_at":"2025-05-09T16:46:10.000Z","size":390604,"stargazers_count":411,"open_issues_count":57,"forks_count":35,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-09T17:48:23.536Z","etag":null,"topics":["android","animations","multiple-animations","playing-animations","rive"],"latest_commit_sha":null,"homepage":"https://rive.app","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/rive-app.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2020-09-29T10:12:51.000Z","updated_at":"2025-05-09T16:46:14.000Z","dependencies_parsed_at":"2023-10-14T14:06:43.848Z","dependency_job_id":"eb7dfada-667c-483a-a16d-fdc8f28ec00a","html_url":"https://github.com/rive-app/rive-android","commit_stats":null,"previous_names":[],"tags_count":215,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rive-app%2Frive-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rive-app%2Frive-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rive-app%2Frive-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rive-app%2Frive-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rive-app","download_url":"https://codeload.github.com/rive-app/rive-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254404357,"owners_count":22065641,"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","animations","multiple-animations","playing-animations","rive"],"created_at":"2024-08-01T19:01:53.867Z","updated_at":"2025-05-15T19:06:31.913Z","avatar_url":"https://github.com/rive-app.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"![Build Status](https://github.com/rive-app/rive-android/actions/workflows/release.yml/badge.svg)\n![Test Status](https://github.com/rive-app/rive-android/actions/workflows/tests.yml/badge.svg)\n![Discord badge](https://img.shields.io/discord/532365473602600965)\n![Twitter handle](https://img.shields.io/twitter/follow/rive_app.svg?style=social\u0026label=Follow)\n\n# Rive Android\n\n![Rive hero image](https://cdn.rive.app/rive_logo_dark_bg.png)\n\nAn Android runtime library for [Rive](https://rive.app).\n\nThe library is distributed through\nthe [Maven](https://search.maven.org/artifact/app.rive/rive-android) repository.\n\n## Table of contents\n\n- ⭐️ [Rive Overview](#rive-overview)\n- 🚀 [Getting Started \u0026 API docs](#getting-started)\n- 🔍 [Supported Versions](#supported-versions)\n- 🧪 [Experimental Features](#experimental-features)\n- 📚 [Examples](#examples)\n- 👨‍💻 [Contributing](#contributing)\n- ❓ [Issues](#issues)\n\n## Rive overview\n\n[Rive](https://rive.app) is a real-time interactive design and animation tool that helps teams\ncreate and run interactive animations anywhere. Designers and developers use our collaborative\neditor to create motion graphics that respond to different states and user inputs. Our lightweight\nopen-source runtime libraries allow them to load their animations into apps, games, and websites.\n\n🏡 [Homepage](https://rive.app/)\n\n📘 [Rive docs](https://rive.app/community/doc/introduction/docvphVOrBbl)\n\n🛠 [Rive Forums](https://rive.app/community/forums/home)\n\n## Getting started\n\nTo get started with Rive Android, check out the following resources:\n\n- [Getting Started with Rive in Android](https://rive.app/community/doc/android/docxb0vASIwp)\n\nFor more information, see the Runtime sections of the Rive help documentation:\n\n- [Animation Playback](https://rive.app/community/doc/animation-playback/docDKKxsr7ko)\n- [Layout](https://rive.app/community/doc/layout/docBl81zd1GB)\n- [State Machines](https://rive.app/community/doc/state-machines/docxeznG7iiK)\n- [Rive Text](https://rive.app/community/doc/text/docn2E6y1lXo)\n- [Rive Events](https://rive.app/community/doc/rive-events/docbOnaeffgr)\n- [Loading Assets](https://rive.app/community/doc/loading-assets/doct4wVHGPgC)\n\n## Supported versions\n\nCurrently, this runtime library supports a minimum SDK version of **21**, and the target SDK version\nis **34**.\n\n## Examples\n\nCheck out the `app/` folder to see an example application using the Rive Android runtime.\n\nTo run the example app set the `app` build variant to `preview`. In Android Studio, to select which build variant to build and run, go to **Build \u003e Select Build Variant** and select a build variant from the menu.\n\nThe `preview` build variant makes use of the hosted Rive dependency. If you're looking to contribute, set the build variant to `debug` and see `CONTRIBUTING.md` for more information. Building this variant will require additional configuration and setup.\n\nThe example showcases a number of ways to manipulate Rives, including:\n\n- How to include Rive files into the project and reference them\n- Setting layout and loop mode options\n- Displaying single or multiple animations / artboards on one component\n- Setting up and manipulating a state machine via inputs\n- Handling events\n- Utilizing a low-level API to build a render loop for more control over scenes\n- ...and more!\n\n### Awesome Rive\n\nFor even more examples and resources on using Rive at runtime or in other tools, checkout the [awesome-rive](https://github.com/rive-app/awesome-rive) repo.\n\n## Experimental features\n\nThe Rive renderer is available _experimentally_ in `7.0.0`.\n\nRead more about the Rive Renderer [here](https://rive.app/renderer). Additional information on [choosing a renderer](https://rive.app/community/doc/overview/docD20dU9Rod) for Rive's runtimes.\n\nYour feedback is greatly appreciated during this stage and we'd love to hear from you!\n\nTo use the new Rive renderer you can specify the parameter in XML:\n\n```xml\n\u003capp.rive.runtime.kotlin.RiveAnimationView\n  app:riveRenderer=\"Rive\"\n  … /\u003e\n```\n\nAlternatively, specify the renderer when initializing Rive:\n\n```kotlin\nRive.init(applicationContext, defaultRenderer = RendererType.Rive)\n```\n\nThis default value can still be overriden via XML.\n\n## Contributing\n\nWe love contributions! Check out our [contributing docs](./CONTRIBUTING.md) to get more details into\nhow to run this project, the examples, and more all locally.\n\n## Issues\n\nHave an issue with using the runtime, or want to suggest a feature/API to help make your development\nlife better? Log an issue in our [issues](https://github.com/rive-app/rive-android/issues) tab! You\ncan also browse older issues and discussion threads there to see solutions that may have worked for\ncommon problems.\n\n### Known issues\n\nAfter `rive-android:6.0.0`, CMake is building the library, and you might run into the following error when `rive-android` is used alongside other native libraries:\n\n```shell\nExecution failed for task ':app:mergeDebugNativeLibs'.\n\u003e A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction\n   \u003e 2 files found with path 'lib/arm64-v8a/libc++_shared.so' from inputs:\n…\n```\n\nYou can fix this by adding this in your `build.gradle`:\n\n```gradle\nandroid {\n  …\n  packagingOptions {\n      pickFirst \"lib/x86/libc++_shared.so\"\n      pickFirst \"lib/x86_64/libc++_shared.so\"\n      pickFirst \"lib/armeabi-v7a/libc++_shared.so\"\n      pickFirst \"lib/arm64-v8a/libc++_shared.so\"\n  }\n  …\n}\n```\n\n### Breaking changes\n\n#### **9.0.0**\n\n- State Machine Inputs aren't processed on the UI thread anymore, but they are queued and processed\n  by the worker thread on the `advance()` following `RiveAnimationView.[fireState()/setNumberState()/setBooleanState()]`\n- `RiveArtboardRenderer`\n  - Constructor is simplified and now takes fewer parameters\n  - Deprecated APIs from `RiveArtboardRenderer` are now accessible via `RiveAnimationView` or `RiveAnimationView.controller`\n- `RiveFileController.hasPlayingAnimations` is now `isAdvancing`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frive-app%2Frive-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frive-app%2Frive-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frive-app%2Frive-android/lists"}