12 votes

Anyone here using Flutter?

In the rare chance you haven't heard of Flutter, here's the link: https://flutter.io

Flutter just officially left beta with v1.0 December 4, last year. The code is written in Dart, and deploys on Android, and iOS (and will run natively on the rumored Fuchsia OS).

So for those of you that have used Flutter or are currently using Flutter.

  • What are you working on?
  • Why'd you choose Flutter?
  • What do you like about Flutter?
  • And what do you dislike about Flutter?

 

I'll start:

I'm working on a niche art app. I myself do not do that type of art, but knowing people that do, I wanted to create a tool to fill in the lackluckster market for Chromebooks and Android.
I chose Flutter because:

  • I wanted to try something new, and what newer than something that was (at the time) in beta?
  • Custom Views in Android are a hassle.
  • I will be able to release on both Android and iOS (semi-)natively without having to code it twice.

Here's what I like about Flutter:

  • Layouts are really simple.
    (though you can easily let it get clustered if you don't think too much about it.)
  • Design isn't an afterthought.
    Animations are built in (and simple), themes aren't hard-coded, and Material Components get more attention here. (Still waiting for Shapes on Android)
  • It's fast by design.
    Flutter uses its own custom rendering engine (Skia). I've never experienced any stutter with the built-in components, and when I caused lag (with heavy I/O) Flutter/Dart had tools in place for me to narrow down exactly what was causing it.

What I don't like about Flutter:

  • It has poor mouse/trackpad support.
    Right clicks, not a thing. I can workaround this with a double-click/long-click, but for a desktop OS, this isn't optimal. Scrolling, that's panning, this should be differentiated. There's a difference between using a scrollwheel and moving finger around on the screen. According to Flutter there is not. There's also currently no support for mouse hovers which I have needed very much.
    There is a pull-request for adding support for all of these, but the developer hasn't done anything since code review.
  • Keyboard support, while there, is lackluster.
    Ctrl, Shift, Alt. These have to be gotten with the meta code. There's no built-in function for checking those. Text fields don't support the tab key to navigate. And text formatting (bold, italic, etc.) isn't possible with text fields without the use of a library (or making it yourself).

I was trying to think of a third dislike, but I can't. My complaints are on missing APIs for Chromebooks. That's it. I really like Flutter, I plan on using it more, and if they won't add support for mouse/keyboard, maybe I'll have to contribute.

I'd love to hear what your thoughts about it is.

14 comments

  1. [9]
    kavi
    Link
    I'm really curious as to why you need mouse/trackpad support. AFAIK, Flutter is used to make apps for iOS and Android, and those both use touchscreens.

    I'm really curious as to why you need mouse/trackpad support. AFAIK, Flutter is used to make apps for iOS and Android, and those both use touchscreens.

    2 votes
    1. [6]
      Diff
      Link Parent
      You can plug a mouse into an android device. Or a keyboard. Or a drawing tablet. Although yeah that's a pretty small niche of users who would ever bother with that even just to play around.

      You can plug a mouse into an android device. Or a keyboard. Or a drawing tablet. Although yeah that's a pretty small niche of users who would ever bother with that even just to play around.

      3 votes
      1. [5]
        kavi
        Link Parent
        I knew about the keyboard (keyboard cases for tablets are quite common), had no clue about the mouse or the drawing tablet though. Out of curiosity, why would you use a mouse on an Android device?

        I knew about the keyboard (keyboard cases for tablets are quite common), had no clue about the mouse or the drawing tablet though. Out of curiosity, why would you use a mouse on an Android device?

        1 vote
        1. [4]
          Diff
          Link Parent
          I did have one use case for it. You know those cheap little VR headsets you just slip your phone in? Got one of them, and it didn't have any magnetic trigger or a capacitive button that taps on...

          I did have one use case for it. You know those cheap little VR headsets you just slip your phone in? Got one of them, and it didn't have any magnetic trigger or a capacitive button that taps on the screen so there was no way to control it, you could just look around. Some apps treat "staring without moving" as a click. But not every app, so I plugged in a wireless mouse, moved the cursor to a blind spot between each eye, and clicked on the mouse to trigger a tap. And every single app supports that as if I had just touched the screen.

          Another use case, my sister won a super cheap like $40 android tablet at some school raffle thing, and a few months later the screen glass broke. Still worked fine visually, but the touch sensor was toast. Just plug in a mouse and keyboard and it's now a slightly unwieldy Android-powered laptop. Or get one of those bluetooth keyboard/trackpad stands, that'd be even better.

          4 votes
          1. [3]
            kavi
            Link Parent
            I'm surprised then. Its quite a shame that the support for keyboard and mice is incomplete.

            I'm surprised then. Its quite a shame that the support for keyboard and mice is incomplete.

            1 vote
            1. [2]
              Diff
              Link Parent
              Incomplete in what way? When I say "Every single app supports that as if I had just touched the screen" I mean it in a good way, all my apps support mice out of the box just how you would expect it.

              Incomplete in what way? When I say "Every single app supports that as if I had just touched the screen" I mean it in a good way, all my apps support mice out of the box just how you would expect it.

              1. Jedi
                Link Parent
                In that sense it work exactly the same, all clicks are interpreted as a touch. But there are Android APIs for the mouse specifically. Like getting the pointer location (without interaction), right...

                In that sense it work exactly the same, all clicks are interpreted as a touch. But there are Android APIs for the mouse specifically. Like getting the pointer location (without interaction), right clicks, or being able to change the cursor.

                2 votes
    2. [2]
      Jedi
      Link Parent
      I'm building on and for Chromebooks mainly. I get that Flutter is mobile-first, but they are also trying to target Chrome OS and Fuchsia. They have tags for both platforms and have made changes...

      I'm building on and for Chromebooks mainly. I get that Flutter is mobile-first, but they are also trying to target Chrome OS and Fuchsia. They have tags for both platforms and have made changes targeted solely at those platforms, it's just not their highest priority.

      I was hoping that by v1.0 they'd have at least some of those taken care of.

      1. kavi
        Link Parent
        Ah, forgot about ChromeOS and Fuschia. My bad, I can see why crappy keyboard and mouse/trackpad support is an issue.

        Ah, forgot about ChromeOS and Fuschia. My bad, I can see why crappy keyboard and mouse/trackpad support is an issue.

        1 vote
  2. Greg
    Link
    I haven't used it yet, but I'm tentatively interested. Have you worked with React Native before? Differences in project maturity aside, I'd be interested to know if you see any significant...

    I haven't used it yet, but I'm tentatively interested.

    Have you worked with React Native before? Differences in project maturity aside, I'd be interested to know if you see any significant advantages one way or the other.

    1 vote
  3. Soptik
    Link
    I've tried to develop for android. Three times. Once with Xamarin (oh, it took me three days to even run the code), and twice with Flutter. I had much better experience with Flutter, but I decided...

    I've tried to develop for android. Three times. Once with Xamarin (oh, it took me three days to even run the code), and twice with Flutter. I had much better experience with Flutter, but I decided I don't like phone apps development and I'll stay with web app backend. It's so complex and I just cannot press myself into learning it properly - I just find web technologies much more intuitive.

    But there is one thing that Flutter gave me - Dart. Thanks to Flutter, I've started using Dart and it's the best decision I've made so far. I love the language, it's like C#, but with nicer syntax, much more lightweight and it just works, every time, everywhere. I've gone so far that I'm just building web application just in Dart - and it runs on Raspberry Pi just fine - something I'd be afraid to do with .Net Core. With Dart, maybe I'll decide to give Flutter one more try.

    1 vote
  4. [2]
    Nitta
    Link
    I started using Kotlin a while ago and honestly don't want this thing to push it out of the market. And it's unknown if Flutter is really going to be measurably better. Google likes pushing new...

    I started using Kotlin a while ago and honestly don't want this thing to push it out of the market. And it's unknown if Flutter is really going to be measurably better. Google likes pushing new things chaotically.

    1 vote
    1. Greg
      Link Parent
      That's one of the things I haven't figured out, actually: why's Flutter written in Dart rather than Kotlin? Seems as though it would have strengthened both, rather than setting them against each...

      That's one of the things I haven't figured out, actually: why's Flutter written in Dart rather than Kotlin? Seems as though it would have strengthened both, rather than setting them against each other.

      1 vote
  5. rickdg
    Link
    How is it right now for making content-heavy CRUD apps? The kind that should be a web app but need to support iOS with things like push notifications or reliable storage.

    How is it right now for making content-heavy CRUD apps? The kind that should be a web app but need to support iOS with things like push notifications or reliable storage.