0 like 0 dislike
in Web-Development by
recategorized by | 1,420 views

4 Answers

0 like 0 dislike

Best resources for flutter : 





Best RoadMap : 


This article is in reference to GitHub Repo which you can fork forever :)

Although you have read the title there’s no need to tell you what I will be talking about here, yet here’s the agenda so that you can skip to whatever portion you are looking for:

  • Confusion Regarding Dart
  • Which IDE is BEST?
  • Flutter Basics
  • Databases
  • Responsive UI
  • Networking
  • State Management
  • Store Knowledge
  • What’s Next?
  • Other Resources

‍♂️ Let’s Get Started!


Now since its a resource guide plus a roadmap, so I will be adding all the links starting from Flutter official docs to the heaven where I have explored Flutter! You Ready..? Let’s do it then!

Confusion Regarding Dart

Do I need to learn Dart before starting flutter? How much Dart language is required to get started with Flutter? Is Dart pre-requisite to Flutter?

If you have any of the above question in your mind, you need to consider 2 scenarios and analysis yourself that where you are standing right now.

First case, Are you complete beginner with Languages or Programming? If yes, my dude! you need to learn some basic programming fundamentals to get started with Flutter. Which ones?

  • Object Oriented Programming (Recommend you JAVA for this)
  • Stack (Data Structures) Not compulsory but it will help you a lot.

Second case, which is you are NOT a beginner and you have done some coding with any other language like Java/C++/C# then you don’t need to learn Dart specifically you will learn it on your way!

Dart, Yes or No?

Which IDE is BEST?

The next confusion is VS Code or Android Studio, Android studio or VS Code? Let’s sort it out, shall we?

Which IDE to choose?

But, as we can use Flutter without android studio so why its recommended to use?

Na Bruh! I didn’t recommended to use Android Studio, I would recommend you to install Android Studio even if you are not planning to use it.

Why? Don’t ask why just do it!

Na! Just kidding, here’s why? Android studio will get you stuff like Android Gradle, Android Emulator, Android SDK manager and much more which you will need to install manually and set everything up before actually diving into flutter code. And believe me! Its the pain in the ass!

Hence, download android studio, install it but don’t use it. Use VS code alongside as its much lighter and you can customize it in many ways :)

‍ Flutter Basics

Ah! Now is the time for real work. If you are a complete beginner to flutter and you are looking for some course or YouTube playlist to get started? Here you go:

When you are done you will have the basic knowledge of how flutter works and you can develop apps right away!

Flutter Basics


Well although Flutter is a UI kit not a backend kit but you are an app developer and you need to have knowledge about database, right?


The first thing you need to go for is Firebase you can get started as:

Wait! Your client can ask you to store the data locally. Don’t worry you can use SQFlite with Flutter. It’s quite similar to sqlite

Databases for Flutter

Responsive UI

Hiiii…!! Sorry, I was just in mood to say so. Anyways back to topic. So, till here you are almost a complete flutter developer who can develop apps with databases which can be published. But here’s the thing, for Flutter its your responsibility to make your apps responsive for various screen sizes. Its like making a responsive website for various screens sizes.

You can use the following to get started :)

That’s all for responsiveness you need practice and testing to get good with this one :)


Phewww!! I know at this point you can develop a full fledge app with Beautiful responsive UI alongside database but the thing is learning never ends and you need to learn stuff like RESTful APIs and jSON Data Parsing. Because instead of creating your own database sometimes its good to get data live from the internet.


Yup! So get your hands on with restful APIs and jSON data:



jSON Data Parsing

Apps to Practice:

State Management

The next big thing!

Which I don’t know yet! :p

It's important to learn state management in Flutter. Now, as a beginner, it's not compulsory but soon in future hopefully when you will be a completely top notch flutter developer and you get some order on fiverr to develop a large scale app, as large as Instagram or Facebook…. Okay, stop imaging now!

For large scale apps its important to do state management. As a beginner, you can use simple setState() to do get the job done! Hence, you can start as follows:

Store Knowledge

You are developing apps now! Look at you! And the most exciting thing is you are developing apps for both Android and iOS. For that, you need to have knowledge about Google Play Store and App Store. Especially read their guidelines so that your app won’t get rejection while uploading or issues like getting your account block, which will stop you from earning via any of those stores.

In the name of God :) 

by Expert (19,120 points)
0 like 0 dislike

Reasons to learn Flutter

1. Increasing Demand for Flutter Developers

Flutter Developers’ demand is increasing day by day in the job market as almost everyone is moving towards Native app development for which Flutter is very much relevant.  Even many experienced developers who are in the development domain for many years are finding Flutter more preferable.

2. Larger Community

Think if you got stuck in any programming error and nobody is near you to guide what’s wrong. So, as a developer what’ll you do? Right, you search your error on Google or in a browser and you’ll find a similar problem with a solution. And that’s where the role of the larger Flutter community comes! The Flutter developers community has seen exponential growth in the last few years on different QA forums such as Stack Overflow, etc.

3. Better Documentation

Indeed, well-prepared documentation is also very essential for any framework or language to make a good standing in the market and Flutter has awesome and fully organized documentation where you can easily learn the syntax and other required concepts in detail. Also, as Flutter contain lots of library and widgets and you can easily find all these on Flutter documentation. 

4. Fast Development & Time-Effective

Flutter supports the fast development process and saves a lot of time for the developers. Firstly, with the help of various enriching widgets, you can easily create a creative UI/UX design for your applications. Also, it is quite easy with Flutter to apply all the changes and to fix bugs instantly. Moreover, with Flutter, there is required less time to spend on testing and deployment of the application.

5. Easy to Learn

Flutter is comparatively easier to learn and if you know JAVA priorly then it becomes more convenient and easier for you to command over Flutter. Also, as Flutter uses Dart programming language, you need to be proficient with the language. You can start to learn Flutter via watching video tutorials and reading the official documentation.  

Prerequisites for Learning Flutter

Your familiarity with the following is quite necessary to start learning Flutter. If you have no idea about any of the below, it is better to grab those concepts first and then continue with Flutter journey:

  • Knowledge of native Android development: that is if you want to develop very fine and detailed applications 
  • OOPS Concepts: As languages like Java, C++ are based on OOPS concepts, it is important to be thorough with them. Here is a nice video that easily explains OOPS.
  • You should know Dart programming before you can learn Flutter: but that's easy too. Dart is Google's general-purpose programming language. Hackr.io lists some good courses that can help you get on Dart fast and easy.
  • Knowing C++/Java is an added advantage but not mandatory!

How to Learn Flutter?

Now is a good time to start learning Flutter. There are many resources on the internet, and information overload can be overwhelming. That's why we have come up with the best resources that can help you learn Flutter in the right way. There is a lot of documentation available on the official flutter website, but you should refer to other resources for more depth and variety.

1. Online Videos and documentation

A lot of sample videos and documentation are available on the official website.

You should also check out the Widget of the week on YouTube that covers a widget from the SDK. If you need quick hands-on about a widget – this is the place to go.

2. Online tutorials

Hackr's Flutter tutorial link has a list of some of the best free and paid courses. Flutter & Dart is a good course wherein you can learn both Dart and Flutter at once. Similarly, getting started with Flutter is a good beginner's course that you can take up for free.

3. Books

Books are a great way to get in-depth knowledge about any subject as well as reference material. Some of the best books to learn Flutter are:

As a beginner, you should be able to gather much from just these 2 books.

You can start or enhance your Flutter skills using the samples, demos, and examples created by the Flutter community on GitHub. Try the UI examples first, some of them are available on the app store – this will help you view how an application works in real-time.

Okay, we got it

So, I have the resources, but how do I start?


Well, let's start right away!

Let us quickly set up the flutter environment and build a simple app to get you started.

Installing Flutter

The first thing you should have is SDK – Software Development Kit – it is a set of software tools that come in a single package and can be used in your development environment. 

For development, we use an integrated development environment (IDE)– makes your development and testing easy and fast. Like we learned before, there are 2 popular IDEs –

  • VS Code – It is light, fast, and everything that you want an IDE to be! The best one you want to work on.
  • Android Studio – With Android Studio on your device, you just have to install plugins for Flutter and Dart, set up the SDK, and you will be good to go.

Set up is easy, and you can follow the instructions from the official documentation.

Building a simple app using Flutter

Let us build a simple Hello World program. Through this program, we will understand the structure of Flutter, and the main methods used. Although it's too simple an app to be real, it still gives out a good start.

To create a new flutter project, just type

$ Flutter create proj_hello_world

The project will be created with the following structure –


android – to generate the Android app. Any Android-specific implementation will go inside this folder.

assets – to store data files, images, etc.… 


ios - to generate the ios app. Any iOS-specific implementation will go inside this folder.

Lib – the main code files are created here main.dart – the main file

test – for unit testing purpose

For our simple application, we will need only the 'main.dart.' file. The file comes with some code, and developers mostly delete it to write their code from scratch. This is exactly what we will do too!

The first important thing is to import the 'material' package. It is used to include UI components.

import 'package:flutter/material.dart';

Just like many other languages, execution starts with the main method. The main method should include runApp() method that calls the code to be executed. 

void main() => runApp(new HelloWorldApp());

The code to be executed is nothing but a widget. Remember that Flutter is all about widgets.

So, what is a widget?

If you did not know already, a widget could be anything – button, list, table, input box, card view basically, anything that controls the view. So, your entire Flutter app is a collection of widgets that come together and show up in a nice UI.

That is why every class you create should extend the widget class. Since all our application will do is to print Hello World, we just need a widget that doesn't need to save any state – a stateless widget. A stateless widget should have a build method.

class HelloWorldApp extends StatelessWidget {
  Widget build(BuildContext context) {
Now comes the main magic –
    return new MaterialApp(
      home: new Material(
        child: new Center(
          child: new Text("Hello world!"),

The MaterialApp is the widget wrapper, of which material is one of the materials, and the center is the Widget that centers the elements. The text adds the text field widget. Apart from the attributes that you see – home, child – there are many other attributes like styling, position, decoration, etc that take care of the entire UI.


Well, let's put all the code together now –

import 'package:flutter/material.dart';
void main() => runApp(new HelloWorldApp());

class HelloWorldApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Material(
        child: new Center(
          child: new Text("Hello world!"),

… and run it using the command

$flutter run

Congratulations! You just built your first app. From here, your Flutter journey would be simple and fun.


There are many good courses designed by Udemy and other online sources for learning Flutter. If you are already into mobile app development, a good course will help you learn quickly so that you can get on board. However, if your project has relaxed timelines, you should do more experiments, try to build your widgets by setting up your local environment and read a book or two to know about more complex designs. Books will help you fill the gaps between what you already know and what you need to learn.

0 like 0 dislike

Most of our mobile products are Flutter-based that is why we came up with a 40 Days Flutter Hell Tour to help developers with none or almost none prior Flutter experience to touch the ground running and dive into projects armed and ready. Let's get the party started:

Day 1 - Day 2 :

Start getting acquainted with Dart. DartHub is the perfect place to touch and feel Dart - A tour of the Dart language

Set up and configure an IDE, create a project, start looking around playing with it.

Day 3 - Day 4:

Check two CodeLabs below(actually one but consists of two parts): Write Your First Flutter App, part 1
Write Your First Flutter App, part 2

A peek inside widgets in Flutter, try to use them in your project - Introduction to widgets

Day 5 - Day 6:

Go for second CodeLab - Building Beautiful UIs with Flutter

Day 7:

Hop on the first lecture from the creators of the Flutter on Udacity

Day 8 - Day 9:

Check this widgets catalog out, try using some of them - Flutter widget index

Don’t forget to watch the “Widget Weekly” video.

Day 10 - Day 11:

Check out the second lecture from the creators of the Flutter on Udacity

Day 12 - 16:

The Boring Flutter Development Show - YouTube

Pay special attention to themes.

Day 17 - Day 18:

Dive into testing on Flutter - Testing Flutter apps
Try covering some part of your code with tests.

Day 19 - Day 20:

Try writing your own plugins - Writing custom platform-specific code
Whenever you have a general understanding of how plugins work in Flutter go for this one - Flutter - Widget - State - Context - InheritedWidget

Day 21 - 23:

Architecture days, check these out:

Build reactive mobile apps with Flutter (Google I/O '18) brianegan/flutter_architecture_samples

Try developing your own tiny sample, pay attention to Scoped Model, Redux, BLoC

Day 24 – 40:

Start working on your first Flutter pet project, keep test coverage on a 30% level, not less and try to be as TDD as possible.

Thank you for your time reading this, please keep in mind this is something working for our teams for a while but we always strive to improve and make the learning curve faster. In case it takes you longer than 40 days to complete the Flutter Hell Tour - don’t worry. It really depends on the background you have and the overall experience.

by Expert (19,120 points)
0 like 0 dislike

Flutter Resources


Get best answers to any doubt/query/question related to programming , jobs, gate, internships and tech-companies. Feel free to ask a question and you will receive the best advice/suggestion related to anything you ask about software-engineering , development and programming problems .