Photo by James Wainscoat on Unsplash
5 reasons you should choose Flutter for Desktop development on Windows and macOS
3 min read
Flutter is a tool for cross-platform development of applications. From a single codebase, a Flutter app can be deployed to mobile, web, and desktop. Flutter is a great choice for desktop development due to a number of reasons:
Reasonably large and active communities
FlutterDev channel on Discord is very active with channels addressing different concerns like state and architecture, UI and layout, android, ios. The members are friendly and usually helpful. FlutterDev on Reddit is also very active with over 87,000 members also very active and helpful. When starting development with Flutter I would advise you to join these two communities.
Actively developed on Github.
The Flutter Github project is quite active. How active a project on Github is, is a concern when trying to pick a platform. How quickly bugs are fixed depends on the activity on Github, improvements, etc. The flutter team actively works on the project as well as contributions from the community. As of this writing, the last commit was a few hours ago.
pub.dev is the official repo for Dart and Flutter packages. Now it's not on the same level as Python's PyPI or JS npm but the number of packages is growing. You can find a package for almost any need you have. Specifically for desktop development, I encourage you to check out MacOs UI and Fluent UI packages which provide widgets with a native look and feel on MacOs and Windows.
Backed by Google.
This is a very important factor. It takes money and talent to create a great platform and being backed by big tech is a great plus. Google is using it for customer-facing products such as Google Ads which shows their confidence in the platform. This encourages large players to adopt the platform as well. In the case of Flutter, large companies are using it such as Alibaba, eBay, and Groupon.
Dart is the secret sauce behind Flutter. Dart can compile to native code on different platforms such as ARM code on mobile and x86 code on desktop as well as JS on the web. This makes Flutter apps performant on the various platforms in terms of speed and memory usage. This can help increase customer satisfaction for your product. Dart has great tooling on the IDEs developers commonly use such as VS Code, Vim, and Android Studio. Being statically typed helps catch common bugs at compile time rather than runtime. Dart is also relatively easy to pick up for developers coming from languages such as JS, Python, Java, etc.
I hope these reasons help you in making your decision about the platform to use for your next desktop app. I am currently using Flutter to develop a desktop app for offline developer tools called DevBunny.