soroq_flutter 0.1.2
soroq_flutter: ^0.1.2 copied to clipboard
Flutter plugin and Android runtime bridge for the Soroq OTA platform.
soroq_flutter #
soroq_flutter is the Flutter-facing plugin for Soroq.
It bundles the Dart runtime bridge, the Android plugin/bootstrap layer, and the native startup/update wiring that Soroq uses on Android.
What It Includes #
- a reusable Dart API for the
soroq/engine_runtimemethod channel - runtime info, cold-start state, and auto-update state models
- Android startup wiring through a manifest-merged init provider
- native startup/update coordinators and a bundled arm64 Android JNI runtime
- re-exports of the pure Dart
soroq_sdkmodels and client
For the smallest public onboarding flow, start here:
- docs/public-alpha-android-quickstart.md
Installation #
dependencies:
soroq_flutter: ^0.1.2
Basic Setup #
Add a project-level soroq.yaml:
app_id: com.example.app
channel: stable
Import the package from Dart:
import 'package:soroq_flutter/soroq_flutter.dart';
Then use SoroqEngineRuntimeBridge to inspect runtime state, read startup
results, and configure auto-update behavior.
The public CLI flow around this package is now:
soroq init --app-id com.example.app
soroq status
soroq release android --artifact /absolute/path/to/app-release.aab --release-id my-release
soroq patch android --base-artifact /absolute/path/to/base.aab --candidate-artifact /absolute/path/to/candidate.aab --release-id my-release
soroq rollback --patch-id my-patch
What Is Proven Today #
- Android cold-start bootstrap through the shared plugin/runtime layer
- hosted patch-check and boot-report flows
- staged asset/config OTA on Android
- release/AOT proof work in controlled Android validation apps
runtime_managed_dartas a proven research/dev lane
Compatibility Truth #
This package is not a claim of universal stock-Flutter compatibility yet.
The current real OTA lanes are validated against a Soroq-compatible pinned Flutter toolchain, including tracked Flutter framework/engine patch seams in this repository. If a team is on a different Flutter version, they should use an explicitly supported Soroq toolchain release rather than assuming arbitrary cross-version compatibility.
In practical terms:
- the pure Dart control-plane layer is easier to share broadly
- the Android plugin/runtime layer is more version-sensitive
- the full OTA shipping path currently depends on Soroq-maintained Flutter fork/patch alignment
Status #
This package is part of the current Soroq Android public alpha. It is real and proven on Android, but the broader product is still being hardened toward a more Shorebird-like developer experience.
Local Repo Development #
This repository may use a local pubspec_overrides.yaml while developing both
packages together. Published consumers should depend on the pub.dev package
versions, not the local override.
The published Android plugin bundles the arm64 Soroq runtime JNI library so a
fresh Flutter app does not need this repository's runtime/ checkout just to
build. Repository maintainers can force a local Rust rebuild with
SOROQ_BUILD_RUST_JNI=1.
Internal Proof Helpers #
For repository-local validation, the repo still includes the existing proof helpers:
source ../../scripts/engine_env.sh
../../scripts/verify_zero_touch_consumer_app.sh
source ../../scripts/engine_env.sh
../../scripts/verify_zero_touch_consumer_aot_code_patch.sh
source ../../scripts/engine_env.sh
../../scripts/verify_zero_touch_consumer_aot_rollback.sh