You can pin the toolbar to the top of your vscode window.
https://x.com/TahaTesser/status/1917094263000584605
https://x.com/TahaTesser/status/1917094263000584605
π₯31β€1
The next article will be about building efficient CI pipelines for large flutter projects
π₯13π6β€3
Happy to share that Sizzle Starter is now updated to Flutter 3.32.0
Together with this update, I have landed a few important ones:
- Now app (root) project is located in "app" folder. This stimulates modularization principles
- flutter gen-l10n is not used anymore for localizations in favor of intl_utils (from Localizely)
- some other minor changes..
https://github.com/hawkkiller/sizzle_starter
Together with this update, I have landed a few important ones:
- Now app (root) project is located in "app" folder. This stimulates modularization principles
- flutter gen-l10n is not used anymore for localizations in favor of intl_utils (from Localizely)
- some other minor changes..
https://github.com/hawkkiller/sizzle_starter
GitHub
GitHub - hawkkiller/sizzle_starter: A production-ready template for flutter applications.
A production-ready template for flutter applications. - hawkkiller/sizzle_starter
π₯11π4
Mobile Tech
Happy to share that Sizzle Starter is now updated to Flutter 3.32.0 Together with this update, I have landed a few important ones: - Now app (root) project is located in "app" folder. This stimulates modularization principles - flutter gen-l10n is not usedβ¦
Following updates might be focused on modularization practices, such as moving features to feature-modules and shared code into corresponding packages, so they are more reusable.
If you want to make your VS Code indentation a bit more beautiful for #Flutter widgets, set "dart.previewFlutterUiGuides" to true
If I'm not mistaken, the same thing exists in IDEA :)
If I'm not mistaken, the same thing exists in IDEA :)
β€11π4
Learn essentials and optimization techniques to achieve fast & robust CI for Dart and Flutter!
https://lazebny.io/effective-ci-for-flutter/
https://lazebny.io/effective-ci-for-flutter/
Michael Lazebny
Effective CI for Dart & Flutter
Set up efficient Flutter CI pipelines with GitLab. Covers linting, testing, caching, coverage, sharding, and monorepo best practices.
π8
I have started working on my next article, which is about semantics and accessibility in Flutter.
We will discuss how to design components to make them accessible to users. You will learn how to use the Semantics widget correctly and understand the differences between semantics properties and widgets. Finally, I will demonstrate how to debug accessibility, write tests, and confirm that you are heading in the right direction.
We will discuss how to design components to make them accessible to users. You will learn how to use the Semantics widget correctly and understand the differences between semantics properties and widgets. Finally, I will demonstrate how to debug accessibility, write tests, and confirm that you are heading in the right direction.
π₯12π3π2β€1π±1
4π€¨3
I've been using geminicommit cli for some time for creating commits. And it actually creates good commits. Much better than Cursor or Copilot "generate with AI" function. Moreover, this is entirely free as gemini has very generous free tier (100 API requests per day for 2.5 Pro and 250 RPD for 2.5 Flash).
Currently, I use 2.5 Flash as it generates commits faster and still reliable (I also had some issues with 2.5 pro errors)
Currently, I use 2.5 Flash as it generates commits faster and still reliable (I also had some issues with 2.5 pro errors)
GitHub
GitHub - tfkhdyt/geminicommit: CLI that writes git commit messages for you with Google Gemini AI
CLI that writes git commit messages for you with Google Gemini AI - GitHub - tfkhdyt/geminicommit: CLI that writes git commit messages for you with Google Gemini AI
1π12β€1
Mobile Tech
I have started working on my next article, which is about semantics and accessibility in Flutter. We will discuss how to design components to make them accessible to users. You will learn how to use the Semantics widget correctly and understand the differencesβ¦
So.. plans slightly changed.. and I have written an article about basics of Domain-Driven design π. Specifically, about subdomains.
I have recently started exploring the concepts of DDD and find its practices and approaches helpful in writing code.
The article is free of charge, please share what you think!
https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
P.S. I'm planning to update old articles with new details. After that, I would like to continue this architectural series. Next article might be about modeling business logic using ideas from DDD and Clean Architecture.
I have recently started exploring the concepts of DDD and find its practices and approaches helpful in writing code.
The article is free of charge, please share what you think!
https://lazebny.io/domain-driven-design-core-supporting-generic-subdomains/
P.S. I'm planning to update old articles with new details. After that, I would like to continue this architectural series. Next article might be about modeling business logic using ideas from DDD and Clean Architecture.
Michael Lazebny
Domain-Driven Design: Core, Supporting & Generic Subdomains
Learn the basics of domain-driven design: core, supporting, and generic subdomains. As a bonus, you will also understand what business logic is.
π9π2π2π€2π₯1
Mobile Tech
Rust is an amazing language for FFI in Dart All you need to do is define the extern C function, run cbindgen to generate a C header file, and then run ffigen, which generates safe Dart bindings. Here is how I implemented upscale using Rust's "image" crateβ¦
Some time ago, I mentioned that I had built a Flutter package for upscaling images using Rust.
Now, the Dart team is working on a 'Native Assets' feature that, in theory, will enable it to be bundled as a Dart package without Flutter required as a dependency! This would make it easier to use the package in the Dart CLI or on the backend.
https://dart.dev/tools/hooks
Now, the Dart team is working on a 'Native Assets' feature that, in theory, will enable it to be bundled as a Dart package without Flutter required as a dependency! This would make it easier to use the package in the Dart CLI or on the backend.
https://dart.dev/tools/hooks
dart.dev
Hooks
Run custom build scripts.
π7
Today I Learned: golden tests are natively supported by flutter_test!
I always thought that for goldens you need to install third-party packages.
To generate goldens, you can use matchesGoldenFile API:
https://api.flutter.dev/flutter/flutter_test/matchesGoldenFile.html
I always thought that for goldens you need to install third-party packages.
To generate goldens, you can use matchesGoldenFile API:
https://api.flutter.dev/flutter/flutter_test/matchesGoldenFile.html
π7
When updating dependencies in a Pub Workspace, use "dart pub upgrade," which automatically resolves to the correct version and updates it in every package.
#flutter #FlutterDev #dart #tip
#flutter #FlutterDev #dart #tip
π6
A package should do a single thing and do it well.
If the package solves state management, it should expose APIs specifically for that purpose β it should not concern itself with dependency injection or database storage.
A package that has many responsibilities likely tries to connect them under a single API, which adds more coupling and more unknowns to it. Such packages are considered red flags.
Applications built with packages that are "red flags" tend to be "red flags" in terms of maintenance/scalability/performance.
#architecture
If the package solves state management, it should expose APIs specifically for that purpose β it should not concern itself with dependency injection or database storage.
A package that has many responsibilities likely tries to connect them under a single API, which adds more coupling and more unknowns to it. Such packages are considered red flags.
Applications built with packages that are "red flags" tend to be "red flags" in terms of maintenance/scalability/performance.
#architecture
π8π―4π1
This media is not supported in your browser
VIEW IN TELEGRAM
I created a Shimmer animation in Flutter in 100 lines without libraries.
It is performant and minimizes rebuilds, based on a CustomPaint, a LinearGradient, and a Transform.
https://gist.github.com/hawkkiller/2ed40b43d6372fc322080e0c8ce76521
#dart #flutter #flutterdev
It is performant and minimizes rebuilds, based on a CustomPaint, a LinearGradient, and a Transform.
https://gist.github.com/hawkkiller/2ed40b43d6372fc322080e0c8ce76521
#dart #flutter #flutterdev
π20
Don't use SVGs for Icons in Flutter. There are better and more performant ways.
Rendering SVG requires several time-consuming operations: reading from memory, parsing the SVG to a binary format, parsing the binary format to Dart structures, and only then rendering.
Instead, opt for icon fonts, similar to the Icons class in Flutter. A Flutter engine processes all the fonts during startup and makes them available throughout the whole app lifecycle. The performance of rendering an icon font is the same as rendering text.
#dart #flutter #flutterdev
Rendering SVG requires several time-consuming operations: reading from memory, parsing the SVG to a binary format, parsing the binary format to Dart structures, and only then rendering.
Instead, opt for icon fonts, similar to the Icons class in Flutter. A Flutter engine processes all the fonts during startup and makes them available throughout the whole app lifecycle. The performance of rendering an icon font is the same as rendering text.
#dart #flutter #flutterdev
π6π₯3π1