|
Open the newsletter in your browser |
|
|
|
|
💙️ Support the newsletter 💙️ |
|
|
|
|
|
|
|
|
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 .
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 is a real positive, with 37% of developers searching for it every day, and 70 percent accessing it every week. For the most part , 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 , but I think that the sample surveyed is still very enthusiastic… |
|
|
|
|
|
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 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 (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 , we notice a project named firmware-updater . 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. |
|
|
|
|
|
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 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 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 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 |
|
|
|
|
|
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 , 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 , 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
- 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 .
|
|
⚠️ [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 and anticipate the change. |
|
🐞🐞 Renaming a folder is not such an easy thing to do, as shows this bug identified in Dart (GITHUB) . 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 . 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 it 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 and whose particularity is its easy implementation. |
|
🪟 .NET MAUI (successor of Xamarin.Forms) is available in Preview 10 (new features and bug fixes ) 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 . It now handles dynamic scenes or gradient system. |
| |
Dart/Flutter articles and tutorials |
|
|
|
As mentioned in the News section, Dartpad can now use Firebase dependencies. This article explains first how to link your account, before you can interact with the different APIs. |
|
|
|
|
|
The Shortcut Keeper application is available on macOS & Windows and serves as a memo to the various keyboard shortcuts you may use on a daily basis. Its developer, Minas Giannekas, chose Flutter to develop it and you will notice that each platform has its own graphic codes (Fluent Design & Human Interface). In this article, he explains how he did it. |
|
|
|
|
|
As a continuation of the previous article, your application should certainly adapt visually to the platform, but it should not forget that the user can interact in different ways. Mouse scrolling support, keyboard shortcuts, "hover" state management… all elements that should not be neglected even on Android and iOS, since touch is not always the main interaction vector. |
|
|
|
|
|
In Flutter, you can use Isolate to run code in parallel when "intensive" tasks require it. Unfortunately, the system does not work on the web. You can then turn to WebWorker…… or Web Assembly. You will learn in this article how to use this very promising system. |
|
|
|
|
|
You use Dio and curl ? Thanks to the package curl_logger_dio_interceptor , you have the possibility to export the queries made by Dio in curl "format". In this article, you will learn how to set it up, even if, just between the two of us, it is not that complicated. |
|
|
|
|
|
GitHub Copilot is a tool based on artificial intelligence, providing you with often mind-boggling code suggestions. If you develop a Flutter plugin with Swift code, this article explains how to link it to VSCode. |
|
|
| |
|
|
|
The last ten commands run on a directory |
If you use ZSH as a shell interpreter, you can use jog which offers a history not of the general (the last x commands), but rather by folder. Useful to find your way around between projects. |
|
|
|
|
Userflow on Chrome: It is already all in the browser |
For your Flutter Web sites, it is always useful to have videos of what your users are doing. You may have thought of integrating a third-party service, but in fact Chrome already knows how to do everything by itself … or at least it will know how to do it, since it is a feature of Chrome 97 (the stable version is now 95). |
|
|
|
|
More realistic gradients |
You find that gradients on Flutter are not natural, because they are displayed in the form of bands? Then you can use the enableDithering attribute of the dart:ui/Paint class. Be careful to test this carefully, as it can have an impact on performance depending on terminals. |
|
|
| |
|
|
|
|
|
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.
|
|
|
|
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! |
|
|
|
|
|
|
|
|
|
|
|
|
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é. |
|
|
|
|
|
17 November |
Online |
Women+ in Firebase Summit Extended |
|
|
03-04 December |
Online |
Dart Up |
|
02-03 February |
Oslo & Online |
Flutter Vikings |
|
|
Your opinion on this issue |
| | | |