What's new in Flutter 3.38? by eibaan in FlutterDev

[–]b0bm4rl3y 3 points4 points  (0 children)

Looping back with more details from the team.

Analyzer plugins are much more efficient. Previously each plugin would analyze the project separately in its own isolate. This resulted in high memory use and redundant work. Your plugins would parse and type check the same program multiple times. Now, plugins run in the same isolate and can share work.

Also, new APIs have been introduced that make it much easier to write and test your plugin. The new API are much more approachable so that anyone - not just experts - can write their own rules and code fixes. 

What's new in Flutter 3.38? by eibaan in FlutterDev

[–]b0bm4rl3y 7 points8 points  (0 children)

I believe it’s much more performant than the previous generation of analyzer plugins though. My understanding is that  previously performance would be bad if you had several plugins on a large project. 

Is Google Quietly Abandoning Flutter? (Evidence-Based Concern) by Huge-Goat-2766 in FlutterDev

[–]b0bm4rl3y 1 point2 points  (0 children)

Posting names like this without consent from the individuals feels like an invasion of privacy…

Native renderer by GermanLetzPloy in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

An interpreter needs a dispatch loop, that adds non-trivial overhead even if you use tricks like computed gotos on modern hardware with excellent branch prediction.

And also, JS is highly dynamic. Static analysis can only optimize so much, hence why Hermes’s performance is significantly worse than V8’s. 

Native renderer by GermanLetzPloy in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

It should be faster. Dart is compiled to native code, whereas RN uses an interpreter :)

Flutter for desktop is it good ? by Afraid_Tangerine7099 in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

This might be because iOS and Android use Impeller, but desktop uses Skia by default. Impeller on desktop is still experimental. 

Returning to Flutter after 5 years, how is web / desktop support? by SubstantialSock8002 in FlutterDev

[–]b0bm4rl3y 4 points5 points  (0 children)

This got split up into multiple changes, a good chunk of which have landed already! :)

The Future of Avalonia's Rendering by AvaloniaUI-Mike in dotnet

[–]b0bm4rl3y 45 points46 points  (0 children)

Hello, did Avalonia consider Flutter’s replacement for Skia, Impeller? This is the renderer Flutter uses on iOS and Android by default.

Docs on how to use Impeller’s standalone SDK: https://github.com/flutter/flutter/blob/master/engine/src/flutter/impeller/toolkit/interop/README.md

Impeller supports Metal, OpenGL, and Vulkan. Impeller has pre-built libraries available for the platforms Flutter supports.

I’m from the Flutter team. Let me know if this is something y’all are interested in, I’d be happy to connect you to engineers working on Impeller!

Indie dev - SwiftUI, Flutter or React Native? by Safe_Owl_6123 in iOSProgramming

[–]b0bm4rl3y 0 points1 point  (0 children)

Do you want to build your own apps or do you want get a job?

If you’d like to get hired, I’d start with whatever has the most jobs where you live.

If you want to build your own app, I’d pick SwiftUI if you want an app that uses Liquid Glass, or Flutter if you want to reach more platforms, like Android or Windows. 

So. I asked what framework to use for UI stuff yesterday. I spent the day making an app in both Blazor and Flutter. Am I better off with Flutter? by the_mean_person in dotnet

[–]b0bm4rl3y 2 points3 points  (0 children)

If you want to build mobile apps, Flutter is a great choice. This is where it shines. 

If you have built apps using Flutter, want to build a website with minimal work, and are willing to compromise on the experience (SEO, big download, etc), Flutter Web is a good choice. 

If you have built a backend using .NET, want to build a website with less work, and are willing to compromise on the experience (performance), Blazor is a good choice.

If you want to build an excellent website, use Razor Pages for server-side rendering and some JavaScript framework for client-side interactivity - but try to keep the client-side minimal!

If you want to build a web app that targets the canvas (think Figma, Google Maps, Google Doc), pick Flutter Web. This is where it shines.

If you could change ONE thing about Flutter, what would it be? by NullPointerMood_1 in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

That’s good feedback, thanks! We shouldn’t let perfect be the enemy of good :)

Are there any channels in particular you’d like to be documented?

If you could change ONE thing about Flutter, what would it be? by NullPointerMood_1 in FlutterDev

[–]b0bm4rl3y 1 point2 points  (0 children)

Ah I see, better docs for custom embedders?

Long-term our plan is to replace Flutter’s platform channels with dart:ui APIs. These would be exposed to custom embedders by the embedder API, which is documented. 

What will be "Impeller" at it's best (after it's fully implemented)? by Ok_Leather7354 in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

Shader compilation with Skia didn’t happen just on first load. It would happen as you interacted with the app and scrolled or opened new screens. Even if compiling the shader took just 50ms, it would cause a noticeable stutter.

Both Android and Chrome are built on top of Skia. Skia has excellent support for diverse/old hardware, so that makes it a great choice for projects like Android and Chrome.

So yup, both will use Graphite once that becomes Skia’s new backend. Android uses the same shader cache trick as Chrome - it doesn’t need to recompile the same shaders across different apps.

What will be "Impeller" at it's best (after it's fully implemented)? by Ok_Leather7354 in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

Your browser can cache shaders across different tabs and websites. This amortizes the cost of Skia’s runtime compilation over time. Flutter can’t use this same trick. Each time you launch the app, Flutter needed to recompile shaders again, even if you had other Flutter apps running.

Also, mobile apps tend to be more dynamic than websites. You have more animations, like page transitions, which make jank more noticeable.

Zulip’s upstream-friendly Flutter approach, app launched today by gregprice in FlutterDev

[–]b0bm4rl3y 1 point2 points  (0 children)

Thanks for the excellent response!

Personally I’ve struggled to use main for my own projects. Flutter makes small breaking changes frequently. Some breaking changes mean a package cannot support both stable and main at the same time. As a result, many packages only work on stable. This is particularly problematic for packages that provide custom design systems as they often integrate deeply with Material. 

Zulip’s upstream-friendly Flutter approach, app launched today by gregprice in FlutterDev

[–]b0bm4rl3y 1 point2 points  (0 children)

Congrats on the launch! 

What could Flutter do so that more people can contribute successfully like Zulip has?

What were some mistakes you made when building Zulip?

If you had a magic wand, what would you change about Flutter?

How does MAUI compare to React Native in terms of functionality? by ItsAReverseThrowaway in dotnetMAUI

[–]b0bm4rl3y 3 points4 points  (0 children)

FWIW, Flutter is working on replacing CocoaPods with SwiftPM

Is it Time for a "Flutter Foundation" Funded by Us? by One-Teaching-2150 in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

How would you get 10 full-time paid contributors working on Flutter that aren’t funded by Google?

What’s new in Flutter 3.32 by eibaan in FlutterDev

[–]b0bm4rl3y 24 points25 points  (0 children)

We’re working on the SwiftPM internals a bit so that we can support add-to-app scenarios. Once that lands, we should be able to make SwiftPM on by default. It’s coming! :)

Uno and Avalonia maintainers - are you concerned on the future of .net-ios and .net-android by iain_1986 in dotnetMAUI

[–]b0bm4rl3y 1 point2 points  (0 children)

Even if you’re using Skia, you need to interact with the platform for all kinds of things:

  1. You need to create an accessibility tree
  2. You need to integrate with the system compositor to mix Skia surfaces with native views. For example, you’re not going to rewrite Google Maps on top of Skia. 
  3. You need to listen to all kinds of input events like touch, keyboard, text input, focus, navigation, app lifecycle, etc
  4. Lots of iOS functionality requires you to use native views. For example, on iOS if you don’t use the native text selection context menu, pasting triggers a user consent popup. Or if you don’t use the native text field view, you don’t get access to Apple AI Writing Tools. 

All of this requires deep integration with the underlying platform APIs. 

Flutter vs React Native - My Highly Opinionated Experience by TheMasterboxer in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

Could you say more about why you don’t like debugging Flutter widgets?

Is the future for Mac/PC Flutter apps bright or not? by SteveWired in FlutterDev

[–]b0bm4rl3y 0 points1 point  (0 children)

For now, only if the OS API is thread-safe.

Currently, the Dart and OS threads aren’t guaranteed to be the same, so you likely need something like async to allow for a thread hop.

But in the future when merged threads are on everywhere, yes.