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

Issue 08 (10/18/2021)

Open the newsletter in your browser


💙️ Support-me 💙️


The news

Image What to take away from the interview with Chris Sells (Google)?

Who is Chris Sells?
Chris flag_lng is a Senior Product Manager at Google in the Flutter team. He is a regular contributor to official articles on Medium. He is also responsible for go_router flag_lng (which is already in version 2.0), a library that simplifies the use of Navigator 2.0.

The panel with widgets rebuilds generalized
In an interview with SyncFusion flag_lng (transcript flag_lng), he answers several questions, including how to identify widget rebuilds. At the moment, this information is already available in Android Studio and IntelliJ. Chris tells us that not only is it coming to Visual Studio Code, but that DevTools will also benefit from it. No date is given though.

Soon a visual editor for Widgets?
On Android, the graphic part can be done either in XML or via Jetpack Compose (which is, to simplify, the equivalent of Flutter for interfaces). According to Chris, providing a WYSIWYG-like tool would not be useful in Flutter, thanks to Hot Reload. But that's what the Android team managed to do with Jetpack Compose on Android Studio…

The Googler also redirects users to community-created tools such as FlutterFlow, Supernova or Codelessly, which already offer drag'n'drop solutions. The Flutter team at Google prefers, for the moment, to help these initiatives, rather than create a tool that would compete with them.

Soon a "rich" text editor?
Mind you, this is not a question about a Flutter Studio, but rather about a Widget that would allow you to write text, a bit like a Word document. Chris Sells explains: "About a year ago, we kicked off an effort. We gathered a bunch of interested members of the community together, and we started pulling together some requirements for a rich text editor, something beyond what text field can give you, which is multiline text, with all kinds of support for hotkeys and mouse and keyboard-based selection. It does have a number of really great features, but it doesn't do rich text editing. So there have been a few efforts that have led to a rich text editor. The most recent one that I'm familiar with, the most fully-featured one, and one that we've been working pretty closely with as a partner, is Matt Carroll's Super editor, which does all kinds of great rich text editing and selection and multimodal kinds of things"… Again, don't expect anything in the short term from Google and keep an eye on Pub.

Support for App Clips and the Apple Watch
As far as App Clips are concerned, there is already documentation on the official website flag_lng. As for the Apple Watch (and connected watches in general), Flutter can work without any problem on the aspect of adaptation to different form factors. On the other hand, the fact that today the Flutter runtime occupies between 4 and 5 MB is a no-go. He concludes: "We don't intend to support watches any time soon".

Image Ubuntu Frame: your Flutter application in a kiosk

As we know, Canonical, the company behind the Linux distribution is fully behind Flutter. The first step was the creation of a brand new graphical installer. With this success, all application developments for the distribution now use the Google framework.

Today Flutter can work on mobile, web and desktop. But Google wants to go beyond that by targeting "ambient computing": a sort of catchword for all the electronic objects around us. This is how the IOT becomes an accessible world with many solutions like Android Things (deprecated) or Ubuntu Core.

Ubuntu Frame: a kiosk on Ubuntu
In addition to the 21.10 version flag_lng that has just been released, Canonical took the opportunity to announce Ubuntu Frame flag_lng: a kiosk running Ubuntu. Concretely, this is aimed at all "embedded screens" that have only one application to display: a bank machine, a billboard, train schedules……

Your Flutter application on Ubuntu Frame
Among the frameworks that can run on this system, we can mention QT, GTK, Electron, SDL2… or Flutter! (note that a simple web page flag_lng is also compatible. Just create the right configuration file (cf the Tutorials section of this newsletter) and boom your application is not only available on Ubuntu computers, but also on kiosks!

Image Google abandons Material Design for its iOS apps

Material Design is a set of graphic codes, notably used by Android. On the official website, iOS libraries flag_lng and web libraries flag_lng are made available to facilitate the one design = multiple platforms paradigm.

Google stops iOS support
For iOS, there are two ways to use this design: via the implementation in Flutter or directly via dependencies written in Objective C and/or Swift flag_lng. The development had a double objective for Google: public Google applications (e.g., Maps on iOS), but also for third-party developers. But late last week, Google has eventually announced it would stop supporting these "natives" libraries flag_lng.

Whatever for and why?
Initially the iOS bricks were developed to handle cases not implemented by UIKit (the iOS view framework). Over the years, though, UIKit has caught up, and is even doing better today. Jeff Verkoeyen flag_lng, who is in charge of this project, says SwiftUI now provides a better solution for designing branded components. Finally, not using its components will allow Google to use Apple's graphics components directly and thus provide a better experience.

An impact for Flutter?
As far as Flutter is concerned, this should not have any short-term consequences. It is indeed possible to use the Material components on iOS or, conversely, to choose the Cupertino library. However, some critics in the Flutter community are arguing Google should leave the development of Cupertino widgets to the opensource world and focus on new features. This is always a difficult choice to make…

Miscellaneous news in brief

Flutter 2.5.3 and Dart 2.14.4 are available in the stable channel, with essentially some minor bugfixes.

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

🤑 Reminder - good deal: Google has just set up a partnership with the raywenderlich site flag_lng to offer the book Flutter Apprentice flag_lng until the beginning of January. But beware, this is the digital version… flag_lng and not downloadable… and of course, this is in exchange for your email.

✨ On the Flutter Pull Requests side, we can note:

  • New Lint rules will be made available (PR #91659 flag_lng)
  • The ListTileThemeData will better respect Flutter conventions, get ready for an upcoming migration (PR #91449 flag_lng)
  • The InputDecorator will use MaterialState attributes where possible. As before, a migration process should be expected (PR #91182 flag_lng)

☠️ Overnight, Google can basically call the shots on the life or death of a company. One more example of an app being unaccountably removed from Google Play flag_lng

📅 Dart UP, the Russian conference on Dart and Flutter, is back for its fifth edition in a 100% online and free version. Take the opportunity to register for it flag_lng: this year it will take place on December 3rd and 4th.

📝 The DartPad flag_lng seems to support additional dependencies: block, provider, riverpod, google_fonts… (the list is in the icon (I) at the bottom of the screen)

⚙️ Intel has just made available and opensource a framework written in Dart flag_lng to "verify" the operation of new software.

⬆️ The AppWrite SDK (Backend As A Service opensource) for Flutter has just passed the symbolic milestone of version 2.0 flag_lng. On the agenda: each method now returns a specific Object… and that's it!

🕸️ The firebase_database package (FlutterFire) is now Android, iOS……… and web flag_lng compatible!

🧰 The XCode latest version flag_lng can now "inspect" network requests, provided you have XCode 13 and a "real" phone or tablet.

✖️ The support of Android applications on Windows 11 is not yet available, but it seems flag_lng that the system can handle multiple instances of the same application.


Did you know that?

In the 2000s, Windows XP was the operating system that won over millions of users worldwide. But XP was best known for its repeated security flaws, forcing Microsoft to patch it on a regular basis to try and stop the bleeding.

Faced with this problem, Microsoft launched a parallel project involving 35 developers under the code name Singularity. The idea was to design an operating system from scratch, but above all to provide a concrete solution to security problems.

Developed from 2003 onwards, the first version was released in 2007, before undergoing a few more versions. But the project was soon abandoned and no longer exists in this form today.

You can read this PDF document explaining what made it different from the others (or this condensed article). The various Windows releases since then have probably picked up some of the ideas, but it's interesting to see that at Redmond, security was a major issue at the time.

Dart/Flutter articles and tutorials

Tips & tricks

The tweet

Twitter logo
How do you create a Flutter card layout that grows horizontally up to a given width, then remains fixed at that width just like in this example?
Image tweet

On a regular basis Mike Rydstrom compiles a ranking of packages that make Navigator 2.0 easier to use. For this fourth edition, go_router (Chris Sells' solution) makes a promising debut.

Dart/Flutter libraries

Lib seo_renderer

seo_renderer : Improving SEO on Flutter Web

Android iOS Web Linux Mac Windows

SEO (search engine optimization) is clearly an issue for sites developed in Flutter Web. Sitting on the fence between a classic site and one made with Flutter Web, the balance tips the other way for many reasons: site display time, data indexing… That's why Google recommends the technology for "web applications", where this SEO aspect is not so important. However, a package tries to improve the indexing part by generating more classical HTML tags. This allows search engine spiders to read the content better, but in return, you will have to make some changes in your code base.

Lib upgrader

upgrader : Notify users of updates

Android iOS Web Linux Mac Windows

Have you just released an update to the Google Play or App Store? If you want to notify or force your users to switch to it, this package will extract the data from the app shops and display the version or the list of new features. But you can also use _appcast _which is an RSS feed (that you will have to host) and which will allow you to have full control over the data displayed.

The video

Image Flutter sessions at Hacktoberfest

Flutter sessions at Hacktoberfest

AppWrite, one of the Hacktoberfest partners, organized on Wednesday a mini online conference with the program: Connecting your Flutter App to AppWrite, Scalable Flutter app development, Structuring a Flutter desktop application with macos_ui and finally Generating a scalable Flutter App in seconds with Very Good CLI

The tools

Image Outil asdf

asdf : Managing multiple versions

A few issues ago, fvm and its graphic interface Sidekick GUI were introduced in this newsletter as a tool that allows you to manage different versions of Flutter per project. Except that asdf is even better, since it can not only manage Flutter, but also any framework or language: Python, Kotlin, Symfony… (here is the complete list). Very practical, you will be able to define, per project, or globally a version,⁹ and then simply commit the .tool-versions file so that your whole team can benefit.

Image Outil Panache

Panache : Generate the Material theme easily

Panache is a tool for Flutter that allows you to create a ThemeData for your MaterialApp. Visually and in your browser you can try out different colors and values. A great tool for Flutter developers, or even to give directly to your designers.

Image Outil SQLStuff

SQLStuff : A Lint for your SQL queries

Want to know if your SQL requests are optimal? With this Linter, you'll write queries that are both more readable and probably more efficient!

Upcoming events



Flutter Kaigi


En ligne

Dart Up

08-09 December


Flutter Global Summit
Your opinion on this issue