Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 2, 2025

Description

Updates Splash Master to support Rive 0.14.0-dev.14 pre-release, which uses an entirely new C++ runtime-based API replacing the previous Dart implementation.

This is released as version 0.0.4-dev.1 (pre-release).

API Changes

  • RiveConfig: Replaced artboardName/animations/stateMachineName with artboardSelector/stateMachineSelector. Changed fit from BoxFit to Rive's Fit enum. Added riveFactory parameter (nullable, defaults to Factory.rive at runtime).
  • RiveSplash: Now uses RiveWidgetBuilder + RiveWidget instead of removed RiveAnimation widget.
  • Source types: Added RiveFileSource for pre-loaded files. Removed RiveArtboardSource (not functional with Rive 0.14.x).

Unsupported in Rive 0.14.x

  • DeviceFileSource and BytesSource are no longer supported for Rive splash (use AssetSource, NetworkFileSource, or RiveFileSource)

SDK Requirements

The SDK constraints (Flutter >=3.27.0 and Dart SDK >=3.6.0) are required by Rive 0.14.0-dev.14 itself and cannot be lowered.

Example

SplashMaster.rive(
  source: AssetSource('assets/animation.riv'),
  riveConfig: RiveConfig(
    artboardSelector: ArtboardSelector.byName('MyArtboard'),
    stateMachineSelector: StateMachineSelector.byDefault(),
    fit: Fit.contain,
    // riveFactory is optional - defaults to Factory.rive
  ),
  nextScreen: HomeScreen(),
)

Checklist

  • The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
  • I have followed the Contributor Guide when preparing my PR.
  • I have updated/added tests for ALL new/updated/fixed functionality.
  • I have updated/added relevant documentation in docs and added dartdoc comments with ///.
  • I have updated/added relevant examples in examples or docs.

Breaking Change?

Migration instructions

  • Update to Flutter >=3.27.0 and Dart SDK >=3.6.0 (required by Rive 0.14.0-dev.14)

  • Replace RiveArtboardSource with RiveFileSource (the old class has been completely removed)

  • Update RiveConfig to use new selector-based API

  • Migrate DeviceFileSource/BytesSource Rive sources to AssetSource or NetworkFileSource

  • Note: riveFactory parameter is now optional and nullable (defaults to Factory.rive)

  • Yes, this PR is a breaking change.

  • No, this PR is not a breaking change.

Related Issues

Closes #75

Original prompt

This section details on the original issue you should resolve

<issue_title>Feature Request: Support Rive Pre-Release Versions in Splash Master</issue_title>
<issue_description>## Summary

The upcoming pre-release versions of Rive introduce multiple breaking changes that are not compatible with the current release of Splash Master. As a result, developers using the latest Rive pre-release builds are unable to integrate them with Splash Master without encountering errors.

Request

Please provide a new version of Splash Master that is compatible with the latest pre-release versions of Rive. Which aligns with the updated Rive APIs.

Additional context

Link to pre-release of rive-: https://pub.dev/packages/rive/versions/0.14.0-dev.14</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Add support for Rive pre-release versions in Splash Master feat!: Support Rive Pre-Release Versions (0.14.x) Dec 2, 2025
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if possible dont update sdk and flutter version. and create a pre-release for it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to pre-release version 0.0.4-dev.1 in commit 5593c48.

Note: The SDK constraints (Flutter >=3.27.0 and Dart SDK >=3.6.0) are required by Rive 0.14.0-dev.14 itself and cannot be lowered. These are hard requirements from the Rive package's own pubspec.yaml.

this.layoutScaleFactor = 1.0,
this.placeHolder,
this.splashDuration,
this.riveFactory = Factory.rive,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Factory.rive is not constant so providing it as default param will not work

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in commit d0226c3. Changed riveFactory to be nullable (Factory?) so the const constructor works. The default value Factory.rive is now applied at runtime when null.

@ujas-m-simformsolutions
Copy link
Collaborator

@copilot instead of adding deprecated member just remove them

Copy link
Contributor Author

Copilot AI commented Dec 3, 2025

@copilot instead of adding deprecated member just remove them

Removed RiveArtboardSource class completely in commit 7574b99. Since this is a breaking change pre-release and the class doesn't work with Rive 0.14.x, it's been fully removed rather than deprecated.

@ujas-m-simformsolutions ujas-m-simformsolutions force-pushed the copilot/support-rive-pre-release branch from 7574b99 to 0fb226e Compare December 3, 2025 08:20
@ujas-m-simformsolutions ujas-m-simformsolutions changed the title feat!: Support Rive Pre-Release Versions (0.14.x) chore: 🚧 Provide support for rive pre-release Dec 3, 2025
@ujas-m-simformsolutions ujas-m-simformsolutions force-pushed the copilot/support-rive-pre-release branch from 0fb226e to 866b279 Compare December 3, 2025 08:26
@ujas-m-simformsolutions ujas-m-simformsolutions marked this pull request as ready for review December 3, 2025 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Support Rive Pre-Release Versions in Splash Master

2 participants