What are the advantages and disadvantages of Flutter for cross-platform development?
A balanced answer covers honest trade-offs, not just a sales pitch.
Advantages:
Single codebase → mobile, web, desktop, embedded.
AOT-compiled to native ARM → near-native performance.
Hot Reload — sub-second iteration (the killer feature).
Pixel-perfect UI via own renderer (Skia / Impeller).
Strong tooling (DevTools), 25K+ pub.dev packages.
Disadvantages:
~5-7 MB minimum binary size (Engine + Dart VM ship with every app).
Dart ecosystem smaller than JS / Kotlin / Swift.
Platform-specific features (background tasks, push, niche hardware) still need plugins or native code.
Weak for SEO-driven web (use Next.js / Astro instead).
iOS feel needs explicit Cupertino widgets — it's not automatic.
Pick Flutter for: greenfield mobile-first apps with custom-designed UI. Don't pick Flutter for: SEO-driven web, BLE/AR-heavy apps where you'd still write native, or rewriting a working native app from scratch.
Don't just list pros — the senior signal is owning the cons honestly: app-size floor, weaker text/SEO story on web, native plugin gaps for niche hardware, and 'iOS feel needs Cupertino widgets, it's not automatic'. End with a 'when to pick / when not to pick' matrix — that turns the question from a checklist into a judgment call.