« Blog

FlutterFire - now with sound null safety

Russell Wheatley

Russell Wheatley

Software Engineer
Post Image

Today we're announcing updates to FlutterFire and it's migration to Dart sound null safety.

Hey everybody, my name is Russell and I’m a software engineer here at Invertase. My role is to provide support across the software tools we use and maintain. The primary focus of my attention falls on FlutterFire which is a set of high quality plugins designed to help developers integrate their Flutter projects with Firebase services. 

If you’re in the Flutter ecosystem, you will probably be aware of the migration to null safety. If you’re not sure what I’m talking about, I highly recommend reading this deep dive into why null safety is so exciting for Flutter developers.

The null safety announcement was a double edged sword. As plugin maintainers, we’re very happy to see developments in the tooling that will make developing Flutter apps even better. But the changes required maintainers to review every bit of their plugin’s API surface and update with the appropriate nullability types and hope everything goes smoothly. The FlutterFire repo houses roughly 40 packages with an initial 20 packages which had to be migrated to sound null safety by Invertase 😅. All in all, we spent approximately 3 months thinking, planning and migrating these packages.  

Today, we’re very happy to announce a significant milestone with this work - we've shipped 20 FlutterFire packages to a stable null safety release 🎉. Along with these releases we've also significantly restructured the documentation hub to make the distinction between legacy package versions and null safe package versions clearer. You'll find tabs throughout the documentation that will allow you to switch between these versions. For a list of the null safe versions check out the new null safety documentation page.

If you're curious on the tooling that has allowed us to manage and ship these releases all at once, checkout Melos. Melos was developed with the specific aim of taking the pain out of orchestrating multiple plugins within a mono-repo. It can interlink packages together without dependency overrides and also version/publish packages with the stroke of a few commands. This reduces the likelihood of human error, allowing us to sleep that bit more soundly (null safe sound? 😄. I’ll get my coat.). We consider it indispensable to maintaining the FlutterFire repo.

If you have any questions or comments on FlutterFire or any of the other projects we work on, please get in touch.