BloomUpdates class

Enterprise-grade Over-The-Air (OTA) Updates and Runtime Fingerprint Engine.

Orchestrates runtime compatibility verification, staged percentage rollouts, background downloads with reactive progress signals, and self-healing startup rollback.

Example:

await BloomUpdates.initialize(channel: 'production');
final result = await BloomUpdates.checkForUpdate();
if (result.isAvailable) {
  await BloomUpdates.fetchUpdate();
  await BloomUpdates.reload();
}

Constructors

BloomUpdates()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

activeBranch String
Active git branch for OTA deployments.
no setter
activeChannel String
Active release deployment channel.
no setter
activePatchId String?
Active patch ID string (or null if base binary).
no setter
currentPatch ReadonlySignal<UpdateManifest?>
Reactive signal holding the currently active patch manifest.
no setter
downloadProgress ReadonlySignal<double>
Reactive signal tracking download progress from 0.0 to 1.0.
no setter
error ReadonlySignal<Object?>
Reactive signal containing any error encountered during update operations.
no setter
isAvailable ReadonlySignal<bool>
Reactive signal indicating whether a compatible update is available.
no setter
isChecking ReadonlySignal<bool>
Reactive signal indicating whether an update check is in progress.
no setter
isDownloading ReadonlySignal<bool>
Reactive signal indicating whether patch binary download is in progress.
no setter
isReady ReadonlySignal<bool>
Reactive signal indicating whether the patch is downloaded and ready to apply.
no setter
localRuntimeFingerprint String
SHA-256 hash of the local native binary runtime fingerprint.
no setter
watchdog StartupCrashWatchdog
Active startup crash watchdog.
no setter

Static Methods

checkForUpdate({String? channel, String? branch}) Future<UpdateCheckResult>
Checks for compatible OTA updates on the active channel and branch.
fetchUpdate({void onProgress(double progress)?}) Future<bool>
Downloads patch assets in the background, reporting fine-grained progress.
initialize({String channel = 'production', String branch = 'main', String? deviceId, String? runtimeFingerprint, BloomUpdateClientAdapter? adapter, WatchdogStorage? watchdogStorage, String? currentPatchId, bool autoHookErrorHandlers = true}) Future<void>
Initializes the BloomUpdates runtime engine.
reload() Future<void>
Triggers runtime reload/hot-restart to apply staged patch.
reset() → void
Resets internal static state (useful in unit testing).
rollback({String? reason}) Future<void>
Rolls back to the embedded base release binary and purges faulty patches.