5 ms·
I also, independently, started writing an app in Flutter for fun (no experience in mobile/desktop GUI work, several years since I've worked in front-end web). I
by singhrac 6y ago
I also, independently, started writing an app in Flutter for fun (no experience in mobile/desktop GUI work, several years since I've worked in front-end web). I can give a list of pros/cons that probably overlaps what you've heard:
Pros:
- The toolkit feels fairly mature and not too hard to parse. I think there's a lot of "this class works with defaults and breaks otherwise" feeling, though the core components are robust enough that this isn't a huge concern.
- It was super easy to build for Android, iOS, and Mac all at the same time. Everything Just Worked (so far).
- It was very performant
- Very easy to add your own painting code if you wanted a custom component.
- The debug view is so so useful for figuring out painting and layout issues.
Cons:
- I didn't understand Futures very well (and honestly still don't); this might be an issue with people working with modern Python/JavaScript/whatever.
- Because of the above, interacting with a database / JSON on disk felt a little contrived. In particular JSON parsing felt very non-obvious, even though it feels like at this point is should be a first-class feature.
- It still produced relatively fat binaries, though not sure how much of that was debug/release mode.
- My computer ran hot while running Flutter, though not sure how much of that is debug/release mode.
Overall I'm very very happy with it. It was the kind of project where when I had time to work on it, after work, I had a list of things I wanted to do, and I could quickly check off feature after feature instead of fighting the system. That made me add more desired features, etc., but very enjoyable.
- r_police 6y agoFutures are very similar to JS Promises. They even have similar APIs and can also be worked with the "async/await" of Flutter
- scollet 6y agoI believe that's a dart feature just for comparison to JS instead of the framework.
- realusername 6y agoI would add a few cons to the list (I agree with all the pros): - Testing can still be improved in my opinion, there's no mutation testing yet and it's still pretty verbose. If you are coming from the JS world, that's clearly superior, if you are coming from the Ruby world however, you will be disappointed a little bit on that level. - I really don't like the navigation system, it's pretty hard to know the current route and you have to go out of your way if you need to interact with the current route dynamically. - Webviews are kind-of alpha, which means no tab support, that's a killer for any kind of oauth using webviews.
- cbolton 6y agoRegarding the navigation system, they recently introduced a new API that probably addresses your issue: https://medium.com/flutter/learning-flutters-new-navigation-and-routing-system-7c9068155ade https://medium.com/flutter/learning-flutters-new-navigation-... .
- rafram 6y ago> My computer ran hot while running Flutter, though not sure how much of that is debug/release mode. Debug mode is easily 5-10x slower/more resource-intensive than release on devices I've tested on.
- scollet 6y agoAdding to the list, still not clear on global state management best practices.
- cercatrova 6y agoBest practices currently are to use Provider, or the new Riverpod (still in beta for now) once it's better. Made by the same person, Remi Rousselet.
- scollet 6y agoThanks for the tip
- pkphilip 6y agoSome of the drawbacks I have noticed with flutter: 1. One of the biggest problems with flutter is the IDE integration for the design aspects. In my opinion, the development experience is much worse than Xamarin, .NET/Mono, Delphi, Lazarus etc. 2. The documentation is not very good and can be quite out of date. 3. The components are mostly all UI/layout related. There aren't good components for DB integration etc. 4. I have noticed is that between version upgrades of flutter, there can be multiple problems - but this is not surprising that flutter is still quite new.
- madmulita 6y agoI thought we'd agreed on hating parenthesis. The example on Flutter's landing page shows 9 lines of square, rounded and curly braces with some sprinkled commas and semicolons.