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
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
nullif 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.