RepoJournal
Mobile platforms

Mobile platforms

Flutter, Swift, and Kotlin - the mobile platforms developers ship on

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.

Pick a date

Topics: Mobile Full archive →

The Wire · Showcase

FLUTTER KILLS METAL CRASH, SWIFT DITCHES DEAD THREAD CODE

By RepoJournal · Filed · About Mobile platforms

Impeller's shader compiler was silently crashing Metal apps at draw time; Flutter just plugged it with a bounds check that the GLES backend had months ago.

Flutter shipped three critical fixes across the rendering stack. The biggest: Impeller now skips dead-code-eliminated resources on Metal [1], stopping the AGX driver crash that happened when the shader compiler optimized out a fragment sampler but reflection still tried to bind it at an out-of-range index. On the same front, Flutter GPU now raises proper Dart exceptions instead of crashing the process when you build an invalid render pipeline [2], surfacing shader stage mismatches up front rather than on first draw. A platform views regression that gutted web view buttons got reverted [3] after an internal project reported the damage; the team couldn't repro locally but shipped the revert rather than ship broken. Meanwhile, iOS fixed a thread-safety data race in VSyncClient tests [4] where the test harness was reaching unsynchronized into CADisplayLink from the test thread while the actual client ran on a dedicated worker, triggering undefined behavior that CADisplayLink's design forbids. On the Swift side, the standard library shipped a cleanup: Doug Gregor removed the ThreadLocalStorage abstraction that's sat unused for four years [5], and embedded Swift now connects Concurrency to platform-backed threading instead of the single-threaded stub [6], letting embedded targets define their own execution-context behavior. Kotlin fixed a reflection bug where inline classes with companion properties shadowed the underlying field lookup [7].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] [Impeller] Skip binding dead-code-eliminated resources on Metal ↗ flutter/flutter
  2. [2] [Flutter GPU] Raise Dart errors for invalid render pipelines and memoize per-draw pipeline state ↗ flutter/flutter
  3. [3] Revert "Improve non rect platform view rendering (#182662)" ↗ flutter/flutter
  4. [4] iOS: Serialise CADisplayLink access in VSyncClient tests ↗ flutter/flutter
  5. [5] [stdlib] Remove standard library's ThreadLocalStorage ↗ apple/swift
  6. [6] [Embedded] Enable platform-backed threading in Concurrency ↗ apple/swift
  7. [7] JVM/Reflection: fix underlying field search for inline classes ↗ JetBrains/kotlin

Quick answers

What shipped in Mobile platforms on August 2, 2026?
Impeller's shader compiler was silently crashing Metal apps at draw time; Flutter just plugged it with a bounds check that the GLES backend had months ago. In total, 16 commits and 13 pull requests landed.
Who contributed to Mobile platforms on August 2, 2026?
6 developers shipped this update, including cbracken, bdero, hellohuanlin, DougGregor, gonzalolarralde, and Maksim Verevkin.
What were the notable Mobile platforms updates?
[Impeller] Skip binding dead-code-eliminated resources on Metal, [Flutter GPU] Raise Dart errors for invalid render pipelines and memoize per-draw pipeline state, and Revert "Improve non rect platform view rendering (#182662)".

More from Mobile platforms

Daily updates, in your inbox

Follow Mobile platforms

Keep up with Mobile platforms in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?