Flutter
Tags: beginners, roadmap, flutter, webdev
Published: 2022-04-03 08:00:07

Hola Techies!
Want to build an application and don’t know how to use flutter? Don’t know how to code? Oh , Are you a beginner?!
Don’t Worry! Here’s a road map! Let’s get a headstart!

**What Is Flutter ? What is it used for ?**

Flutter is Google's portable UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source . 

We know that Flutter is an open-source UI Software Developers can use Flutter technology for iOS and Android apps at the same time. It saves the effort and time it takes to develop a single app for multiple platforms separately. C++ and Dart are the main languages of this application and technology. Flutter technology is mostly used to develop Windows, Mac, iOS, and Android applications . 

**Why Flutter?**

Flutter has many different features that make cross-platform mobile application development simpler and faster. Perhaps most obviously, the ability to rely on a single codebase and UI engine for cross-platform development reduces the effort needed to produce versions of an application for both Android and iOS.
 1. Flutter supports both Android and iOS mobile platforms, 
 2. It lets you run everything off one codebase. 
 3. It's a big time-saver! 
 4. Beautiful interfaces in no time.

Well , what do I really need to learn Flutter?

1. An operating system (MacOS X,Linux ,Windows)
2. Any IDE with Flutter SDK installed (Android studio , VSCode , 
   IntelliJ , etc)
3. A little knowledge of Dart and Flutter
4. A brain to think :P

**Installation (Flutter) :** 
1. Navigate to flutter.dev on your webpage. 
2. On the top menu bar, select Docs > Get Started > Install > 
   Windows . 
3. Check for the System Requirements.
Henceforth, you can begin the installation:)



**Flutter RoadMap :**



Before you start Flutter, you should at least know OOP Concepts. Flutter uses Dart language and Dart uses OOP Concepts. So, the least would be to learn OOP Concepts in any language (Java preferred). It’s always a good idea to learn Native Android so that you can understand Flutter more easily. Not a compulsion, but a better way to explore. If you are a fresh grad, it’s your responsibility now to create a portfolio or online presence to stand out from the crowd! So, learn GIT. Host your projects on GitHub, no matter what project it is! Install flutter in your system so that you can start your journey!







1. Programming Language : 

- Dart

2. IDE for development : 
   
- VsCode
-    Android Studio
-    Intellij

3. User Interface :
   The user interface (UI) is the point of human-computer 
   interaction and communication in a device.

   _UI includes :_
   
- 1. Widgets (  ex : shortcuts which we keep on the interacting 
-    screen)
- 2. Style ( font style , page style , etc)
- 3. Assets (icons , animation , audio , video , etc )

   a) Static User Interface : The interfaces which are immutable!  
      (ex : non- interactive web pages) 
      _Includes_ :
      Fundamental layout classes : 
      1. View : It is the basic building block of UI ( EditText , 
                Button, etc)
      2. ViewGroup : It is base class for Layouts ( Linear Layout, 
                     Relative Layout )

   b) Dynamic User Interface : The interfaces which are mutable! 
      (ex: interactive web pages ) 
      _Includes_ : 
      1. ListView : most commonly used scrolling widgets
      2. GridView : used to display the values of a data source in 
         a table. Each column represents a field, while each row 
         represents a record.
      3. Expansion Title : This widget is normally utilized with 
         listview to make an “expand/collapse” list section.

4. Animation : We all know animation ;) It is what makes Marvel 
   soo interesting!

-    1. AnimatedWidget
-    2. AnimatedBuilder
-    3. AnimationController
-    4. CurvedAnimation
-    5. Hero
-    6. Transform
-    7. Opacity

5. Storage : Where we store our data !

-    1. shared preference
-    2. file storage
-    3. sqlite

4. 3rd party libraries :  The third-party libraries are reusable 
   resources that are widely employed in Android Apps.

-    1. http
-    2. dio
-    3. get_it
-    4. cached_network_image
-    5. Flutter_webview_plug-in
-    6. font_awesome_flutter
-    7. SQFLite
-    8. rxdart
-    9. bloc_pattern

5. Behavior Components includes : 
  
- 1. Permission
- 2. Local Notification
- 3. Push Notification
- 4. Download Manager
- 5. Media Playback
- 6. Preference
- 7 .Sharing

6. State management : 

- 1. setState
- 2. Provider
- 3. Redux
- 4. BLoC
- 5. MobX

7. Quality Assurance : 

- 1. Firebase
- 2. Google play beta tests
- 3. TestFlight
- 4. App Center

8. Version Control : 

- 1. Git
- 2. Github
- 3. Bitbucket
- 4. Gitlab

9. Firebase : 

- 1. Firebase Auth
- 2. Firebase database
- 3. Firebase Storage
- 4. Firebase Messaging

10. Native Integration : 

- 1. Android
- 2. Ios

_Keep Learning and try to improve your code!_

**Career in Flutter  :**

Google Flutter is ahead of other mobile frameworks in cross-platform app development. The decision to flirt has many advantages, from the quick deployment to the user interface used to the unified code system, and it also saves time and money. These benefits enable you to trust brands like **BMW, Alibaba.com, eBay**, and others. Google Certified GoodWorkLabs is a leading software development company in Bangalore that has developed much great software with Flutter. 
**Dart has grown tremendously in recent years and is considered one of the best skills for software engineers**. The community behind Flutter has also increased . So if you want to tackle your Flutter projects , you need to find answers to these problems . Then we have one of the best reasons to learn Flutter – we can develop applications for different platforms simultaneously. With this feature, you can quickly build your iOS / Android application at the same time. This is by far one of the best features of flirting/darts.