Flutter for desktop announced, a competitor to Electron?
Flutter is a great tool from Google to write native apps that run on both iOS and Android.
Flutter apps are written in Dart, a language that is so similar to JavaScript that you can pick it up in an evening if you know JavaScript, but adds lots of features on top, including a sound typing system.
Dart can also be used to write web apps for example with AngularDart, and it can be used to write command line applications. Since everything is written in the same language, you can share a lot of code between the different platforms and save a lot of time.
But one piece was still missing to make this a complete cross platform solution for creating apps, and that's support for creating desktop apps that run on macOS, Windows and Linux.
Flutter for desktop
Simon Lightfoot and Norbert Kozsir have been working on a "desktop embedder" for Flutter to make this a reality, and they just announced it in a blog post on Medium.
This doesn't just allow you to create desktop apps with Flutter, it also is an alternative to using the Android emulator when writing your mobile apps. The Android emulator can take a few minutes to start. With Flutter for desktop it takes seconds. The Android emulator eats 1 GB of RAM easily, with Flutter for desktop it's just 100 MB, so you can suddenly develop Android and iOS apps on very low end devices. It still offers all the hot reloading and debugging goodness you've gotten used to from Flutter development though, so there doesn't seem to be a drawback to using it.
The project hasn't been released yet, the blog post only says it'll be released "soon" and is "still super alpha", but it's great to see that someone has picked this idea up.
When Flutter came out, many people (me included) really liked it but wanted to use it to build Desktop apps. Google however was unsure if they'll ever support that.
Dart & Flutter?
If you've never heard about Dart or Flutter, check out my earlier articles about them here:
The Flutter article also includes a very short tutorial with lots of screenshots of the development process so you can see what working with Flutter is like (just ignore the installation instructions for Flutter, the article is a year old so they're probably not applicable anymore, check the Flutter website instead).