Oh, my Flutter [ENG]
250 subscribers
705 photos
692 links
Everything about Flutter. Disclaimer: Everything posted here is a personal opinion of the authors and is shared free, there is no advertisement. Owner Mikhail Zotyev. For all questions connect with @mbixjkee
Download Telegram
There's not so much time left while the quarterly survey from the Flutter team is active.

πŸ“Œ You can share your feedback at the link.
https://google.qualtrics.com/jfe/form/SV_4PhMtNLa6DWOGWi

#survey
πŸ‘1
The new episode of Observable Flutter is dedicated to refactoring a three-year-old package authored by the host.

The package provides an animated navigation bar that can be customized.

Let's wish Craig luck with updating his brainchild 😁

πŸ“Œ Episode

#video
#ohmyteam
#ohmyfedukenukem
πŸ‘1
AI is increasingly being used in modern products. For example, Prospera is an AI-based sales trainer that provides real-time recommendations and feedback during and after calls. In the recent Gemini API Developer Competition, this app won both β€œbest Flutter app” and β€œmost Useful app”.

πŸ“Œ More details about Prospera in the article.
https://medium.com/flutter/prospera-using-flutter-to-bring-ai-to-the-frontline-of-sales-71377810fd26

#article
πŸ‘1
avoid-passing-self-as-argument in DCM's Rules of the Week.

πŸ“Œ The video can be found at the links.
https://www.youtube.com/watch?v=ZWaZnN7E1Uo

#dcm
πŸ‘1
At first glance, benchmarks seem quite simple: run, measure, and there it is - the truth. But the rabbit hole is much deeper than it may seem.
Any benchmark is just an experiment, and the result can be influenced by many factors. Therefore, it is not the result itself most important but the analysis of the experiment and the validation of the result.

In his article, Vyacheslav Egorov showed how to work with the results of such experiments, using as an example a fresh viral benchmark.

πŸ“Œ I highly recommend to read this article.
https://mrale.ph/blog/2024/11/27/microbenchmarks-are-experiments.html

#article
πŸ‘1
avoid-unnecessary-setstate in DCM's Rules of the Week.

πŸ“Œ The video can be found at the link.
https://www.youtube.com/watch?v=4kWDvW68QiA

#dcm
πŸ‘1
The Flutter plugin for VSCode has received another update. It contains:

πŸ‘‰ β€œPeek Error” popup with full test output;
πŸ‘‰ improved stop/continue execution for threads and isolates in debug.

For future SDK versions:
πŸ‘‰ color preview in code completion;
πŸ‘‰ β€œGo to Imports” command that shows all import directives of the corresponding identifier in the file.

πŸ“Œ This and much more in the detailed changelog at the link.
https://dartcode.org/releases/v3-102/

#update
πŸ‘1
The Flutter channel has announced the #FlutterInProduction event, which will take place 11am PT on December 17, 2024.

This is dedicated to the development of Flutter as a stable and reliable framework that is used by various companies and developers around the world to create production-ready applications.

Presumably, there will be stories about cool applications in the markets that are made with Flutter

πŸ“Œ Announcement
πŸ“Œ Description

#FlutterInProduction
#ohmyteam
#ohmyfedukenukem
πŸ‘1
Craig Labenz and Mateusz Wojtczak discuss using Patrol in the new episode of Observable<Flutter>.

πŸ“Œ The series can be found here.
https://www.youtube.com/watch?v=fidNg4ZzUKA

#video
πŸ‘1
The flutter_colorpicker package provides a flexible customizable color picker widget for your app.

πŸ“Œ The library is available at the link.
https://pub.dev/packages/flutter_colorpicker

#package
πŸ”₯1
We continue the topic of rendering optimization using Canvas. Last time we talked about drawAtlas, and today we will show and tell about drawPoints. This method allows you to very optimally draw a set of points with different modes.

Just like drawRawAtlas, there is drawRawPoints, which provides even greater performance.

πŸ“Œ Example

#advice
#ohmyteam
#ohmyfedukenukem
πŸ‘1
use-setstate-synchronously in DCM's Rules of the Week.

πŸ“Œ The video can be found at the link.
https://www.youtube.com/watch?v=7gahYeAyQv4

#dcm
πŸ‘1
Meet the new version of Flutter 3.27, which will bring us:

πŸ‘‰πŸ» A bunch of updates for Cupertino widgets
πŸ‘‰πŸ» New features for CarouselView
πŸ‘‰πŸ» The ability to use different Route Transitions for entry/exit
πŸ‘‰πŸ» Finally spacing for Row and Column
πŸ‘‰πŸ» Impeller on Android is now the default engine for modern devices
πŸ‘‰πŸ» Improvements for Web and iOS
πŸ‘‰πŸ» Download counter for packages on pub.dev
πŸ‘‰πŸ» Pub Workspaces for working with monorepositories
πŸ‘‰πŸ» New Flutter Inspector

And much more!

πŸ“Œ Article

#announcement
#ohmyteam
#ohmyfedukenukem
πŸ‘2
The new release of Observable Flutter greets us with a detailed analysis of home_widget directly from the author.

We have already touched on this package before, but since then there have been updates, and the ability to make "home widgets" interactive has appeared.

πŸ“Œ Video

#video
#ohmyteam
#ohmyfedukenukem
πŸ‘3
The new version of Flutter goes as always together with the new version of Dart. This time, in terms of new features of the language, the release is more of a formality. Pubdev, on the other hand, got several notable new features:

πŸ‘‰ Pub workspaces;
πŸ‘‰ Pub download counts.

πŸ“Œ Read more in the announcement.
https://medium.com/dartlang/announcing-dart-3-6-778dd7a80983

#announcement
πŸ”₯1
Some vulnerabilities were fixed in the 3.27:

πŸ‘‰ missing sanitization checks for file_selector_android and image_picker_android packages;
πŸ‘‰ Deserialization leads to adhoc code execution for shared_preferences_android
πŸ‘‰ Malformed APNG images could cause out-of-bounds memory writes

Severity: Medium 4.3/10

Recommended action: updating package versions to 0.8.12+18 of image_picker, 0.5.1+12 of file_selector and 2.3.4 of shared_preferences and updating to Flutter 3.27 stable.

πŸ“Œ More information can be found:
https://github.com/flutter/packages/security/advisories/GHSA-r465-vhm9-7r5h
https://github.com/flutter/packages/security/advisories/GHSA-98v2-f47x-89xw
https://github.com/flutter/packages/security/advisories/GHSA-3hpf-ff72-j67p
https://github.com/flutter/packages/pull/8184
https://github.com/flutter/packages/pull/8188
https://github.com/flutter/packages/pull/8187
https://github.com/flutter/engine/pull/56928
https://github.com/flutter/engine/pull/57025

#advice
πŸ‘2
The final aspect of #FlutterInProduction was the Observable Flutter episode, which brought together representatives of various large Flutter apps to chat and reflect in a less formal setting.

πŸ“Œ Episode

#FlutterInProduction
#video
#ohmyteam
#ohmyfedukenukem
πŸ”₯1
There are new options for integrating ads into Flutter applications: an IMA plugin for displaying video ads and a beta program AdSense for web games on Flutter.

πŸ“Œ Read more in the announcement.
https://medium.com/flutter/video-web-ad-support-in-flutter-f50e5a3480a8

#announcement
πŸ”₯1
The final post on the topic of efficient drawSomething, and this time it’s about drawVertices, which allows rendering vertices in two ways: optimized or highly optimized. 😁

No example explains this amazing method better than Filip Hracek.

πŸ“Œ Video
πŸ“Œ Canvas.drawAtlas
πŸ“Œ Canvas.drawPoints

#advice
#video
#ohmyteam
#ohmyfedukenukem
πŸ‘1
Another clever way to optimize using SnapshotWidget.

This widget allows you to take a "snapshot" of a child widget as a ui.Image and display it when needed. This can be useful for short animations applied to "expensive" effects like blur.

This is how the ZoomPageTransitionsBuilder works under the hood.

πŸ“Œ Example

#advice
#ohmyteam
#ohmyfedukenukem
πŸ‘2
For many, pragma is something "magical" and unclear, but thanks to Vyacheslav Egorov, we have the opportunity to understand what it is, the benefits it can bring, or the harm it might cause.

This article will list existing annotations, explain what they do, and evaluate how safe their usage is.

πŸ“Œ Article

#article
#ohmyteam
#ohmyfedukenukem
πŸ‘2