Between all my articles, tweets, and Flutter courses, my time has been flying, and I can't believe it's already August!
You may have been busy too, so I'll do my best to condense the most relevant Flutter news from the last month.
Here's a summary. 👇
Get Doppio Today. A fully managed API for developers that enables you to generate beautiful PDF or screenshots and store them directly in your own S3 bucket without compromising privacy.
Without a doubt, Flutter is an excellent UI toolkit.
But real-world application development is hard and goes well beyond building UIs.
As of today, the course is complete with 12 modules and 13.5 hours of content! 💯
To find out more and advance your Flutter skills, you can buy the full course today:
Note: the price will increase to $129 on the 19th of August.
When we run a Flutter app, many things can go wrong.
The user may enter an incorrect input, a network request may fail, or we could have made a programmer mistake somewhere, and our app will crash.
And the Dart language offers primitives such as
throw for handling errors and exceptions in our apps.
But if we forget to use
catch, we're likely to encounter unhandled exceptions at runtime.
And by borrowing the
Result type from other languages such as Kotlin and Swift, we can leverage static analysis and the type system to deal with errors explicitly:
In addition to the
Result type, there are many different packages that can help us handle errors explicitly.
In particular, I have been exploring the fpdart package, which brings all the main functional programming types to Dart.
fpdart is well documented and very well suited for robust error handling using the
Either type. And this article offers a good introduction:
Here are the most interesting things I spotted in Flutter-land over the last month. 👇
When a big company like Notion announces moving to native for their iOS/Android app, we ought to pay attention.
Just to be clear, the Notion team is replacing the old web views with native components and does not use Flutter (though if you're curious, here's an open source alternative to Notion written in Flutter and Rust).
And perhaps it's not surprising that moving from web to native can make an app 2x or 3x faster.
But the Notion announcement stirred up some interesting comments on Twitter and follow-up articles.
In particular, I enjoyed this overview of the decision-making process when choosing between cross-platform and native apps:
Flutter definitely has a role to play here, and I look forward to seeing how things pan out in the coming years.
GoRouter has been my navigation package of choice for over a year, and I really like its simple API.
But it has been missing some critical features, and this proposal aims to fill all the gaps:
What's more, this issue on the Flutter repo outlines all the planned work for v5.0:
I'm very excited about this, and I hope that when v5.0 lands, we'll also get up-to-date documentation.
Either way, I'll be writing more GoRouter tutorials in the future. 👍
Fresh from the oven: we can now start to play with the first "stable" version of Dart Frog.
If you missed the original announcement, Dart Frog is a minimalistic backend framework for Dart. Its goal is to help developers build full-stack Flutter apps with a unified tech stack.
This stable version brings many improvements, and you can find out more in the official announcement:
What's more, the Dart Frog docs site now contains step-by-step tutorials to help you get started:
Over the last few months, there's been a lot of interest in bringing shaders to Flutter.
Shaders are small programs that run directly on the GPU, allowing us to deliver high-performance, custom graphics effects.
For an introduction to shaders in Flutter, check this video:
Flutter Vikings is the biggest Flutter conference in Europe, taking place on 31 Aug - 1 Sep in Oslo, Norway (and online too).
The speaker line-up is as good as it gets, and I cannot wait to tune in!
Whether you plan to attend online or in person, make sure to grab a ticket.
And for all the additional details, check the official website:
While I won't be there in person, I'll make sure to watch all the sessions and publish a summary next month. 👍
I hope you've enjoyed this newsletter.
And if you'd like to receive the next ones directly in your inbox, you can sign up here. 👇