What really grinds my gears in Flutter
Today we're looking at some of the most "frustrating" things in Flutter. Let's have a look if we share the same experiences.
My latest post listing reasons why I enjoy Flutter so much was a bit of a puff piece, frankly. Flutter is definitely one of the most fulfilling technologies out there, but it’s not without its flaws. Let’s discuss some of the things that frustrate me the most. We’ll start with the web issues.
This is my personal opinion, and even though I have worked with Flutter for quite some time, I may be wrong in some cases. Please let me know if something is incorrect or gets fixed in the future.
Web issues
Some of the experienced Flutter developers I personally know would not select Flutter as their primary tool for building a website. It’s a bit of a different discussion when it comes to a very specific set of apps that could as well be a desktop tool like Supernova, Rive, Superlist, or Rows. However, building big scale consumer-facing… portals entirely in Flutter may be out of question.
Don’t get me wrong. I use Flutter web regularly e.g. for my presentation companion apps. In my consulting work I participated in several Flutter web projects. It worked mostly fine, but the class of problems that need to be solved is vastly different from what a typical web developer faces on a daily basis.
I suspect there’s still a long way before Flutter will feel and work equally well as classic web apps. Here are some of the most pressing issues I see right now.
Default behavior
Anytime you run a Flutter mobile app, you can quickly deduce this from the little things like scrolling with two fingers make it go twice as fast or rotation of the app looks a little bit off compared to a native one.
Similarly, there are things that are odd in Flutter web apps. I immediately notice that keyboard shortcuts or focus behavior are just a little bit different from what I would expect. It can be tweaked to work similarly as in a simple HTML document with Actions and Intents, but developers rarely remember to handle focus changes, space or tab behavior, cursor decoration etc. [As an exercise open any Flutter web app and press space, then open Twitter and do it again]
Some other issues worth noting are lack of proper text selection (which hopefully will be fixed with this change), not being able to find words with the browser find box, and more subtle challenges like bundle size or mobile performance.
I feel like I need to emphasize that some of the issues mentioned here are not framework bugs, but rather consequences of mobile developers building web apps. As such we tend to make mistakes not understanding how the web form factor differs from a single window mobile universum.
Remaning chapters:
Tough choice
Scrolling and physics
General feeling
GPU load
Reinventing the wheel
Desktop issues
Shaders and jank issue
This weeks inspirations
Neubrutalism style in UX: a twist on the dominant modern minimalist
A quick look at what the style is, why we need it, and a list of websites using it in different ways.
One of the coolest website portfolios I’ve ever seen made in WebGL