The headline announcement from Google I/O 2026 that has actually shifted the way our team is roadmapping the next quarter is not Gemini 3.5 Flash, and not the Search box redesign. It is the quiet release of the GenUI SDK for Flutter on pub.dev, paired with the publication of A2UI v0.9 as an open, framework-agnostic protocol. Together they answer a question that AI-in-apps has been ducking for two years: how does an agent show the user a slider, a date-picker, a multi-step form, a map, or a checkout flow without inventing a fragile, app-specific schema each time?
If you ship a Flutter app and you have spent any time wiring an LLM into it, you know what I mean. The agent gives you a wall of markdown. You ask it for a "rich" response. It gives you a card with a button. You ask it for an interactive widget. It gives you a chip carousel. The model is capable of expressing intent; the framework has not given it a language for that intent. As of Flutter 3.44, that gap is closed.
1. What GenUI And A2UI Actually Are
A2UI is an open protocol — version 0.9 was published the week of I/O 2026 — that defines a JSON-based vocabulary for an agent to declare a UI surface: components, layout, state, and event handlers. It is deliberately framework-agnostic. Any client (Flutter, React Native, native iOS/Android, web) can implement an A2UI runtime and consume the same declarations.
The GenUI SDK for Flutter is the first first-party A2UI runtime. The agent emits A2UI JSON; the SDK maps each declared component to a widget from your registered catalog (your own widgets, your house style, your accessibility patterns); the widget renders; the user interacts; state changes are streamed back to the agent; the agent decides the next move. The loop is high-bandwidth — the agent sees what the user did and reacts.
Crucially, the agent does not get to draw arbitrary pixels. It composes UI from the widget catalog you registered. Your buttons. Your spacing. Your dark mode. Your i18n. The "generative" part is the composition, not the styling. This is the design decision that makes the whole thing usable in production: a designer or a brand team can ship the catalog once and the agent is constrained to it forever.
GenUI SDK package downloads are up roughly 500% since the start of the year, and that was before the I/O 2026 announcement put A2UI v0.9 on the project's roadmap. Expect another step-change in adoption over the next month.
2. Why This Matters For Laravel + Flutter Shops Specifically
Most of the agencies and in-house teams we work with run the same architecture: a Laravel backend exposing a JSON API, a Flutter app on iOS and Android consuming it, and lately an LLM bolted on somewhere — usually as a chat box that opens a drawer over the regular UI. The chat-box pattern has aged badly. Users do not want to type "show me my last invoice in dollars not yen" when they could tap a currency switcher. They want the agent to put the switcher in front of them.
GenUI lets you do exactly that. Your Flutter app registers its widget catalog with the SDK. Your Laravel backend exposes an MCP-style or agent-callable endpoint that the LLM can hit. The agent's response is an A2UI document instead of a markdown blob. The Flutter app renders it inline — inside the existing screen, not in a chat drawer.
The architectural implication is large. The "page" stops being the unit of UX. A page becomes a set of slots into which the agent can compose a small, purpose-built widget for the current task. The Laravel backend's job shifts from "render a fixed view-model" to "give the agent the data and the affordances; let the agent assemble the surface." This is a meaningful refactor, but it is also the direction every major app — Toyota's RAV4 dashboard, talabat's grocery flow, LG's webOS — is now publicly heading.
3. The Concrete Build Pattern That Works This Week
The recipe that has held up in our weekend of prototyping is three layers.
Layer one is your widget catalog. Take the 20–40 widgets your app actually uses (button, text input, currency input, date picker, address form, list with avatars, map preview, etc.). Register each with the GenUI SDK with a stable name and a schema for the props it accepts. Treat the catalog as a contract — add to it slowly, never remove, version it.
Layer two is your tool layer. Your Laravel backend exposes a small number of agent-callable endpoints — read invoices, list products, update preferences, etc. These are the only side-effects the agent can cause. Treat them like a public API even though the agent is the only consumer.
Layer three is the agent itself. Wire Gemini 3.5 Flash (or Claude Sonnet 4.6, or whatever you prefer) with the GenUI SDK's response format. The agent's system prompt tells it: when the user's intent is information-seeking, return prose; when the user's intent is to do something, return an A2UI document that composes widgets from the registered catalog and points their event handlers at your tool endpoints.
The wins from this three-layer pattern in our own tests: the median task that used to require 5–8 chat turns now resolves in 1 message and 1 widget interaction. The agent never has to explain the form; it shows the form.
4. The talabat And RAV4 Tells
There are two early production stories worth studying.
talabat — the MENA region's largest food and grocery delivery app — finished its migration to a unified Flutter codebase earlier this month and has been quietly running an A2UI-style cart assistant in pilot. The pattern reported on the Flutter showcase page is exactly the above: the assistant looks at your past orders, your dietary constraints, and the time of day, and renders a cart you can edit, rather than reading you a list. Conversion lift in the pilot has been double-digit; the lift is attributed to removing the "read out loud" step.
Toyota's 2026 RAV4 ships with a Flutter-rendered infotainment stack now in production. Toyota's team has been a project partner on A2UI from early on; the long game is for the vehicle's AI assistant to be able to draw the right control surface — climate, navigation, EV routing — for the current driving context, without the driver having to dig through menus. The car is the existence proof that A2UI is not a phone-only idea.
5. The Strategic Read
There is a larger story here than "Flutter shipped a new package." The agentic-app pattern has been bottlenecked on the UI side for two years. Every major model house has been adding tool-calling, planning, memory, and computer use. The output channel has remained "text and a few inline buttons." A2UI fixes the output channel by giving agents a typed, schema-validated way to render real interactive surfaces inside the host app.
If Google's bet is correct, expect the next quarter to bring A2UI runtimes for React Native (community), SwiftUI (Apple's own, possibly at WWDC 2026), Jetpack Compose, and web React. Whichever way the ecosystem standardizes, the discipline of "we maintain a widget catalog, we expose tools, we let the agent compose" becomes the new default architecture for AI-bearing apps.
6. The Three Risks To Watch
It is not a clean win. Three risks deserve attention.
Catalog discipline. If your widget catalog drifts — components renamed, props changed, deprecated entries left in — the agent's hallucinations get expensive. The catalog needs the same versioning hygiene a public API needs.
State synchronization. A2UI streams state changes back to the agent. If you let the agent's view of state get stale (network drop, slow user), it will propose actions that no longer make sense. Build the SDK's state-reconciliation primitives into your design from day one; do not retrofit them.
Cost. Every agent-rendered interaction is a model call. If you let the agent re-render on every tap, your token bill becomes a line item. The right architectural call is to let the agent render the surface once and then have the surface drive normal API calls until the user's intent shifts. The SDK supports this; some early demos show it being misused.
My Take
This is the first AI-into-app pattern in two years that I think will stick. The chat-in-a-drawer pattern was always a half-measure that papered over the fact that we did not yet have a language for agents to do UI. We do now. The Flutter shops who internalize this within the next quarter — register a catalog, expose tools, render A2UI inline — will leave the rest of the field behind on conversion rate, on time-to-task, and on user satisfaction.
For Laravel/Flutter agencies in particular: the migration is straightforward and the deliverable is concrete. Pick one screen in one app where users currently get stuck in a form. Replace that one form with an A2UI surface the assistant renders. Measure the conversion lift. Use the result to sell the rest of the migration to the client. We are running exactly this experiment on three internal projects this week; the early numbers are convincing.
Sources
- A2UI v0.9: The New Standard for Portable, Framework-Agnostic Generative UI — Google Developers Blog
- Get started with the GenUI SDK for Flutter — Flutter docs
- Rich and dynamic user interfaces with Flutter and generative UI — Flutter Blog
- Flutter 3.44 Highlights From Google I/O 2026: What's New and What Matters — DEV
- Generative UI SDK for Flutter (genui) — GitHub
- Toyota — Flutter showcase