Flutter caught my eye a few years ago

Dart - if Java and TypeScript had a child

Dart is a relatively new language that I've personally only seen being used for Flutter development. It can also be used for server-side code that would allow your entire stack to be written in Dart - Flutter on the frontend, "Shelf" or "Dart Frog" on the backend.
I see a number of similarities with Java and TypeScript. If you are already familiar with either of these languages, you will be able to pick up Dart very quickly.

VS Code is great for Flutter development

I'm usually an IntelliJ developer for everything (JS devs please don't hate me, but I find PHPStorm is better for React Code than VS Code). However, for Flutter, nothing comes VS Code really shines!
The Flutter/Dart team have done a great job building the extensions for VS Code, making for a pleasant development experience.

Development experience is great

The development experience with Dart and Flutter is generally very good. The tools are well-designed and easy to use, and there is a large and active community of developers who are always willing to help.
One of the things that makes the development experience so good is the fact that Dart and Flutter are both very fast. Dart code is compiled to native code (cough cough), which means that Flutter apps can run as fast as native apps.

Material UI is a blessing and a curse

Material UI is a the default UI library for Flutter (you do have Cupertino but it personally feels like a second-class citizen). It provides a number of pre-built widgets that make it easy to create beautiful and responsive UI designs - even if you don't have a keen eye for design.
One of the best things about Material UI is that it is very easy to use. The widgets are well-documented (most of the time).
Another great thing about Material UI is that it is very customisable. You can easily change the colours, fonts, and other aspects of the widgets to match your own design.
However... overriding the default styles of the widgets can be a pain - e.g. if you don't want an "Inkwell", removing it from some components can be difficult (I'm thinking of you, NavigationRail). This can make it somewhat difficult to create a custom look for your app.


Overall, Dart and Flutter are a great choice for developing mobile and web applications. The development experience is excellent, and the tools are well-designed and easy to use. Material UI cool, but if you want to use it, try have a design optimised for it!