My Introduction to Flutter

I sat down last weekend and spent some time with Flutter. Though I only wrote one small sample app in it, and I’m not a mobile developer by trade, I wanted to write down a few of my thoughts on it.

The Good

Flutter is Written in Dart

I’ve become a big fan of Dart over the past few weeks. It lives in a space that is approachable from both a C# and a JavaScript perspective, has an approachable package management system, supports functions as first-class objects,  and approaches “strong typing” via dynamic objects with type annotations.

Flutter Compiles to Native

The title says it all. Apps written in Flutter compile to native code on iOS and Android.

Flutter Supports Hot Reloading

This is something that you can see in demos and videos, but it has to be experienced to be fully appreciated. It cuts down on development cycles significantly, and is just plain satisfying to hit the “r” button and watch your changes spring to life without bringing the application down and up again.

The Bad

Flutter is in Alpha

Depending on how adverse you are to deploying alpha software to production, this could be a good or a bad thing. The bright side to Flutter being in alpha means it can only get better!

Some of the More Useful Examples are Buried

I know that this is less about the framework and more about the support system, and that opinion on this may vary from person to person, but the Getting Started tutorials for Flutter, despite being very good at explaining the framework and how to get up and running, do not, in my opinion, dive into the proper way of building multi-screen apps early enough.

Consider the sidebar:

navigationBar

The section that covers making multi-screen apps, and introduces some of the core concepts is not until “Routing and Navigation”, and the previous examples, while good and useful (Building Beautiful UIs with Flutter was particularly helpful), give examples with no Navigation. I highly recommend developers new to Flutter go through the “Get Started”  and “Build UIs” section, but before they sit down and write any code, they check the excellent examples on the Flutter GitHub Page.

A Final Important Thought

This is what I wanted to really talk about:

There is no Template Engine Or WSYWIG Editor

When I first started developing with Flutter I was somewhat surprised to learn that they do not have WSYWIG editor like other UI frameworks (XCode and iOS,  Micoroft Blend and WPF, Android Studio and Android). If you jump in the Flutter Gitter, the maintainers have mentioned that they don’t have any public plans to release one:

noPlans

And you know what? I’m okay with that.

Earlier, I mentioned there is a magic to hot reloading your app, and this is why I don’t feel like Flutter strictly needs a WSYWIG designer. With Flutter, the app is the designer. You don’t like the style of a particular word box? Go find the Widget that contains it, edit the style property, hot reload the app and marvel at your design acumen!

The biggest downside I see is it raises a barrier to entry for people who don’t know how to code and want to design an app’s user experience.

Is there a space for a WSYWIG designer? Of course!

Is Flutter a great framework without one? Definitely!

Will I be using it for my future mobile endeavors? You bet!

Happy Coding!

5 thoughts on “My Introduction to Flutter

  1. I’m still fairly new to both Dart and Flutter and also wondered, at the start, why there wasn’t a UI builder. But I think, once you hit that light bulb moment and understand how the UI is put together, it all makes sense and a WSYWIG seems less necessary.
    If I have one, small criticism it’s that the examples included with the SDK seem to range from very simple (hello world), straight to complex (stocks and gallery). A few more intermediate examples would be very useful. Having said that, I have discovered a couple of ongoing tutorials on YouTube which have been a great help to me.
    I’m looking forward to building a complete app with Flutter – if only I could come up with an app idea! 🙂

    Like

    1. I can see what you mean about the examples “jumping” like that. My personal preference is to go headfirst to the more complex ones.
      Glad they helped you! Which videos in particular did you find helpful?
      My suggestion for app inspiration is to look at something you use every day that could be made even 5% better with the addition of an app and try it!

      Like

      1. I think I struggle with the more complex ones because I don’t seem to have a lot of time to dive in to Dart & Flutter so not enough time to study the code in detail in order to break it down and work out what’s going on – or maybe I’m just getting old and my brain can’t cope anymore 😛

        The two series are:

        Bram Vanbilsen – https://www.youtube.com/channel/UCqibwXKXYPpnPuo5xg5l2xA
        Brandon Donnelson – https://www.youtube.com/channel/UC9EOyw-hs_rOOvKHWeJ4B2Q

        Like

    1. Thanks for sharing those videos! I just took a look at the Navigation/Routing video and its a good explanation/intro. You clearly helped Ben in his journey, so well done!

      Like

Leave a comment