Seven years ago, Google presented a new framework called Sky. Sky used Dart to create Android apps as an alternative to Java. It’s hard to believe that in a short time, Sky evolved into Flutter. And as of today, Flutter raises the bar by announcing stable Windows support.
Stabilizing support for the Windows platform gives Flutter millions of potential new users. Being able to code for Windows along with iOS, Android and the web — all from a single codebase — makes Flutter worth considering on your next big project.
Why Is This a Big Deal?
Back in the day, writing multiplatform apps was hard. You had to either learn a native language and tooling or use a cross-platform language like Java. Both approaches had significant drawbacks.
Native app development required domain knowledge about the preferred language and its tooling. On the other hand, a cross-platform language like Java provided a one-size-fits-all solution — but apps that used it felt out of place on the host platform because they didn’t adhere to all the home OS’s conventions.
Frameworks like Electron sprouted to solve this issue… but in doing so, they created a new set of problems. These frameworks work by embedding browsers in the binary, which results in high resource usage and poor performance. Companies such as Slack and 1Password have upset their user base by using them.
Flutter avoids this problem by compiling your Dart code into native machine code. Now, instead of including a complete web browser in your app, you get a small executable that’s both fast and performant. Better yet, the Flutter community has provided installation tools that give users the install and uninstall support they expect.
To the end-user, the app looks and feels like a typical Windows program.
What About the Rest of Flutter?
The Flutter developers over at Google have been busy indeed! With the release of Flutter 2.10 not only do we get stable Windows support, but they added a bunch of additional features to the rest of the platform. There’s been a whole bunch of performance improvements. iOS added smoother keyboard animations along with reduced memory usage. Android now supports the latest version, but better yet, Flutter now suggests steps to resolve common Gradle issues. Finally, this release of Flutter starts the transition to Material 3 which is Android’s latest design system.
For more information about Flutter changes, please see the official release notes.
How Does Flutter Work?
Flutter is an open-source software stack with an application layer residing at the top of the stack. You compose your user interface from a collection of widgets, very much like you do with SwiftUI or Jetpack Compose. You write everything using the Dart programming language.
Underneath the application layer is the Skia rendering engine. This engine draws your widgets rather than wrapping native widgets, making the user interface snappy and performant.
Themes provide the platform widgets — and you have several themes to choose from when you work with Flutter. The Fluent theme produces Windows-looking apps, but nothing’s stopping you from using other themes. For example, if you wanted your Windows app to look like an Android one, you’d use the Material theme. However, keep in mind that using a theme that’s different from what they expect might be jarring for your users.
Finally, underneath the engine layer is the actual platform code, written in C++. The platform code manages the user input as well as the system and graphic calls. It also provides all the various services available on the host platform. For instance, if you need to provide camera functionality, Flutter exposes that functionality to you using packages. With this latest Windows release, Flutter provides a ton of packages for you to use.
If a package isn’t available, you can write one yourself and publish it to pub.dev. That’s the beauty of the Flutter ecosystem — being open-source, everyone benefits.
What About macOS and Linux?
At the moment, you can develop apps for both macOS and Linux, but both of those platforms are still in beta. In the coming years, you’ll probably see those platforms moved out of beta and into stable release.
How Do I Start?
raywenderlich.com provides a wealth of Flutter learning materials. Google even endorsed our own Flutter Apprentice book.
You can also check out our Flutter tutorials. For example, Getting Started With Flutter will give you a head start on building your first Flutter app.
We also have a variety of Flutter and Dart video tutorials to get you off the ground floor to develop your own app.
Where to Go From Here?
If you are curious to learn about the Flutter announcement, you can rewatch the announcement on YouTube.
For the official word on everything related to Flutter development, head to flutter.dev.
Finally, keep checking back here for more Flutter news and tutorials.
We hope you’ve enjoyed this article. If you have any questions or would like to share your own Flutter on Windows experiences, please join the forum discussion below!