DEV Community

Cover image for What is Flutter and Why You Should Learn It in 2020
Gaël Thomas for HereWeCode

Posted on • Updated on • Originally published at herewecode.io

What is Flutter and Why You Should Learn It in 2020

What is Flutter?

Flutter is a free and open-source mobile UI framework created by Google and released in May 2017. In a few words, this allows you to create a native mobile application with only one code. It means that you can use one programming language and one codebase to create two different apps (IOS and Android).

Flutter refers to two important things:

  • An SDK (Software Development Kit): A collection of tools that are going to help you to develop your applications. It includes tools to compile your code in native machine code (code for IOS and Android).
  • A Framework (UI Library based on widgets): A collection of reusable UI elements (buttons, text inputs, sliders, etc.) that you can personalize for your personal needs.

To develop with Flutter, you will use a programming language called Dart. It’s also Google’s language created in October 2011 but improved a lot these past years.

Dart focus on front-end development; you can use it to create mobile and web applications.

If you know a bit of programming, this language is a typed object programming language. We can compare Dart's syntax to Javascript.

“Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.” - Google, flutter.dev

Why you should learn Flutter?

I selected some of the reasons why I like Flutter and I want to use it next year. I will give you details and my feedback just below.

Companies using Flutter
Companies using Flutter

Simple to learn and develop

Flutter is a modern framework, and we feel it! It’s a way more simple to create mobile applications with it. If you experienced Java, Swift, or React Native, here, it’s different.

I personally never liked mobile application development before I’m using Flutter.

What I love with Flutter is that you can create a real native application without a bunch of code.

Quick compilation: maximum of productivity

Thanks to Flutter, you can change your code and see the results in real-time. It’s called Hot-Reload. It takes a short amount of time when you save to update the application itself. Some significant modifications force you to reload the app, but if you do work like design, for example, change the size of an element, it’s in real-time!

Ideal for startup MVP

If you want to show your product to investors as soon as possible, you can use Flutter!

My top 4 reasons to use it for your MVP:

  • It’s cheaper to develop a mobile application with Flutter because you don’t need to create and maintain two mobile apps (one for IOS and Android).
  • One developer is enough to create your MVP.
  • It’s performant; you can’t notice the difference between a native application and a Flutter one.
  • It’s beautiful; you can easily use widgets provided by Flutter and personalize it to create a valuable UI for your customers (find just below examples of applications made with Flutter).

Flutter App Example - ToDo List
Flutter App Example - ToDo List

**Good documentation
**Even if it’s important for a new technology to have a good documentation. It’s not always the case! Something very interesting with Flutter is the documentation. You can learn a lot from the documentation and everything is detailed with easy examples for basic use cases. Each time I’ve a problem with one of my widget in my code, I can check the documentation and the answer is inside.


Flutter Documentation Architecture

A growing community

You can trust me: Flutter have a robust community, and it’s only the beginning!

As you may know, I love to share my knowledge and useful content on programming on my website. I need to know I’m working on a technology full of potential with a lot of backers.

When I started Flutter, the first thing I did was searching communities, and surprise… there is a considerable amount of exchange places!

I will give you some examples of places I love to check daily. Feel free to send me a message on Twitter with your suggestions.

  • Flutter Awesome: An awesome list that curates the best Flutter libraries and tools. This website publishes daily content with lots of examples, application templates, advice, etc.
  • Awesome Flutter: A GitHub repository (linked to Flutter Awesome) with a list of articles, videos, components, utilities, etc.
  • It’s all widgets!: An open list of apps built with Flutter.
  • Flutter Community: A Medium publication where you can find articles, tutorials, and much more.

Supported by Android Studio and VS Code

Flutter is available on different IDEs. The two mains code editor for developing with this technology are Android Studio (IntelliJ) and VS Code.

Android Studio is a complete software with everything already integrated; you have to download Flutter and Dart plugins to start.

VS Code is a lightweight tool, everything is configurable through plugins from the marketplace.

I use Android Studio because I don’t need to configure a lot of things to work.

You are free to choose your preferred IDE!

Bonus

Freelance

If you want to start in freelance, you should think about Flutter!

In 2020, this technology is going to explode. A lot of people are going to search for developers on this technology.

The biggest platform for freelancers in France, called Malt, recently published the tech trends of this year. Flutter has evolved of +303% on this platform between 2018 and 2019.

Flutter statistics - Malt
Flutter statistics - Malt


If you want more content like this, you can follow me on Twitter, where I tweet about web development, self-improvement, and my journey as a fullstack developer!

Discussion (17)

Collapse
drdougtheman profile image
drdougtheman • Edited on

Will Flutter kill React and React.js?

Collapse
paramharrison profile image
Paramanantham Harrison

Mmm, the answer is No. React isn’t a library anymore, it’s an ecosystem. It’s very hard to kill react like that.
Flutter is decent and more people from native mobile development experience will adapt it more.
May be flutter win the race with react native in mobile app development. But react as a whole is a very large ecosystem. You can develop for web, desktop, VR, Game and mobile using react. Infact, some large companies like Airbnb design through react in some way.

Collapse
gaelgthomas profile image
Gaël Thomas Author

I agree with you. React exists for a longer time; this is why the ecosystem is bigger.

But I think Flutter can win the race with the time.
Maybe not on the web site (Flutter Web) because it's really new and perhaps not the heart of the project.

On mobile, I read a lot of articles from developers moving from React Native to Flutter.

Flutter is still entirely new, and maybe with one or two years more, it can be well used in the mobile app development world.

Thread Thread
paramharrison profile image
Paramanantham Harrison

For mobile, yes. Flutter is evolving better with more developers and upto date plugins. React native packages are often outdated

Collapse
agakadela profile image
Aga Kadela • Edited on

Thanks for great article. I think about Flutter but i have experience in React so React Native seems to be easiest choice for me( the same JS language). Is Flutter better than React Native? Faster or easier to write? What are the differences? I will be grateful for an answer :)

Collapse
gaelgthomas profile image
Gaël Thomas Author

In my opinion, Flutter is faster to write than React Native.
I also code in React.js, and I love it. But, I don't really like React Native. I tried a few times, but every time I had problems with NPM packages.

I also love the performance: Flutter doesn't use Javascript like React Native to interact with native components. Dart compiles to native machine code; there is no Javascript structure. So, performance is improved in comparison to React Native.

But, I can understand most of the React.js developers prefer using React Native because it's fast and easy to start when you know React.js.

Collapse
genspirit profile image
Genspirit

Dart, in my opinion, is very easy to pick up from javascript, particularly if you have experience with typescript and OOP. Flutter has a lot of similarities to React as well (A Flutter widget functions similar to a React component).

Collapse
gvetri profile image
Giuseppe Vetri

React Native heavily inspired flutter. Even in the documentation, the creators talk about it. In my case, since I don't know javascript was more easy to learn Dart coming from Java / Kotlin because it's straightforward and it had many similar concepts, but I'm pretty sure that you can catch it quickly if you now Javascript and React. Give it a try :) Since the Flutter Interact event, you can test it in your web browser without having to download anything. dartpad.dev/b6409e10de32b280b8938a...

Collapse
103221 profile image
103221

Wow, thanks for your explanation! We need popularize Flutter further, I believe in Flutter supremacy :D

I see that you mention the cost-effectiveness of Flutter but you don't mention any numbers. I think it might be useful to mention the overall cost of the Flutter app for those who are not developing apps themselves but rather seek for buying this service. I've seen a brief estimation here surf.dev/what-you-should-know-abou..., they say it is somewhere from $25,000 and $100,000, including design, publication in stores etc

Collapse
gvetri profile image
Giuseppe Vetri

Great Article! 👏

Collapse
gaelgthomas profile image
Gaël Thomas Author

Thank you for your feedback! I’m happy to see you liked it! 😁

Collapse
brownio profile image
Antonio Djigo

Nice one, really interested in this technology 👀✨

Collapse
gaelgthomas profile image
Gaël Thomas Author

Great news, are you going to test this by next year?

Collapse
brownio profile image
Antonio Djigo

Will try! want to take a step into native apps, seems like a good chance

Collapse
ctrleffive profile image
Chandu J S

flutter is awesome.

Collapse
tirthaguha profile image
Tirtha Guha

Ionic and Cordova based applications come with a necessary condition that to create an ipa they have to be built on a Mac. Does flutter take away that weird requirement?

Collapse
gaelgthomas profile image
Gaël Thomas Author

I'm not sure about your question.

If you mean hybrid applications need to be compiled on a Mac because of licensing (Apple constraints), here it's the same.

Unfortunately, you can't develop for Apple if you don't have a Mac.
It's Apple that creates this constraint.