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.
“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.
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
**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!
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.
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!
Top comments (17)
Will Flutter kill React and React.js?
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.
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.
For mobile, yes. Flutter is evolving better with more developers and upto date plugins. React native packages are often outdated
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 :)
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.
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.
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
Great Article! 👏
Thank you for your feedback! I’m happy to see you liked it! 😁
Nice one, really interested in this technology 👀✨
Great news, are you going to test this by next year?
Will try! want to take a step into native apps, seems like a good chance
flutter is awesome.
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?
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.