Flutter 3.47 made the Widget Previewer stable, and the first thing most teams will do is point it at a screen that boots the app. That one renders an error, not a component.
⚠️ 𝐖𝐡𝐲 𝐢𝐭 𝐟𝐚𝐢𝐥𝐬: the previewer runs browser-backed. Native plugins, dart:io and dart:ffi are unsupported, and changing global state needs a full restart.
I've stopped reading those errors as tooling gaps. A widget that reads an injected value previews fine, because you can put a hand-written fake above it. One that builds its own dependency cannot.
🔍 𝐓𝐡𝐫𝐞𝐞 𝐜𝐡𝐞𝐜𝐤𝐬 before you annotate anything
Does it initialize a service on the way to the first frame? Move that to the composition root.
Does the constructor require arguments? Annotate a top-level factory function instead.
Does it have an intrinsic size? If not it auto-constrains to about half the preview frame, so pass size.
✅ 𝐒𝐭𝐢𝐥𝐥 𝐧𝐨𝐭 𝐚 𝐭𝐞𝐬𝐭. A preview asserts nothing and never runs in CI. Keep the golden test for the dependency bump that shifts your card padding at 03:00.
I've built a new mobile AI assistant that brings chat, text and image generation, voice input and document analysis into one app.
It have Smart Chat, Text Creator, Image Create, Voice Input, plus PDF Scanner, Photo Analyze, Social Content and Prompt Ideas, filtered by category.
Almost everything AI can do, just in one place.