Mobile Tech – Telegram
Mobile Tech
1.26K subscribers
107 photos
15 videos
6 files
154 links
Michael Lazebny's blog about @dart and @flutter
lazebny.io
Download Telegram
I created a simple but much more powerful alternative to Widgetbook, Storybook, and similar tools.

It automatically generates routes for GoRouter (supports deep links).

It also makes it very easy to create configurations, fields, etc., for customizing widgets.

This is just an example—it will be improved over time and might eventually be added to sizzle starter or a separate package.

Github Link

#flutter
👍11🥰4🔥31
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, which is 50x faster than dart's "image" package.

I think this is not the best solution and if you know how to improve it, it would be greatly appreciated! :)

#dart #rust #ffi
👍133
This media is not supported in your browser
VIEW IN TELEGRAM
Created a minimal example of custom AppBars using SliverPersistentHeaderDelegate.Take a look here https://github.com/hawkkiller/pageheader/blob/main/lib/page_header.dart

#flutter #flutterdev
👍13❤‍🔥2🔥2
Interesting post about showing yearly vs monthly prices first

TLDR: Showing monthly prices by default is better :)
👍131
You can pin the toolbar to the top of your vscode window.

https://x.com/TahaTesser/status/1917094263000584605
🔥311
The next article will be about building efficient CI pipelines for large flutter projects
🔥13👍63
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
🔥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 :)
11👍4
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.
🔥12👍3😁21😱1
I will be presenting “Performant Scrolling Layouts with Slivers” on Fluttercon in Berlin!
6🔥15❤‍🔥2
Are you going to Fluttercon?
Final Results
13%
Yes
75%
No
13%
Thinking
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)
1👍121
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.
👍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
👍7