Getting Started As A Flutter Developer: Basic Things To Know.
Tags: flutter, beginners, dart, mobile
Published: 2022-11-21 19:04:08

Hi, I am Abdulkabir Toyyib, a mobile developer (Flutter). As a beginner in any tech stack, we can get stuck at the beginning of our learning phase because we don't know the basic things to learn to get started. In this article, I will be listing and explaining (*will try my best*) the basic things to know to get started as a flutter developer.
Yeah, let's get to it.

Below are the basic things to learn to get started as **Flutter Developer**.

* Dart Programming Language
* OOP (Object Oriented Programming)
* The Flutter Widgets
* Navigation
* State Management
* Working With External Data (API)

### **Dart Programming Language**

Dart is a programming language created by google, it is the programming with which the Flutter framework is developed. So to learn Flutter, you must have a basic understanding of the dart Language.
To learn more about dart, visit any of the links below:

* [Dart.dev](https://dart.dev/guides)
* [Dart Tutorial](https://dart-tutorial.com/)

### **OOP (Object Oriented Programming)**

As the name suggests, Object-Oriented Programming or OOPs refers to languages that use objects in programming, they use objects as a primary source to implement what is to happen in the code. Objects are seen by the viewer or user, performing tasks assigned by you. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc. in programming. The main aim of OOP is to bind together the data and the functions that operate on them so that no other part of the code can access this data except that function. 
Flutter is based on OOP, basic understanding of OOP is required. To learn more about OOP in Dart, [click here](https://dart-tutorial.com/object-oriented-programming/oop-in-dart/)


### **The Flutter Widgets**

Why are these widgets important, they are because that is what Flutter is all about. Widgets are key components required to build beautiful UIs in Flutter. Understanding the type, use and when to use these widgets is important to be a Flutter Developer. A flutter developer must be familiar with the Flutter widgets, what they are used for and how they work with each other

Examples of these widgets are Scaffold, Container, Text, Padding, SizedBox, etc, you can read more about these widgets on the flutter doc page, link below. 
[Flutter Widgets](https://docs.flutter.dev/development/ui/widgets)

### **Navigation**

This requires you to learn how to move from point A to point B in a Flutter app, this is when you will learn about the [Flutter Navigator](https://docs.flutter.dev/development/ui/navigation). Like moving from the login screen to the home page after a user has successfully logged in to the app.

### **State Management**

State management refers to the state of one or more user interface controls in a graphical user interface, such as text fields, OK buttons, radio buttons, etc. This is especially the case when the state of any particular message or form on the page depends on factors outside of the current page, or available throughout several pages. For example, consider a user who is logged in and sees the 'welcome' message on their first visit to any page, but not on subsequent page visits. Does each page manage the state of the user being logged in? That would create too much copy-pasting and duplication of code. Instead, you can use a state management pattern for handling messages (this may also include handling error messages and informative messages, along with the described welcome message) and then call this to receive a message as it becomes available.

To Manage State in a flutter project, you can use the following state management packages:

* [RxDart](https://pub.dev/packages/rxdart)
* [Bloc](https://bloclibrary.dev/#/gettingstarted)
* [Riverpod](https://riverpod.dev/)

To learn more about state management in flutter, [click here](https://flutter.dev/learn).


### **Working With External Data (APIs)**

Yeah, working with external data will require you to use data that are not locally available in your App. This is where you learn how to get data from other services.
Examples are:
* Getting the list of banks using the Paystack API
* Getting the list of state and LCDA from an API
* Getting a user's detail from a backend service.

To learn about how to communicate with API in Flutter [click here](https://docs.flutter.dev/cookbook/networking/fetch-data)

Thank you for reading, kindly share if this was helpful.
If you have more tips for beginners to get started with flutter, kindly drop them in the comment below.