The Wire · Showcase
FLUTTER GPU GOES ASYNC, SWIFT CLOSES CONFORMANCE GAPS, KOTLIN WASM COROUTINES LAND
By RepoJournal · Filed · About Mobile platforms
Flutter's ShaderLibrary breaks synchronous loading to work across all platforms, while Swift tightens type conformance handling and Kotlin ships stack-switching coroutines for WebAssembly.
Flutter shipped a breaking change that matters: ShaderLibrary.fromAsset now returns a Future instead of loading synchronously [1]. This is the right move. Asset reads can't work synchronously everywhere, so the framework is consolidating on one async entry point for all platforms. If you're building with flutter_gpu, plan for this change before your next integration. Meanwhile, Flutter's test infrastructure got stricter [2] with cross-import checking now covering flutter_test itself, and the Windows renderer got a fix for transposed width/height dimensions that were corrupting empty frame sizes [3]. On the Swift side, the compiler now specializes chains of nested closures correctly [4], which matters for AutoDiff pullbacks that use stacked closures. Swift also fixed conformance handling for types conditioned on non-copyable constraints [5], solving a bug where the wrong generic signature was used during conformance emission. The stdlib gained missing extracting() functions for buffer pointers [6] as part of SE-0488 completion. In Kotlin, WebAssembly coroutines with stack switching officially landed [7] [8], complete with test adjustments and incremental compilation support [9] [10] [11]. This is the foundation for proper async/await behavior in Wasm targets.
One email a day. Unsubscribe in one click.
Keep up with Mobile platforms in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Plan for ShaderLibrary.fromAsset async migration if using flutter_gpu flutter/flutter [plan]
- → Update flutter tests to comply with cross-import checker before next lint run flutter/flutter [plan]
- → Test Swift compiler with new closure specialization on complex AutoDiff code apple/swift [monitor]
- → Validate Kotlin Wasm coroutine stack switching in your build pipeline JetBrains/kotlin [monitor]
References
- [1] [Flutter GPU] Make ShaderLibrary.fromAsset asynchronous ↗ flutter/flutter
- [2] [Test cross_imports] Check cross imports in flutter_test/** ↗ flutter/flutter
- [3] Fixing corrupted window size OnEmptyFrameGenerated due to transpsed width/height (#187954) flutter/flutter
- [4] [SILOptimizer] Enable iterative specialization of nested closure chains ↗ apple/swift
- [5] IRGen: handle conformances conditioned on T.A: ~Copyable ↗ apple/swift
- [6] [stdlib] Complete the implementation of SE-0488 ↗ apple/swift
- [7] [Wasm] Coroutines With Stack Switching: introduce WasmCoroutineMode annotation (KT-76207) JetBrains/kotlin
- [8] [Wasm] Coroutines With Stack Switching: introduce types and type synthetics for use in codegen (KT-76207) JetBrains/kotlin
- [9] [Wasm] Coroutines With Stack Switching: suppress coroutine intrinsicSemantics tests for Stack Switching (KT-76207) JetBrains/kotlin
- [10] [Wasm] Coroutines With Stack Switching: adjust stepping state machine tests (KT-76207) JetBrains/kotlin
- [11] [Wasm] Coroutines With Stack Switching: IC (KT-76207) JetBrains/kotlin