Your submission was sent successfully! Close

What FlutterFire’s announcement means for Desktop Developers

Oliver Smith

on 9 December 2021

At Canonical, we love Flutter and we can’t stop talking about it. Our Flutter developers have been working on bringing support to desktop operating systems since July 2020.

This includes our new Ubuntu Desktop installer, built with Flutter, which will be the default user journey in our upcoming 22.04 LTS release. (If you want to see how it’s coming along you can test it out here.) 

Continuing our Flutter journey, we recently partnered with Invertase to bring FlutterFire support to Desktop and Dart. In this blog post, we’ll go over what Flutter’s Firebase announcement means for desktop developers, how to get started with Flutter on Desktop, and where to go to keep an eye on this exciting project!

Okay, but what is FlutterFire?

FlutterFire is a set of official plugins that connect your Flutter application to various Firebase services. Firebase is a collection of tools that provide common services such as analytics, authentication, databases, and push messaging, amongst many other things.

These tools allow developers to leverage common functionality in their Flutter applications, saving development time and effort.

As part of Flutter 2.8, most of these Firebase plugins have now moved from Beta to Stable quality for Android, iOS, web and macOS platforms. This means developers can leverage these services across their target platforms with the confidence that they’ll all ‘just work’. This frees up time for them to focus on the things that make their app unique rather than re-implementing existing services.

You can read more about this work in the latest Flutter blog.

What about Linux and Windows?

This is where our partnership with Invertase comes in! Whilst macOS is similar enough to iOS to leverage the same Firebase iOS SDK, Windows and Linux have no SDK of their own.

And currently the Firebase C++ SDK only provides basic support for integration with Firebase.

Ultimately we want Flutter developers to have an end-to-end Dart experience across any platform and the Invertase team has risen to this challenge by developing a pure Dart SDK for Firebase. Right now this includes a Dart only initialisation flow along with a nifty command line tool to help with Firebase initialisation.

“We’re really excited to be working with Canonical, using our knowledge of Firebase & Flutter to build the Firebase integrations for Linux & Windows. Our long term vision is for FlutterFire to seamlessly integrate with all of the Flutter supported platforms.” 

Elliot Hesp, Invertase CEO

Currently the Invertase team are prioritising firebase_core, a prerequisite to initialise Firebase. This is followed by firebase_auth, which provides backend services to authenticate via third-party providers such as Facebook, Twitter, Github and Google, as well as bespoke account systems. You can view these features using the demo app provided in the next section!

How can desktop developers get started with Flutter?

Whilst support for Desktop is still in beta, Flutter developers can enable desktop support today via the following flutter config:

$ flutter config --enable-linux-desktop

For more information on the additional Linux requirements, check out the official documentation here.

In the meantime, the Invertase team have put together an example desktop app based on firebase_core and firebase_auth using the Ubuntu Yaru theme as a guideline for getting started with Firebase.

To get up and running with this app on Ubuntu, follow the instructions below:

Install Flutter

$ snap install flutter --classic
$ flutter config --enable-linux-desktop
$ flutter doctor

If everything is OK, you should see something like this:

[✓] Linux toolchain - develop for Linux desktop

Install dependencies

cURL, Node.js, and NPM:

$ sudo apt install curl nodejs npm

Firebase tools CLI:

$ curl -sL https://firebase.tools | bash

Melos:

$ dart pub global activate melos
$ export PATH="$PATH:$HOME/.pub-cache/bin"

Get the source code

$ git clone https://github.com/invertase/flutterfire_desktop.git
$ cd flutterfire_desktop

Get Dart dependencies

$ melos bootstrap

Run the Firebase emulator

$ melos run firebase:emulator
$ xdg-open http://localhost:8080 

Run the example

$ cd packages/firebase_auth/firebase_auth_desktop/example
$ flutter run -d linux

It should look something like this:

The community are also on Fire(base)!

One of the great things about FlutterFire Desktop is the involvement of the community. We wanted to take a brief moment to shout out Tim Whiting’s work on a dart implementation of cloud_functions, which has been a fantastic recent addition to the project!

Follow FlutterFire Desktop

The GitHub repository for FlutterFire Desktop can be found here.

Follow Invertase for updates on the Firebase Dart SDK.

Check out the Flutter Blog for all the latest news on Flutter.

Finally, don’t forget to keep an eye on the Ubuntu Desktop Discourse for progress on our new Installer, as well as various community Flutter initiatives including Yaru theming and an exploratory Ubuntu Settings App!

Ubuntu desktop

Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.

Newsletter signup

Select topics you're
interested in

In submitting this form, I confirm that I have read and agree to Canonical's Privacy Notice and Privacy Policy.

Related posts

Raspberry Pi Tutorial: Host a Minecraft server on Ubuntu Desktop

Welcome to the second in our series of Linux gaming posts in the run up to the holidays. This week, we’ve put together a tutorial that teaches you how to...

Flutter and Ubuntu so far

At Flutter Engage, Ken VanDine, engineering manager for the Ubuntu desktop,  made an appearance in the keynote speech to talk about Flutter on Ubuntu....

Canonical enables Linux desktop app support with Flutter

By Chris Sells (Google) & Ken VanDine (Canonical) Google’s goal for Flutter has always been to provide a portable framework for building beautiful UIs that...