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.