|
Open the newsletter in your browser |
|
|
|
|
💙️ Support the newsletter 💙️ |
|
|
|
|
|
|
|
|
While I always try to refrain from sharing my opinion on newsletter articles, I will make an exception on this "news" around the Dart/Flutter ecosystem.
Pub.dev Pub's idea is very interesting on paper: providing a centralized directory for our applications dependencies. No need to look in several places, we find everything that is needed for Dart and Flutter.
No moderation The main problem with Pub is its total lack of moderation. This was proven this week when someone published a fake package to promote his "free" video streaming service . Alerted on Twitter, the Google team quickly removed the package. Still, this raises several questions.
Childlike simplicity Publishing content on Pub is as simple as launching a command in a terminal. You have to link a Google account to it, but it's mainly used to bundle the same author's packages/plugins.
How is it possible for a totally new account to be able to do whatever it wants and potentially publish dozens of packages without any control? A spammer on social networks could not wish for more.
A posteriori moderation However, let's be positive. In case of problem, Google is very quick to remove the content as soon as a ticket on GitHub is published, or even when notified by another medium (like Twitter in the case mentioned above). However, how come there is no "Report" link on the site? A sketchy page for security does exist , but we see that Google is clearly providing minimum service here.
Should we trust them? Such lack of moderation could mean loss of trust. Pub is not the only system that works like this (npm for example) and this debate is not new. The answer is quite acceptable: if the link to the git repo is optional, the code will always be accessible in our projects. Now, who actually reads it?
Name squatting, empty packages… Having fun looking at the list of the last published packages, how many are there in Hello World? Too many… Similarly, how come it's so easy to nick a product name from a company? No control is made and a developer will always feel more confident if the package name looks official…
So what? The point is that Pub may not need Apple-like moderation (npm demonstrates this), but stricter automated controls need to be implemented so that the problems listed can be removed and no longer harm the ecosystem image. What about you? What do you think about it? Feel free to share your opinion on Twitter or on Slack. |
|
|
Miscellaneous news in brief |
|
|
⏫ A new Flutter beta version is available: 2.8.0-3.2-pre. |
|
|
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:
- The flutter doctor command line now displays the Flutter DevTools (PR #93065 ) version
- The CupertinoButton Widget will now have an example in the documentation (PR #93625 [GITHUB])
|
|
✨ What about the plugin/community side?
- In its 2.1.4 version, the package officiel for Google Maps will have a method to move the camera by specifying an optional duration (PR #93625 )
- The Google Mobile Ads SDK plugin for Flutter is now available in stable version
- On the package Dio , the request interceptors are now working concurrently. Thanks to QueuedInterceptor (version 4.0.2+), you can now be sure they will be launched sequentially, i.e., one after the other
|
|
🎨 The institutional part (or rather marketing blah blah blah if you prefer) of the Flutter website has been revamped, not in Flutter Web (SEO alas…), but in Alpine.js . |
|
🖥️ CodeMagic, the mobile-oriented CI/CD, now has virtual machines on Windows. So you will be able to generate Win32/UW applications in Flutter if you don't have a PC on Windows. |
|
🖊️ The Kotlin language has a new stable version: 1.6.0. You can check out the new features in text or video format . Besides, the Paris Android User Group is [organizing a [NONE] session]](https://www.meetup.com/Android-Paris/events/281980514) this week around Kotlin Multiplatform which will be broadcasted live on Twitch… or in person. |
|
⌨️ scrcpy , the famous tool to display an Android phone on a computer has a new icon , but especially the ability to simulate a real USB keyboard in its 1.20 version . |
|
🖥️ The Windows App SDK (known as Project Reunion) is now available in 1.0 version (stable). No more wanderings with Universal Windows Platform (UWP) and hopefully more room will be made for this future-proof solution? |
|
📱 The few of you who use the Huawei AppGallery should know that as of February you will only be able to deploy 64-bit Android apps. |
|
📺 For a few months and through a smartphone, users of watches running WearOS can request the remote installation of an application. The same now is true with TVs on Android TV and Google TV (Chromecast). |
|
💬 If you use the Twitter API, the company urges you to quickly migrate to the new (V2) version , since it offers access to Spaces, polls, etc. |
|
🖌️ Apple's icon library, SF Symbols, has just undergone a 3.1 update with the addition of a few more symbols and "bug fixes". Note however that cupertino_icons is still not synchronized with version 3.0… because the team is looking for a solution to problems such as double-tone colors . |
| |
|
Did you know the Phone application is also a mail client? No, I didn't make a mistake, since an IMAP client is indeed available to manage the so-called visual voicemail functionality.
In concrete terms, it's up to your operator to take care of redirecting calls to a phone number after five rings. Why the operator, and not your phone, directly? Because without network coverage, your correspondent would wait indefinitely without anything happening.
To access the messages stored on this famous answering machine, you can either use a short number or consult them via a graphic interface. Behind the latter is a relatively respected standard, because a messenger can work on iOS, but not on Android.
Specifically, the initial configuration of the server is sent in SMS format, then the messages go through IMAP. On each message can be found the information on the correspondent in the header, accompanied with an attachment containing the sound in amr format.
If you wish to know more, don't hesitate to read this article. |
|
|
Dart/Flutter articles and tutorials |
|
|
|
When it comes to online messaging, it's necessarily a conversational bot (though the fad has faded a bit…). The idea of this article is to explain how to develop one for Telegram messaging in Dart. More precisely, the author does not focus on the bot "intellectual" capabilities, but rather on the deployment of such a solution with Docker. |
|
|
|
|
|
Cloud Functions are serverless functions that run in the Google Cloud (not Firebase) infrastructure. In this article, you will learn how to code them in Dart (it's rare) and deploy them afterwards. |
|
|
|
|
|
Thanks to CallbackShortcuts , your application can react to simple keyboard shortcuts (pressing a key) or via a combination. This article explains how to do this, but don't worry, simplicity is key here. |
|
|
|
|
|
If you use the add-to-app mechanism (putting Flutter into an existing application), sharing preferences between the two tiers can be important. This article explains how to make the two coexist. |
|
|
|
|
|
A small animation that consists in opening a screen with a burnt paper animation. Best not to use it unwisely, but the code is always interesting to read! |
|
|
|
|
|
Do we still need to introduce FFmpeg, the famous solution to record or convert audio and video streams? The FFmpeg Kit API enables you to access it very easily in Flutter and this article describes how to use it. Nothing too complex, especially since Android, iOS and macOS compatibility is the norm here. |
|
|
| |
|
|
|
Generate multiple widgets quickly |
With the Iterable.generate and List.generate methods, you can specify the number of times a callback is called. You can then simply return a Widget each time to make your code much more succinct. |
|
|
|
|
Raising an exception with one’s own stacktrace |
It's back to the future for Remi Rousselet Back to the future for Remi Rousselet, since it will be possible to create one' s own stacktrace when raising an error or an exception via the Error.throwWithStackTrace in Dart 2.16 method. Please beware, though: Vyacheslav Egorov (Dart engineer at Google) warns this operation can be very costly. |
|
|
|
|
Measuring the connection quality (macOS) |
On the macOS (Monterey) latest version, a new command line tool has appeared: networkQuality. As its name suggests , you can determine the network quality. You just have to make a small Dart package to use it to its full potential. |
|
|
| |
|
|
|
|
|
most helpful javadoc i've ever seen 😒
|
|
|
|
You already knew comments like setAge: save the age… that is to say, totally useless comments. Well, here is one of another style, just as absurd! |
|
|
|
|
|
|
|
|
|
|
.NET MAUI is the successor of Xamarin Forms: a framework for designing applications for Android, iOS, but also Windows and macOS. Despite an expected abysmal delay (more than a year!), Microsoft is starting to publish videos on how to design applications. This one is particularly interesting, as it will walk you through the basics of the framework. |
|
|
|
|
|
|
|
Are you using Sketch to design your graphical interfaces? Thanks to this plugin, you will be able to automatically generate the dark version. Completely free, this extension manages to generate the best… and the worst. To be tested anyway. |
|
|
|
|
|
|
|
You already know the badges on the README of git repos. Why not go one step further and display statistics? Repobeats allows you to have information about the project status (number of commits), external contributions (pull requests, best contributors…). Beware, only public projects are compatible. |
|
|
|
03-04 December |
Online |
Dart Up |
|
02-03 February |
Oslo & Online |
Flutter Vikings |
|
|
Your opinion on this issue |
| | | |