Platform setup and limits
The Flutter SDK targets Android, iOS, Web, macOS, Windows and Linux with Flutter 3.44 / Dart 3.12 as its minimum toolchain. A build result, automated runtime test and physical-device test are different evidence. Platform CI configuration alone does not certify a successful run.
Verification for the local 0.1.0 delivery
Section titled “Verification for the local 0.1.0 delivery”Flutter 3.44.0 (minimum) and 3.47.6 passed normal/minimum dependency and desktop-example checks in actual Ubuntu 24.04, Windows Server 2022 and macOS 15 CI runs. Flutter 3.44.8 also ran locally on macOS. These passes identify their source commits; final-commit CI after the native preparation correction remains open. Earlier passes are not substituted for that remaining gate. Android emulator and iOS simulator results are recorded separately from physical devices.
Both integration paths also passed on a physical iPhone 16 Pro running iOS 27.0.1 in profile mode, including offline first rendering, two-address failures, manual activation, locale changes, retained form/navigation state and persistent cache across separate app processes. These checks used device loopback servers, not production internet/TLS.
Complete Flutter examples ran in actual Safari 26.6.2 and Chrome 154 locally, and actual Safari and Microsoft Edge in CI, alongside Chromium 153, Firefox 155 and WebKit 26.6. JavaScript builds passed across these browsers. Wasm builds executed Wasm in Chrome/Edge; Safari, Firefox and WebKit used the JavaScript fallback. Adapter-only Dart Wasm checks are not evidence of Flutter Wasm rendering in those browsers.
Controlled iPhone repeats completed all three 30-pair startup/cache profiles. The earlier large frame gap did not recur in the near-limit profile, but a dense-ICU repeat recorded 50–58 ms frame intervals during cache preparation while the app remained foregrounded. Native thermal state was recorded. After removing redundant contract-data copying between isolates, the latest physical run passed all three 30-pair profiles while foregrounded, with no frame or event-loop interval above 50 ms. The historical 571 ms observation remains unexplained and is a documented limitation accepted for 0.1.0. This is not a universal frame guarantee; different thermal conditions and mixed stage timings prevent a general speedup claim.
Physical Android, minimum-OS/minimum-hardware devices and real production-network measurements remain open. Windows Server CI does not certify a physical Windows 10 device. Treat the floors below as targets until the relevant device/OS gate runs.
Application requirements
Section titled “Application requirements”| Platform | Application setup |
|---|---|
| Android API 24+ | Add the INTERNET permission to the main manifest. Use HTTPS in release builds. Emulator host loopback is 10.0.2.2. |
| iOS 15+ | Use HTTPS under App Transport Security. Configure application signing separately. Simulator testing does not certify device deployment. |
| macOS 12+ | A sandboxed application needs the outgoing network client entitlement. Cache lives in application support. |
| Windows 10+ | Build using the supported Visual Studio C++ toolchain; use application support persistence. |
| Linux | Use the current supported Flutter Linux distribution/toolchain and writable application-support location. |
| Web | Configure exact CORS origins on the distribution. IndexedDB must be available for persistent cache. JS and Wasm builds are separate checks. |
Consult the current official Flutter support matrix for OS/architecture and browser combinations. Browsers differ in Wasm capabilities; a successful JavaScript build does not prove a Wasm runtime on every browser. Cookies are not required.
Development configuration
Section titled “Development configuration”The public setup file is distinct from private worker/mTLS configuration. Operators set
SDK_PUBLIC_CONFIG_FILE on the management API. Its strict JSON fields are protocol: 1, two
addresses, a trustedKeys map of Ed25519 public PEM values, and allowDevelopmentHttp.
pnpm releases:prepare creates sdk-public.json next to the existing local release settings.
Production configuration must use HTTPS and disable development HTTP.
Missing/invalid setup returns an unavailable state, not fabricated server addresses. Current project membership is checked before returning public configuration. The runtime SDK never calls the management setup endpoint.
Resource limits
Section titled “Resource limits”Catalog payloads are limited to 1 MiB, expanded release content to 100 MiB, keys to 10,000 and values to 50,000. A value is at most 16 KiB UTF-8. ICU allows at most 32 parameters, ten nested expressions and 1,000 AST nodes. Defaults are a 256 MiB cache, 15-second request timeout and 60-second update cycle. Only the selected locale and its explicit fallback chain are fetched.
On native platforms, signature/content verification and preparation run through isolate adapters.
On Web, bounded preparation yields between work batches. Browser compute() is not described
as a background worker. Benchmark your actual device and data size before setting a frame budget.
Construct the native platform client on Flutter’s root isolate after
WidgetsFlutterBinding.ensureInitialized(). Filesystem adapters enforce this boundary because
POSIX file locks are process-scoped. The root isolate retains the cache transaction lock;
private workers verify and write immutable blobs without controlling activation metadata. Pure Dart applications can inject their own storage/transport ports.
Choose whether we remember appearance preferences and use Google Analytics on Localisync and its documentation. Optional storage stays off until you accept.
Read our cookie policy