When to Use Flutter (And When Not To)
Making the right choice for your next project
I am a Flutter developer, and I enjoy developing in Flutter.
However, I have to admit that Flutter is not suitable for all platforms and all use cases.
There are couple of things to consider when choosing Flutter for your project.
I will omit the desktop platform, because I do not have many reference points for it.
Mobile
Mobile is the main platform for Flutter, and it is usually the first thing that comes to mind when you think about Flutter.
Flutter is great for mobile development, and you can do almost everything that you want.
The limitations are usually interconnected with the multiplatform nature of Flutter.
Facts to consider
- apps are usually larger in size - this is due to the Flutter engine, framework and packages
- platform specific integrations and APIs - you can do everything, but if you do not find a package for it, you have to write platform-specific code
- you need to learn Dart - a new language, which you have not used before most probably
And I think that is it.
You probably can find more disadvantages, but most of them have been solved or are so minor that only an actual developer will notice them.
Addressed concerns
- performance - Flutter is compiled into native code for the platform. The only performance gap is the framework itself, but honestly? It is so well optimized, it is really hard to write something unperformant. If so, you have multiple ways to optimize it. Split widgets properly and offload heavy computations into isolates.
- Look and feel - if you have a good designer, you can make a great theme and components. If they are implemented well, the final user will not tell the difference between a native and Flutter app. Moreover, with the adoption of the Impeller renderer, the performance got way better.
- Dart is actually a great language. It is easy to learn and has great tooling around it. The ecosystem is still growing, but personally, I have never felt that I am missing something.
But, when would I not use Flutter for mobile?
- React developers in the team -> use React Native
- Java/Kotlin developers in the team -> use Kotlin Multiplatform (It has matured a lot during the last couple of years)
- If you have already existing code written in Kotlin/Java - use Kotlin Multiplatform
- Heavy reliance on platform-specific APIs and SDKs -> use Kotlin/Swift (For example: GPS, Bluetooth, AR/VR, etc.)
- 100% native look and feel is required -> use Kotlin/Swift with Jetpack Compose/SwiftUI. If you look for usage of Material Design or Liquid Glass, they have first-class support.
Otherwise, I would consider Flutter for mobile app development. If you do not have any of the above, it is probably worth giving Flutter a try.
I can see to get comment now from some developer, that Flutter does not feel native. It is not supposed to feel native. If you are after 100% native look and feel, then Flutter is not the right choice. If you have your own UI/UX, then Flutter is great choice. Users will not tell the difference. The ending product is what matters, not the technology used to build it. I have never built app that uses native UI components and style, because I want to have unique look.
But, if you just want to build an app fast or just give the a try to Flutter, go for it.
Web
Flutter web is a different story.
Mobile app development is considered stable from Flutter perspective.
However, Flutter web can be used in production, but there are a couple of caveats to consider.
For example, only recently Flutter web got support for hot reload and still runs on Skia renderer.
But let’s look at the facts.
Facts to consider
- Download size - Flutter web apps are usually larger in size because they have to include the whole Flutter engine and framework to run the app. It can take multiple MBs to download the app.
- SEO - Flutter web is not SEO friendly, because it renders everything on canvas. It is not indexable by search engines.
- Accessibility - Flutter web has limited support for accessibility. It is improving, but still not on par with native web apps.
- No server-side rendering - Client-side must download the whole app and render everything on the client side. I recommend watching this video from Fluttercon EU 2025
The size and lack of indexing are the main concerns for Flutter web and unfortunately, there are no solutions for them.
When to use Flutter for web?
Flutter is great for rendering complex UIs and you can build great web apps with it.
Since you render everything on canvas, it is an advantageous solution for apps with heavy graphics and custom UI.
For example any media editing app, maps, design tool, game or anything similar.
That is why Google Earth is built in Flutter. Or for example Rive app for animations is built with Flutter.
The trick that they use is to have static landing page, which is SEO friendly and then load the Flutter app for actual usage.
So hybrid approach is the way to go for Flutter web.
Even my personal blog is built with Astro and Tailwind, not Flutter. It would be overkill to use Flutter for static site.
Case against Flutter for web
Many people cannot get over that Flutter does not use any sort of DOM and renders everything on canvas.
It is true, and the creators of Flutter made this decision on purpose.
The main reason is performance and consistency across platforms. By drawing everything on canvas, they can optimise the rendering and have the same look and feel across all platforms.
It is perceived as a disadvantage, but I think it is just a mindset shift.
For regular web apps, use React, Astro, Svelte or any other framework that uses the DOM. For complex UIs and graphics-heavy apps, use Flutter.
They do not compete, they complement each other. Based on your use case, you can choose the right tool for the job.
Impeller and accessibility are on the roadmap for Flutter web, so it will get much better over time.
Socials
Thanks for reading this article!
For more content like this, follow me here or on X or LinkedIn.