August 2022: Complete Flutter Course, Native vs Cross-Platform Apps, Flutter Vikings

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.

Latest on Code with Andrea

Since the last newsletter edition, I've completed my Flutter Foundations course, shared some new Flutter tips, and published two new articles about error handing.

Here's a summary. 👇

🎓 Flutter Foundations course now complete

Without a doubt, Flutter is an excellent UI toolkit.

But real-world application development is hard and goes well beyond building UIs.

And since app architecture, state management, and testing are so important, I've covered them extensively in my latest course, and earned some great reviews:

Best Flutter course ever!
Source: Twitter

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.

📝 Flutter Exception Handling with try/catch and the Result type

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 try, catch, and throw for handling errors and exceptions in our apps.

But if we forget to use try/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:

📝 Functional Error Handling with Either and fpdart in Flutter: An Introduction

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:

Flutter Top Picks

Here are the most interesting things I spotted in Flutter-land over the last month. 👇

🗞 Notion migrating from web to native apps

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 5.0 is coming and it looks awesome! But when?

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. 👍

🛠 Dart Frog is now stable

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:

🧱 Flutter Shaders

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.

They are written in the GLSL language, and they need to be compiled to Dart before they can be embedded in a Flutter app, using packages such as shader or umbra.

For an introduction to shaders in Flutter, check this video:

📅 Don't miss: Flutter Vikings

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. 👍

Until next time

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. 👇

Happy coding!


Want More?

Invest in yourself with my high-quality Flutter courses.

Flutter Foundations Course

Flutter Foundations Course

Learn about State Management, App Architecture, Navigation, Testing, and much more by building a Flutter eCommerce app on iOS, Android, and web.

Flutter & Firebase Masterclass

Flutter & Firebase Masterclass

Learn about Firebase Auth, Cloud Firestore, Cloud Functions, Stripe payments, and much more by building a full-stack eCommerce app with Flutter & Firebase.

The Complete Dart Developer Guide

The Complete Dart Developer Guide

Learn Dart Programming in depth. Includes: basic to advanced topics, exercises, and projects. Fully updated to Dart 2.15.

Flutter Animations Masterclass

Flutter Animations Masterclass

Master Flutter animations and build a completely custom habit tracking application.