Flutter is a relatively new SDK introduced by Google, Flutter 1.0 was released in Dec 2018 and the technology has flourished exponentially since then. Recently Flutter 2.0 was released which introduced web support and a whole lot of features. Flutter is the current hot topic amongst all developers no matter if they are web developers or mobile developers, Flutter is the one-stop for all.
Why should I learn Flutter I already know (React, Android, etc)?
Well if you want to develop an Android app, you need to learn Java/Kotlin, if you want to build an IOS app you need to learn Swift, if you want to develop a web app you will need to befriend the trio HTML, CSS, and JS and thus if you are building something which needs to be on all platforms i.e. Android, IOS, Desktop you need different teams to build the support for each platform. Here is where Flutter shines. Google has come up with a new language Dart which is used to code in Flutter (Trust me you are gonna love Dart), once you coded your application for any of the platforms, Flutter reuses your code and provides the support for other platforms. So suppose you built your android app in Flutter, you could use the same source code to run your IOS and Web App.
What makes coding in Flutter easy?
Dart has a very basic syntax, if you already know some programming languages, you could get done with the basics of Dart in a couple of hours. Other than learning Dart, you need to understand another concept which is “Everything is a widget in Flutter”.
What does that mean? Well if you already have studied React, you know that everything is a Component while coding the web app in React. For all the non-Reacters, you could understand that the complete screen of the application is a widget and all the buttons on the screen are also smaller widgets. Consider the following image which could help you understand it better.
As you could analyze that the hierarchy of widgets is something that makes the navigation of the complete application smooth flowing. And the code base in Flutter could be divided into multiple files and thus organizing the complete app becomes simple. It's a good practice to keep each widget in a new file and import it wherever you require it. If you are getting overwhelmed, congratulations you are on the first step to learn Flutter. Welcome to the club.
How to start learning Flutter?
As Flutter is such a new technology, it gets very frequent updates, so it might be possible that that youtube tutorial on Flutter which is a few months old might be deprecated by now. Thus Flutter docs and Medium posts are your best sources to learn Flutter.
You could start learning via this video of Academind which covers the basics of Flutter. Once you get the basics cleared you could start making your projects. I consider that learning by doing is the best way to learn any new technology, so I would suggest you make a cool app for yourself and learn the new features of Flutter on the go.
You can’t learn swimming by watching youtube videos right? Get into coding some simple app, if you get stuck and are confused about how to add this functionality, you just need to do one Google search which will lead to another Medium post that will solve your doubt(that’s how I started learning).
Stackoverflow community of Flutter is wholesome and has multiple solutions for each problem, thus you have their support at all times. Other than that you could view videos that describe how to clone an existing app. Like creating a Twitter Clone in Flutter.
Flutter’s own youtube channel is a great resource for learning. Every package which you will require while building your project has an awesome to the point Readme file listed on pub.dev. All these resources helped me a lot to start building this social media platform which I created along with 2 other teammates. We built a new social media platform to uplift community work in society. A platform where organizations could post volunteering jobs and the users could apply for them. We made a demo video for the app. You could download the app from this link.
Now stop reading this post and start building your million-dollar app idea. Ciao.