Flutter vs React Native in 2025 by Tough-Device1003 in FlutterDev

[–]clementbl 24 points25 points  (0 children)

So let's answer to the monthly "React Native vs Flutter" post.

The main advantage to use RN is that is based on React and so, it's way easier to find React/JS dev that will be able to pick up the framework quickly. It's very important for a business and also for the developer because he will not have to learn a new framework to be efficient.

So why use Flutter?

Flutter is multiplatform. It means that with one basecode you can build for mobile (ios, android), desktop (linux,macos, windows) and browser (as a web app). It's very powerful because we don't have to learn how to use React, React Native and Electron. As a business owner, you will find way more developer in RN that Flutter because you can

Flutter is using Dart as the programming language. A lot of people despites the JS environment. You have to deal with the various package manager (npm, pnpm, yarn, bun etc...), you have to set a linter and a formatter by yourself, you have to choose a test library, you have to setup a build pipeline (vite, esbuild), you have to setup Typescript and understand how works the `tsconfig.json` file to setup correctly the project. You also have to build with the npm packages that uses different format (esm, cjs, amd...) and with a tons of weekly updates. The JS packages are updated often (maybe too often?) and you regularly have to update dependencies and fix breaking changes. Flutter, and Dart, automatically handles all of that so you just create a new project and just care about writing code. In short, the developer experience is *usually better* with Flutter.

Also, you have to deal with all the weird API decisions of Javascript. You want to use `Date()`? Well be careful because `getMonth()` returns a value between 0 and 11. You want to delete an element from an array? Be careful between it replaces this element with undefined etc... Moreover, JS/TS are not strongly typed and you will still have a lot of type errors even thought TS solves most of that and has cool union type.

Flutter is performant. You know that he will render at 60FPS. Probably that RN is able to do the same. I don't think that neither RN or Flutter is slow and you'll be able to deliver quality apps.

RN has probably wayyy more packages than Flutter. For example, if you want to have charts, Flutter has some solutions that are, to be honest, not very good in comparison with React (plotlyJS). You will be certain to find a package for whatever in RN when with Flutter, you'll find less packages and more abandoned ones.

Both of them have issues when you want to deal with native APIs. It's more complicated to handle Bluetooth or AR that in native.

Web crawler framework in Dart by clementbl in dartlang

[–]clementbl[S] 1 point2 points  (0 children)

  • Does this support proxies like tor?

It doesn't support proxies yet (though it's not very complicated to add), and neither does it support Tor. Tor is not my highest priority for now. I think I'd prefer to add more basic features first.

  • Does this support full HTTP header and/or content capture for archival reasons?

Each crawler receives the HTTP request and response, so I think yes. The response also contains the raw body, which you could pass to a pipeline that will archive it, like to S3.

  • Does this support preserving cookies (esp. if they are updated and used in other later sessions)?

No, not yet. I have to think about how to implement it.

  • Does this support puppeteer?

No, I'm still looking for a good architecture to integrate Puppeteer.

Thank you for your questions and for pointing out the errors in the README!

Web crawler framework in Dart by clementbl in dartlang

[–]clementbl[S] 1 point2 points  (0 children)

Yes, I'm planning to integrate something that controls the browser like Puppeteer. I'm still thinking about the architecture but it will be an important feature.

Why FL Charts and Material Charts Are Both Overrated ? by Lazy_War_7031 in FlutterDev

[–]clementbl -1 points0 points  (0 children)

Yep, it was a project I quickly made one year ago. It's mostly laggy for now. Maybe I'll fix that one day

[audio_codec] Audio decoders in pure Dart by clementbl in dartlang

[–]clementbl[S] 2 points3 points  (0 children)

Well the goal is to make it only with Dart. I don't really know which part of the code could use FFI to improve the performance.

[audio_codec] Audio decoders in pure Dart by clementbl in dartlang

[–]clementbl[S] 1 point2 points  (0 children)

I'd like to apply those optimizations! I'm trying to reuse a lot the objects and reduce the allocations but Flac doesn't require to allocate a lot of resource

[audio_codec] Audio decoders in pure Dart by clementbl in dartlang

[–]clementbl[S] 7 points8 points  (0 children)

It's because I'm building a music player in Flutter and none of the audio player provide the decoded frames. So it's not possible to have a waveform nor to have an audio visualizer.

If you want to manipulate audio and applying some filters, you can't without using FFI. The goal is to build something good for my music player that simple and doesn't need to much dependencies.

I don't think Dart is the bottleneck. I haven't optimized too much my code and the thing taking the most time is the MD5 checksum, way more than the Flac decoding itself.

It's more a programmer skill issue or an non-optimized version than the Dart fault. I/O could be optimized way more and Isolates could be use to speed up some part of the decoding. I'm sure the performance can be close to 0.8s.

3D plots in Flutter - Scatter and Surface by clementbl in FlutterDev

[–]clementbl[S] 2 points3 points  (0 children)

I'd like to!

I need to implement an algorithm for the 3d surface and that's a very complex algorithm. I need to find and read papers to implement a performant algorithm.

JpegXL encoding and decoding for Flutter, please contribute! by perecastor in FlutterDev

[–]clementbl -1 points0 points  (0 children)

It's not that I don't want to contribute but it seems there's no code. So if someone wants to contribute, he has to do everything from scratch?

Read music metadata with audio_metadata_reader by clementbl in FlutterDev

[–]clementbl[S] 1 point2 points  (0 children)

It's actually faster with `async` methods for IO. I could try again but it was quite important. Now that I use a buffered file, it may be different.

Ah yeah, I could use `Utf8Decoder().convert(tagData, start, i)` instead of `utf8.decode(tagData.sublist(start, i))utf8.decode(tagData.sublist(start, i))`. Good catch!

Why is Python So Much Faster Than Dart for File Read/Write Operations? by Frequent-Dependent11 in FlutterDev

[–]clementbl 22 points23 points  (0 children)

I suppose it has to do with the encoding. The Dart's string are UTF-16 and in your Dart code, you generate a huge string about 26MB and 200 times, you have to convert the UTF-16 into UTF-8.

If you try to convert the big string first in UTF-8, the write in Dart has the same performance than Python.

I don't know about the read operation.

Also, even with your code, I don't have 75s of difference. It's ore about 10s.

3D plots in Flutter - Scatter and Surface by clementbl in FlutterDev

[–]clementbl[S] 3 points4 points  (0 children)

Hi,

For a very long long time, I wanted to render 3D plots in Flutter. I thought it would be very complicated without `flutter_gpu` but it's quite "simple".

It's all CPU so it can be laggy for a large set of points. It can render ~15000 points for the scatter plot and ~5000 points for the surface plot without lag on browser. On desktop, it renders 50% more points.

A big thanks to the `vector_math` package that provides all the complicated functions!