Flutter is a UI toolkit developed by Google for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
The popularity of Flutter along with its demand is just going
up. So, in this tutorial, I want to show you a Beginner Roadmap to becoming Flutter Developer – Updated 2021.
I have written some application and tutorial about
Flutter. You
can check tutorials in this link.
There is no specific
road map to learn Flutter. However I would like to mention how I learned Flutter
for app development and build four successful applications which are at
PlayStore so far.
Learning Programming Language
Flutter uses a programming language called Dart. Dart is a client-optimized language for developing fast apps on any platform.
Its goal is
to offer the most productive programming language for multi-platform
development, paired with a flexible execution runtime platform for app
frameworks.
IDE For Flutter Developer
You have known which programming language to use to be a Flutter
developer. Now you will need a good editor to write and debug your code. For
this, I would recommend one of the following programs:
- Android Studio
- Visual Studio Code (VS Code)
You are familiar with programming you might have used one of the
above programs to code. Android Studio is developed by Google and dedicated
android app development. Personally, I use VS Code for developing the Flutter
app.
Well, we all have our story, one of the main reason for using VS Code is that my device has low specifications. So I prefer the VS Code over Android Studio.
Also, I do
programming in other languages such as Python in VS Code.
You can
check the installation
and configuration of Flutter in your device and also configure the editor as
mentioned above.
User Interfaces – Flutter Widgets
Once you know the language and set up your environment. You can
start by designing the User Interfaces in Flutter. With this method, you will
learn and also see your output instantly.
Here is the list and type of widgets to learn.
- Stateful
Widgets
- Stateless
Widgets
- Accessibility
- Inherited
Widget
- Theming
- Localization
Style
Next is to learn how to style. There are other libraries that
you can use to style. Here is two of them which comes along with Flutter
installation.
- Material
- Cupertino
You can check their respective website for what icons they offer
and the codes.
Assets
Assets are one of the tools that you will have to use while
developing Flutter apps. The time will come where you want to use some custom
fonts, images, audio or video to name few for your app.
The assets file are some static file that you put in-app and it
will be included in the app. So remember to include only necessary files to
keep the size of app small.
Here is the list of the assets that you need to learn to use:
- svg
- audio
- video
- fonts
- images
Static User Interface
You have now learned to use widget, style and assets. Next is to
start developing some static user interfaces.
- View
·
Text, Image, Button, Raised Button, etc.,
- ViewGroup
·
Container, Row, Column, Stack, Expanded, ConstrainedBox
There
are plenty of video tutorials on Youtube for you
to get inspired. You can check a website like Dribble for inspiration on
the design layout.
Dynamic User Interface
You can create awesome designs using static UI. When you do the
projects, you will come across the time where you will be required to display
user information dynamically.
- ListView
- GridView
- ExpansionTitle
Animation
Well, well, well. This will come handy when you want to have
attractive interface and want people to have fun while using your app. This
would be used mostly when building gaming apps.
- AnimatedWidget
- AnimationController
- Hero
- Opacity
- AnimatedBuilder
- CurvedAnimation
- Transform
Storage
Storage is really helpful when you want to cache some
information, so you make user activity faster/better. Also, this knowledge will
help you to to build apps where user can save or upload files. Here are three
topics to learn:
- Shared
Preference
- File
Storage
- Sqlite
You
read Storing User Location Using
SQLite Database In Flutter on how I used SQLite to store the scores made by user.
External Libraries For Flutter Developers
Flutter community is great, you have a huge collection of the libraries. These libraries come in handy to solve most of the task and make your work easier and simpler.
The libraries can be found on Pub.dev website,
which is an official website for flutter packages.
Here i will list some of the libraries that you should check out
and learn. It will be used most of the time.
- http
- get_it
- SQFLite
- bloc_pattern
- dio
- cached_network_image
- font_awesome_flutter
Well there are lot more libraries out there, explore and use the
one that best meets your requirements.
Behavior Components
As you advance in designing your app, the requirement of
complexity increases. Once such a requirement could be behavior components.
Here are some of the components that you can learn:
- Permission
- Local
Notification
- Push
Notification
- Download
Manager
- Media
Playback
- Preference
- Sharing
State Management In Flutter
Using the state management you will be greatly reducing your
code and making your app more dynamic. Here are the topics that you will come
across in state management.
- setState
- Provider
- Redux
- BLoC
- MobX
Firebase
Well, the Google-Firebase requires special mention. It will be
one of the most used databases for Flutter app. It will be useful when you want
to have authentication, analytics for quality assurance, notification and
storage.
Here is the list of topics you can learn about Firebase.
- Firebase-Auth
- Firebase-database
- Firebase-Storage
- Firebase-Messaging
What Next For Roadmap Of Flutter Developer?
The development is a learning journey, you must not stop. You
will gain different knowledge at different stages of development. Here are some
more topics you can explore, to make your development easier.
- Quality
Assurance (Analytics, Testflight, App distribution)
- Version
Control (Git, GitHub, Bitbucket, GitLab)
- Native
Integration ( Android and IOS)
For
instance, I have written an article on UPLOADING YOUR FLUTTER PROJECT
TO GITHUB. It will be handy to learn
Conclusion
Whether you are a beginner starting to start flutter development or one already into it and want to further enrich your knowledge.
I hope this Beginner Roadmap of becoming
Flutter Developer helped you.
If
you have any question, please let me know in the comment section.