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

Issue 12 (11/15/2022)

Open the newsletter in your browser


💙️ Support the newsletter 💙️


The news

Image Results of the third quarter Flutter satisfaction survey

Like every quarter, Google surveys Flutter developers to readjust its roadmap. In this iteration the focus is on Flutter for the web, where projects targeting this platform now represent 12% of launches.

Qualified as stable since March 2021, 86 percentage points of respondents are satisfied with this technology (63% positively + 23% very satisfied) and the rate even rises to 90 percentage points, as regards performances.

Areas for improvement
Although these rates are high, it appears that the initial loading time (48%) and scrolling (32%) remain the two main problems in terms of performances flag_lng.

Generally speaking, on the Flutter Web technology, the desired improvements are around SEO (36%), the size of deliverable (27%), the scroll (24%), the execution of the code in the background (23%) and the possibility to have an add-to-app functionality (23%)

Documentation is satisfactory
Generally speaking, access to source code flag_lng is a real positive, with 37% of developers searching for it every day, and 70 percent accessing it every week. For the most part flag_lng, it's all about understanding the implementation and the different parameters offered. The proportion of copying and pasting code examples is around 20%.

Other statistics are to be found in the third quarter survey flag_lng, but I think that the sample surveyed is still very enthusiastic…

Image Ubuntu continues its adoption of Flutter

An ever-closer link between Flutter and Canonical
After an initial success in recreating the Ubuntu graphical installer with Flutter, Canonical, the company behind this successful Linux distribution, has announced that it will use the framework as a reference for all its new projects. Thus, the System Settings application is being switched over and future developments will follow the same path.

A firmware update tool
fwupd flag_lng is a tool to update your computer firmwares directly from Linux (e.g., your network card, an 8BitDo controller…). Together with this tool, we find LVFS flag_lng (for Linux Vendor Firmware Service) which enables manufacturers to securely upload the said firmware. Until now, a graphical tool for Gnome was available.

A graphical interface in Flutter
Browsing the various Canonical repos on GitHub flag_lng, we notice a project named firmware-updater flag_lng. It seems to want to offer an alternative to the Gnome application, in order to offer a better integration to the system.

A first screenshot (on the front page of this news) has also been shared and shows that the project is still in its infancy. According to information gleaned here and there, the project started in August and should probably be distributed on snap eventually.

Image Firebase Summit announcements

On November 10th, Firebase organized its annual Firebase Summit event. Once again in a 100% online format, several announcements are interesting for Flutter developers.

tvOS and macOS in beta
Rather mobile-oriented, Firebase is now open to Apple's TV boxes, as well as macOS. You'll find access to Crashlytics to quickly identify bugs.

The DartPad is partly Firebase compatible
The dependencies that can be used on the DartPad flag_lng are relatively limited, but some new ones have been added to the catalog: those for databases (Database & Cloud Firestore), push via FCM, or authentication via Firebase. You even have an example flag_lng where you can test how Cloud Firestore + Auth works.

A plug for the Google Play
In a few months, Google Play will show users a new "Data Safety" section where each publisher will have to be transparent about how data is collected and (eventually) shared. If this data is stored and managed in Firebase, documentation flag_lng is now available to help you fill out the form.

But also…
This had already been shared in previous issues of the newsletter, but please remember that in the Performance Monitoring tool you can now find alerts when specific thresholds are reached (e.g.: the application launch suddenly becomes slower), in Crashlytics alerts in case of "The application is no longer responding" message on Android or the signals feature and finally the support of Cloud Firestore in App Check

Image Apple makes the headlines

Apple has marked the last week with many news. Here is a summary of the main ones:

Apple ordered to allow alternative payment solutions
The first part of the famous Apple vs Epic Games trial was wrapped up a few weeks ago. As both parties have appealed, a second act will take place later. As a result, Apple thought it could proliferate in its corner, having asked to suspend the injection to enable app developers to no longer go through its own payment system. But it turned out not to be the case, the American justice does not grant any delay and from December 9, the developers will have to do otherwise.

Apple still against "sideloading"
Apple does won't budge: the installation of apps on iOS must only go through the App Store. Sideloading (= outside the app store) is a pet peeve of Epic Games, which would like to offer an alternative with lower costs.

This week, Tim Cook once again reiterated his disapproval flag_lng, stating: "If you want to sideload, you can buy an Android phone". "From our point of view, it would be like if I were an automobile manufacturer telling [a customer] not to put airbags and seat belts in the car. He would never think about doing this in today's time. It's just too risky to do that. And so it would not be an iPhone if it didn't maximize security and privacy."

Miscellaneous news in brief

⏫ A new beta Flutter version is available: 2.8.0-3.1-pre. The stable should land anytime soon !

The creation of this newsletter takes me several hours each week.

You want to support the project and allow it to last in time? For that, you can donate from 1 euro on Patreon!

Support-me on Patreon

✨ On the Pull Requests side, we can note:

  • We will finally not have to rely on the AppModel class flag_lng, but SharedAppData, because the name was too common. As a reminder, it allows to easily propagate data in key/value form to child widgets (PR #93175 flag_lng
  • If you are using Visual Studio 2022, running Flutter applications was no longer working, unlike in VS 2019. This is now fixed with PR #85922 flag_lng.

⚠️ [BREAKING CHANGE] In order to better handle shortcuts via the [FLUTTER] Actions Widget on EditableText/TextFields, the way to fill in the text of a field will change in the next Flutter release (2.8 normally). The documentation is not yet online on the official website, but you can check it here flag_lng and anticipate the change.

🐞🐞 Renaming a folder is not such an easy thing to do, as shows this bug identified in Dart (GITHUB) flag_lng. Indeed, on Windows, calling Directory.rename() will overwrite the destination folder whether it contains data or not. This behavior will be removed.

🐞 After the long-awaited release of Riverpod 1.0, a bug appeared only on the web part and related to Dart flag_lng. So, think carefully before you proceed with the migration.

⛱️ The Google Summer of Code program funds opensource projects by students every summer. Google has just announced  flag_lngit will lighten its eligibility criteria, since from now on any adult (18 years or older) will be able to participate.

💻 You have a Mac M1 and need to run Ubuntu on it? Granted, virtualization tools like Virtualbox are starting to handle it, but those are still previews. Canonical announced last week its stable & free solution named Multipass flag_lng and whose particularity is its easy implementation.

🪟 .NET MAUI (successor of Xamarin.Forms) is available in Preview 10 flag_lng (new features and bug fixes flag_lng) and is based on .NET 6.0.

When asked to choose between Xamarin.Forms or .NET MAUI… the answer is… Flutter. More seriously, Microsoft says that except for long projects (4 months at least), it is still too early to start.

💡 The API to control Philips Hue bulbs (or Signify) has been completely redesigned in a V2 flag_lng. It now handles dynamic scenes or gradient system.

Dart/Flutter articles and tutorials

Tips & tricks

The tweet

Twitter logo
I decided to check out CS193p, and I already learned a new thing just a few minutes in. Turns out, the canonical way to store all of your projects is by creating a ~/Developer folder. Finder has a special icon just for it.
Image tweet

This is an interesting little tip for Finder users on macOS. If you create a folder named Developer in your home directory, it will automatically take the corresponding icon. In this way, if you were wondering where your folders & files related to development are, Apple has the answer for you!

Dart/Flutter libraries

Lib flutter_gen

flutter_gen : Access to resources reliably

Android iOS Web Linux Mac Windows

Flutter is the most recent cross-platform framework and is expected to erase the mistakes made by its predecessors. While this paradigm is valid in most cases, the asset management is a real disaster. Writing the location of files in hard copy in the application is a time bomb, because simply renaming a file is enough for everything to crash at runtime.

To avoid this, Fluttergen flag_lng will look at your files and automatically generate the code for you, whether they are files (images, animations…), fonts or colors. Depending on build_runner, I recommend derry flag_lng presented inthe latest issue flag_lng, to avoid any problem.

Lib flutter_slidable

flutter_slidable : The package is now available in version 1.0

Android iOS Web Linux Mac Windows

Particularly used on iOS, the graphical component consisting in displaying actions that are revealed by a swipe gesture does not exist on Cupertino, nor in Material.

Thanks to Romain Rastel's fabulous work, an implementation in Flutter flag_lng has been around since 2018. After being dormant for a few months, a brand new version is available (1.0 🥳) and requires a migration flag_lng

The video

Image A live-coding of go_router (Navigator 2.0) with Chris Sells

A live-coding of go_router (Navigator 2.0) with Chris Sells

The 2021 Firebase Summit flag_lng is not necessarily the one that will be remembered, no matter how interesting the announcements were. Feel free to check out this playlist that focuses for a few minutes on each of the new features.

The tools

Image Outil Axolo

Axolo : Lier Slack et GitHub

Axolo est un outil gratuit permettant d'accélérer et fluidifier la validation des Pull Requests. Pour cela, dès qu'une nouvelle est mise en ligne sur GitHub, un channel Slack éphémère est créé. Cela permet d'y retrouver les commentaires, résultats des CI/CD… Selon Axolo (à prendre avec des pincettes donc), des gains de productivité de 30% sont à la clé.

Image Outil Raspberry Pi Colocation

Raspberry Pi Colocation : Accéder à des Raspberry Pi hébergés dans une colocation allemande

Les Raspberry Pi sont ces petites cartes au rapport qualité/prix impressionnant (même si les tarifs vont augmenter flag_lng). Elles peuvent notamment vous servir pour déployer un serveur web (en Dart ou des BaaS façon AppWrite flag_lng), mais encore faut-il une connexion stable et un endroit pour les stocker chez vous. C'est le pari fou qu'ont fait ces Allemands dans leur colocation où vous pouvez soit utiliser une carte déjà déployée, soit envoyer la vôtre avec votre propre SSD !

Image Outil Scaphandre

Scaphandre : Mesurer la consommation énergétique

Alors que la COP26 s'est clôturée il y a quelques jours, cet outil permet d'obtenir des métriques sur la consommation électrique des services que vous avez déployés. Cela peut concerner des machines virtuelles sur Qemu/KVM, des serveurs en bare metal… Voici d'ailleurs un exemple de ce que vous pouvez obtenir flag_lng comme résultat.

Upcoming events



Women+ in Firebase Summit Extended



Dart Up


Oslo & Online

Flutter Vikings
Your opinion on this issue