A React Native runtime library for Rive.
This library is a wrapper around the iOS/Android runtime, providing a component and ref pattern for React Native applications.
- β Rive Overview
- π Getting Started & API docs
- π Supported Devices
- π Examples
- π Migration Guides
- π¨βπ» Contributing
- β Issues
- π§ Native SDK Version Customization
Rive is a real-time interactive design and animation tool that helps teams create and run interactive animations anywhere. Designers and developers use our collaborative editor to create motion graphics that respond to different states and user inputs. Our lightweight open-source runtime libraries allow them to load their animations into apps, games, and websites.
π‘ Homepage
π General help docs
π Resources for building in Rive
Follow along with the link below for a quick start in getting Rive React Native integrated into your multi-platform applications.
Getting Started with Rive in React Native
Because this runtime library has a dependency on the Rive Android and Rive iOS runtimes, the supported devices align with each of these dependencies minimum supported devices, as well as the minimum device requirements of the React Native framework.
- iOS: 14.0+
- Android:
- Minimum SDK version: 21
- Target SDK version: 33
Check out the example/ folder to run an example application using the Rive React Native runtime. It runs on the local build of this library, and showcases a number of ways to use the Rive component and useRef hook pattern:
- Setting a Rive file via a URL, or asset in the Android/iOS projects
- Displaying single or multiple animations / artboards on one component
- Setting up and maniuplating a state machine via inputs
- ...and more!
Steps:
- Run
yarn bootstrap - cd
example yarn expo run:androidoryarn expo run:ios
iOS:
- You may need to run
pod install(first time) orpod update RiveRuntime(updates to the underlying Rive iOS runtime) in theexample/iOSfolder to get the runtime installed or updated
Using an older version of the runtime and need to learn how to upgrade to the latest version? Check out the migration guides below in our help center that help guide you through version bumps; breaking changes and all!
We love contributions! Check out our contributing docs to get more details into how to run this project, the examples, and more all locally.
Have an issue with using the runtime, or want to suggest a feature/API to help make your development life better? Log an issue in our issues tab! You can also browse older issues and discussion threads there to see solutions that may have worked for common problems.
β οΈ Advanced Configuration This section is for advanced users who need to use specific versions of the Rive native SDKs. In most cases, you should use the default versions that come with the library. Only customize these versions if you have a specific requirement and understand the potential compatibility implications.Important: If you customize the native SDK versions and later update
rive-react-nativeto a newer version, you should revisit your custom version settings. The custom versions you specified may not be compatible with the updatedrive-react-nativeversion. Always check the default versions in the new release and test thoroughly.
By default, rive-react-native uses the native SDK versions specified in package.json:
"runtimeVersions": {
"ios": "6.12.0",
"android": "10.4.5"
}These versions are tested and known to work well with this version of rive-react-native.
You can override these default versions using platform-specific configuration files:
Create or edit ios/Podfile.properties.json:
{
"RiveRuntimeIOSVersion": "6.13.0"
}Then run:
cd ios && pod installAdd to android/gradle.properties:
Rive_RiveRuntimeAndroidVersion=10.5.0For Expo projects, use config plugins in your app.config.ts:
import { ExpoConfig, ConfigContext } from 'expo/config';
import { withPodfileProperties } from '@expo/config-plugins';
import { withGradleProperties } from '@expo/config-plugins';
export default ({ config }: ConfigContext): ExpoConfig => ({
...config,
plugins: [
[
withPodfileProperties,
{
RiveRuntimeIOSVersion: '6.13.0',
},
],
[
withGradleProperties,
{
Rive_RiveRuntimeAndroidVersion: '10.5.0',
},
],
],
});The library resolves versions in the following order:
iOS:
ios/Podfile.properties.jsonβRiveRuntimeIOSVersionpackage.jsonβruntimeVersions.ios(default)
Android:
android/gradle.propertiesβRive_RiveRuntimeAndroidVersionpackage.jsonβruntimeVersions.android(default)
