‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌   ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ 

Issue 06 (10/04/2021)

Open the newsletter in your browser


A little support :)

The Flutter Croissants newsletter is starting to grow and I want to thank you all for sharing, as the number of subscribers keeps growing every week 🥰.

Behind each edition, I spend several hours trying to unearth the best content for you. All this takes time and what started as a small hobby in a corner, is now becoming very important. But all this has a certain cost… and that's why I'm appealing to you through donations.

Don't worry, the idea is to keep the newsletter free for everyone. If you want to perpetuate the Flutter newsletter, or even more, don't hesitate to give your support on Patreon. It starts at 1€/newsletter, much less than the coffee that goes with your croissants 😜.

The news

Image go_router: Navigator 2.0 made easy

Navigator 1.0 was not satisfactory
To switch screens on Flutter, you need to use the component called Navigator. In its first iteration, it was certainly simple to use, but had some limitations, such as the fact that it is used in an imperative way and is not a Widget. For Flutter Web, history management is also complicated, especially if you want to add intermediate pages.

But Navigator 2.0 is too complex
Faced with the criticisms of Navigator 1.0, Google then sought to fill in the missing functionalities, by creating what is known as Navigator 2.0. But unfortunately, we went from a very simple code in version 1, to a lot of code to write. As a result, many libraries in the community have tried to provide a solution by simplifying the implementation.

An "official" solution
It is now Google's turn, or rather one of the team's engineers, to propose its solution. It has just published a package flag_lng allowing to simplify the use of Navigator 2.0. According to the official description:

The purpose of the go_router is to use declarative routes to reduce complexity, regardless of the platform you're targeting (mobile, web, desktop), handling deep linking from Android, iOS and the web while still allowing an easy-to-use developer experience.

Image Apple increasingly criticized

It all starts with the Accessible Hangman app
Early last week, the developer of the Accessible Hangman, the developer of the Accessible Hangman game, had his app removed in an update on the grounds that it was too similar to other apps in the App Store. While his hangman app is not unique, it is the only one optimised for the visually impaired. Despite his pleas, nothing seems to change the validation team's mind.

Then the bug bounty issue cropped up again
Another developer has made a name for himself with a blistering article. The idea of bug bounty programmes is to allow hackers who have found security flaws to communicate with the publisher upstream, so that it can correct them. In return, companies offer a financial reward.

Not so Apple: either they fix the flaws "on the quiet", by not crediting the person who discovered them, or they don't fix them at all! Finally, the developer recaps the ways in which App Store checks can be easily circumvented, proving that nothing is infallible.

Apple (finally) allows you to rate installed apps
Until now, pre-installed applications such as the email client, Apple Maps… could not be rated on the App Store. It is now possible and they are not very successful, to say the least. In general, they are rated between 2 and 4 stars!

Image From prank to reality

StackOverflow: all developers' ally
No need to present the StackOverflow website. It has existed since 2008 and was bought last June by Prosus for the modest sum of… 1.8 billion dollars! StackOverflow is best known for its code snippets that many developers copy and paste without really looking at the content.

A prank…
On 1 April 2020, the site had set up a popup that was displayed as soon as the "Copy/Paste" command was used. The user was then invited to buy a keyboard called The Key, containing only three keys: StackOverflow and the letters C and V.

… to reality
This April Fool's joke was very well received, so much so that many comments asked if it was possible to buy this notorious keyboard. And finally StackOverflow teamed up with Drop, a keyboard manufacturer, to make it happen. Available at $29, you can buy it, provided you add $15 for shipping (depending on your region). Note that 5% of the proceeds will go to digitalundivided initiative, a non-profit organization that promotes black & latina women entrepreneurs.

Miscellaneous news in brief

⏫ A new stable version of Flutter is available: 2.5.2 (changelog flag_lng). It fixes three bugs, including the slow operations on IntelliJ. Dart 2.14.3 is also available and fixes two bugs.

✨ On the Pull Requests side, we can note:

  • The Material You Navigation Bar Widget (or Material v3) is now fully completed (PR #83047 flag_lng)
  • The Material Banner has some improvements: a slide animation or then again the elevation support (PR #90380 flag_lng)
  • The Auto-fill mechanism (automatic filling of passwords, addresses, first names…) will change from an opt-in to an opt-out mechanism, i.e., it will be active by default and you will have to ask for its deactivation. Today it is the opposite (PR #85554 flag_lng)
  • The DraggableScrollableSheet flag_lng Widget will have a snapSizes attribute allowing to define several steps. When the user stops the scroll gesture, the widget will move to the closest position (PR #84394 flag_lng)
  • The Scrollbar flag_lng will finally get closer to the native behavior: without having scrolled and if the mouse goes to the Scrollbar location… it will be visible. Today you have to start scrolling for it to be displayed afterwards (PR #90636 flag_lng)

💶 A hackathon Dart/Flutter will take place from 22 to 24 October with $5000 in prizes at stake.

🕹️ Flame, the engine for designing games in Flutter will offer its fourth "FlameCon" conference on 13 October. The stream link is already available.

🔁 As of December 31, the official Dart Docker images will change address and will have better performance and smaller size. The new link will be this one.

🔖 Looking for an example of an application in production on Flutter Web? Supernova, a tool for creating design systems, has just been released.

📃 To help you get started with Fuchsia, new guides have just been published on the official website: "Introduction to Fuchsia", "Building Fuchsia", "Fuchsia Components" and "Fuchsia Interfaces".

📅 Google has just announced four online conferences: the Android Dev Summit (27 and 28 October), the Firebase Summit (10 November), the Google Smart Home Developer Summit (21 October) and finally the Chrome Dev Summit (03 November).

🤖 After many years of doing "its own thing", Android will use the "main" version of the Linux kernel in 2023.

📏 If you have an existing iPad app that has the UIRequiresFullScreen=YES attribute, consider recompiling it with the latest SDK to to fit the new iPad mini.

🎨 SF Symbols, the icon pack provided by Apple, is now available in a new version flag_lng with 600 new items. In Flutter, you can use the cupertino_icons package flag_lng, but it has not been updated yet.

🥱 Apple finally wakes up and will support the API called PushEvent in WebKit. It allows you to manage pushes and display a notification in a WebView.

📱 Android 12 hasn't been released yet, but there is already interest in version 12.1, which would be dedicated to folding/foldable screens. XDA-Developers has compiled a version from open source code and shows what we can expect in terms of UI.

🐌 Firebase Crashlytics will now monitor for "application no longer responding" (or ANR) errors. The feature is available in alpha version, provided you fill out this form.

🤑 Very good news for AppWrite, the open source competitor to Firebase, which just raised $10 million.

🏢 A study looks at the best cities for software engineers. Worldwide, Berlin, Tel Aviv and Montreal came out on top.

🤖 Gitpod, GitLab, VMware, Uber, SAP, Sourcegraph, RStudio and SUSE just announced OpenVSCode Server, which lets you run a VS Code instance on a remote machine and access it from your browser.

📚 The company behind the famous SonarQube offers a free ebook "Building mobile apps at scale" which looks at the many challenges facing mobile applications. Of course, solutions are proposed for each case.


Did you know that?

Ever wonder why the "Snooze" feature on iOS is 9 minutes and not 10? Historically, it was a mechanical reason that constrained early alarm clocks… but that eventually persisted over time.

At the same time, numerous studies have shown that this duration is the most relevant to prevent the body from falling back into deep sleep state. Apple is really digging into the details!

Dart/Flutter articles and tutorials

Tips & tricks

Image Tips

Dart/Flutter libraries

Lib open_route_service

open_route_service : Accessing the Open Route Service APIs

Android iOS Web Linux Mac Windows

Open Route Service is a set of APIs based on OpenStreeMap data. It offers you directions with several modes of transport (car, truck, walking…), isochrones (accessible areas around a given point), geocoding, POIs… This library makes network calls for you.

Lib swipe_deck

swipe_deck : IMessage image deck available to all

Android iOS Web Linux Mac Windows

On iOS 15, iMessages now displays a beautiful image carousel. This package mimics it perfectly for your Flutter apps.

Lib screen_capture_event

screen_capture_event : Get notified when screen is captured

Android iOS Web Linux Mac Windows

Whether on Android or iOS, do you want to be notified when a screenshot is taken or recording is in progress? This library will provide you with the information! On Android, you will also be able to enable or disable safe mode, which prevents the screen from being captured.

The tools

Image Outil DCli

DCli : Dart applications on the command line

DCli is a tool that allows you to quickly create command line applications (CLI) or even scripts. Everything is coded in Dart, so you don't have to learn yet another language or use Bash scripts for example. You can use this video flag_lng to find out how to use it.

Image Outil Smooth Shadow

Smooth Shadow : Test shadow boxes in your browser

In Flutter, as on the web, you can easily apply shadows. This online tool allows you to see the effects of blur, radius and distance. Very useful!

Image Outil SQlime

SQlime : Using Android applications on Linux

When it comes to SQL, SQLite is the reference database on mobile phones. Its advantages: it can be stored in a single file, while benefiting from many of the features of "classic" SQL databases such as MariaDB.

SQLime can help you test queries without worrying about wreaking havoc on your application. Entirely online, you just have to give it the file and you can test your SQL queries (read or write). Another interesting feature is the ability to share your queries.

The video

Image A discussion with Nilay Yener

A discussion with Nilay Yener

You may have noticed what a great family Flutter is, with a close-knit and caring community. None of this would be possible without the huge contribution of Nilay Yener (Google), who works behind the scenes to make it all possible. She is interviewed in a podcast where she managed to do this and gives lots of advice along the way. Thanks Nilay 💙.

Job offers, assignments and internships

In partnership with Flutter Jobs

Senior Mobile Developer, Flutter (or keen on learning it)

IDT - Helsinki, Finland or Remote in Europe

Want to build applications used by millions of customers - to keep in touch and share resources with their friends and family around the world? We are looking for a senior mobile developer to join us developing the next generation version of our BOSS Revolution Money Transfer app. This position requires strong interest in Flutter, but your background can be any mobile platform. If you already know Flutter, great. If not, that's ok too - we're looking for smart people who are also quick learners. The code must flow.

Experienced Flutter Developer (Part-Time)

BloomCatch, Inc. - Remote - company in DC, USA

Looking for an experienced mobile application developer with proven Flutter experience. Minimum 5 years of software development experience. Potential candidate must also be a great communicator, experienced with working in a multi-disciplinary team. Some startup experience would be a plus, but not required. Candidate must be willing to commit at least 3 months to the job.

Are you looking for a Flutter talent? Send them to Flutter Jobs!

Upcoming events






Flutter Kaigi

08-09 December


Flutter Global Summit
Your opinion on this issue