Why you should try Flutter for Cross-Platform Development

Siddharth Notani
Why Flutter?
Published in
6 min readOct 7, 2019

My opinions on why everyone should try Flutter for cross-platform development

Platforms supported by Flutter

With the latest release of Flutter 1.9 and Dart 2.5, everyone is starting to know more about Flutter and trying it out. But let’s start with those of you who are new to Flutter…

So, What is Flutter?

It’s a cross-platform tool intended for creating Android and iOS apps from a single code base by using a modern, reactive framework.

Flutter apps are built using Dart, a simple object-oriented programming language. The first stable version of Flutter 1.0 was released in December 2018 and recently they announced Flutter 1.9 and Dart 2.5. Take a look on how Flutter has evolved in this time period.

Evolution of Flutter since its first release

I first started playing around with Flutter before the first stable version was released and built my first project in Flutter and Firebase soon after it was released. I enjoyed it that much that I decided to participate in the Flutter Create 2019 challenge, which was great fun!

I know you must be wondering, Why did you choose Flutter? What does it have that others don’t? And obviously, Why should I use it? … So let’s dive straight into it.

Why I chose Flutter

At first I wasn’t too sure about Flutter as it was a new cross-platform tool and there wasn’t much documentation or people using it at the time. I also thought that there are already other well established and known cross-platform solutions such as Xamarin, PhoneGap, Ionic, React Native and Flutter would be no different.

I then came across the Flutter Widget of the Week videos by Flutter Developers on YouTube which really caught my eye, amazed me and made me try building my own app in Flutter. This great initiative consists of short weekly animated videos (around 60 seconds long) which show you what the most important widgets do, what they can be used for and a demo of how to use them along with their code. Take a look yourself on how these work.

Obviously, Google itself uses Flutter for their mobile/web applications but other big brands such as AliBaba (with more than 50 million users), CapitalOne, Square and BMW also build their applications with the use of the Flutter SDK, which shows how popular it is becoming and made me really give it a try.

I started off by having a read through the Flutter Docs page to get an idea of the syntax (I also had a quick scan through the Dart Documentation to familiarise myself with the syntax of Dart for any logic code I’ll be using in my app). There is also a lot of documentation for devs that are coming to Flutter from other platforms so you can apply your existing knowledge of the platform to build apps in Flutter. For example, if you are an Android, iOS, React Native, Web or Xamarin.Forms dev you can see the similarities between your platform and Flutter on the corresponding site.

My first app was the classic “Hello World” app (who doesn’t?) and then made my way through to a bit more complex apps with the help of the Build Native Mobile Apps with Flutter course by Udacity. At that time there wasn’t many resources out there but you can now access the Flutter codelabs by Google which give you a step-to-step guide to writing your first Flutter app. After some time, I used the GitHub Linguist API to build a little more complex app which you can find on my GitHub Repo along with my other few Flutter projects such as my participation in the Flutter Create 2019 challenge.

Also check out this incredible Instagram clone using Flutter by Kalle Hallden if you’re interested in building more complex apps.

More recommendations on how to get started with Flutter throughout the rest of the post…

What is different about Flutter

One of the features that I really enjoyed using and is really cool is the Hot Reload in Flutter. What is this? Well, let’s say we change something in our code and then click the “Hot Reload” button in our IDE, this will allow you to see the result of the change in less than a second without the need of re-building and restarting the whole application. It is not only fast, but also very smart. You can change UI during application runtime and if you hot reload the app, the data remains the same! Pretty cool right? Take a look at this short animation to see an example…

GIF to show how Hot Reload works in Flutter

Another great thing about Flutter is that everything is a widget! There is a wide range of widgets beautifully catalogued for you. Not only does it make it hassle-free but also helps you make a functionally amazing app!

Your app class is a widget (MaterialApp), your whole layout structure is a widget (Scaffold), and basically, everything is a widget (AppBar, Drawer, SnackBar). Do you want your view to be centered? Wrap it (Cmd/Ctrl + Enter) with Center widget!

Take a look at the video below by the Flutter team to understand what a widget is and how you can start building your first Flutter widget, it’s a great starting point for those of you who are new to this.

For developing mobile applications, Android and iOS have a single codebase! What else do you want? There is no need for using Javascript as a bridge to set up codebase, which will definitely save you both time and resources. As Wm Leler puts it: “Flutter is the only mobile SDK that provides reactive views without requiring a JavaScript bridge.” All of this contributes to fast app startup times and less performance issues.

When I started off with Flutter in 2018, I did encounter some bugs and issues when developing my application, but the good news is that both Flutter and Dart are open-source and provide extensive community support to help out with any issues you may encounter. I reported some issues I had on their flutter Github repo and I received great help and support by the team members. As it is open-source, you can contribute to the repository yourself and fix some issues or make some improvements if you want to :)

Why you should try Flutter too

With the latest release of Flutter 1.9 and Dart 2.5, Flutter supports Android, iOS, Web, Desktop and Embedded (basically everything!).

Personally, what I have found after coding with Flutter for a while is that the syntax is very clear to understand as it all consists of widgets and once you understand what a widget is, then you are going to find it easy to build simple apps really quickly. I’ve also noticed that once you familiarise yourself with the Flutter syntax and OO programming with Dart, you can code in a very clean way which reduces code for building apps significantly compared to native mobile app languages such as Swift and Kotlin.

As far as simplicity is concerned, Flutter claims in its docs that programming with Flutter is so easy that no prior programming knowledge is required: “Experience with object-oriented languages is definitely helpful, but even non-programmers have made Flutter apps!” There’s only one way to find out whether this is true…

You might have also heard about the open source Google Fuchsia OS, which I believe is going to be next big hit by Google. Their initial release was 3 years ago but earlier this year they launched the fuchsia.dev website for developers. And why is this relevant to this post on Flutter? Well, Fuchsia’s user interface and apps are all written with Flutter. So who knows? Soon everything on your smartphone could be fluttery…(Sorry for the pun! ツ).

Flutter and Fuchsia are the future…

More about Fuchsia on my next post…

Thanks for your time!

--

--