Flutter is Google’s UI framework for building beautiful, high performance applications for web, desktop and mobile, both Android and iOS, from a single codebase.
Flutter is written in Dart code, a programming language made by Google as well but previously only used for inside projects, a good example would be Google Ads. The use of Dart though has grown remarkably since Google announced the release of Flutter back in 2017.
I personally first heard about Flutter from one of my students. He happened to mention coming across it while doing some research and told me to check it out. A few weeks later, the memory of his words came back to me while I was looking up memes on one of my regular breaks between work, don’t judge, I’m pretty sure you do it too. The story might not win me any writing awards but that’s how it all begun.
At first, like most people would, I found having to study Dart, another programming language altogether, a little off putting at first. But after a relatively short period of time, I was able to pick it up with ease. This was thanks, in part, to how dart is structured seeing as it resembles languages like JavaScript, Java and so on. This makes it feel more familiar and definitely makes it easier to wrap your head around. It also has some very intuitive features that make it very versatile and powerful but in a subtle way.
Let’s turn our attention now to some of the things that make Flutter stand out from the pack and why you’re gonna love it.
- Highly performant.
Flutter apps compile to JavaScript for the web and ARM and x64 machine code for mobile and desktop. This goes a long way in making them sleek, smooth and fast. This also reduces the size of the app which heavily improves app startup times, that’s the amount of time it takes for your app to become interactive after being launched.
- Fast Development Cycle.
For those of you who have a background in web development, switching over to mobile app development can be frustrating at times because of all the time it takes to build your code, run it and finally see what you have built. Flutter does away with this by implementing hot reload when updating bits of changed code after the app is built initially.
This makes development very fast seeing as you can get instant updates for changes you make in your code. In the long run, development times are greatly reduced.
- Artistically Liberating.
Flutter widgets, the building blocks of every flutter app, are very customizable. This allows the developer ample room to be creative. When it comes to UI designs with Flutter, the sky is the limit really. With beautiful pre-built widgets for both iOS and Android, all of which are customizable, and the possibility to combine different widgets to come up with new designs, the range of possibilities is near infinite.
- Beautiful.
Even without adding any custom styles yourself, flutter UI components have a very sleek signature look and feel about them. This is because Flutter comes with Google’s Material Design principles straight out of the box. If you’ve never heard of Google’s Material Design principles, these are like UI design standards set by the design team at Google. If you’ve used Materialize CSS before then you’ve already come across another one of its implementations. These principles are what Google apps are made in top of. A good example would be Gmail, YouTube, Google Play, the whole batch.
Considering how much freedom one has when customizing UI components with Flutter, the fact that they already look neat to begin with is pretty handy. This reduces the number of hoops you have to jump to make beautiful UI. Those of us with a background in HTML and CSS know how painstaking it is to have all your styling start from zero.
Now that you have an idea of Flutter’s capabilities, let’s look at one of its core working principles, that is, widgets.
What is a widget?
In Flutter, this is a very simple question to answer because everything is a widget. Absolutely everything in Flutter is a widget. Every single UI component is either its own standalone widget or a tree of multiple ones. Getting yourself familiar with all the different prebuilt widgets would therefore be a good place to start. With this basic knowledge you can now move on to building your own custom widgets when need may be. This actually doesn’t happen that often owing to the huge collection of pre-built ones covering almost eve.
There are widgets for layout, animations, UI components like Date-Pickers, Lists, icons and so many more.
Conclusion.
Flutter might only be relatively new to the developer community, attracting a lot of attention with some developers being super into it while other still hold a level of reluctance to it. Considering my own experience in using it, there is a lot that Flutter has to offer. Seeing as the Flutter and Dart teams at Google keep working to improve these platforms each day, things can only get better.
As far as cross platform development is concerned, there is only one that ticks all the boxes, Flutter for the future.
If you would like to do some more research on Flutter and Dart, the links below might be a good place to start.