Flutter Complete Roadmap

Flutter Advance Roadmap

Flutter Complete Roadmap

Learn Flutter any way you want

Learn Basics of Dart

Flutter uses dart as a programming language. Dart is a powerful programming language to build apps faster. If you are familiar with a dart, it will be easier to build apps with flutter. Here is must learn topic for the dart.

  • Basic Hello World Program.
  • Variables and Constants.
  • Conditions and Loops.
  • Lists and methods of the list.
  • Methods and types.
  • Object-Oriented Programming.
  • Class and Object.
  • Constructors.
  • List of Objects.
  • Async and Await [Advance topic but will help later].

There are various websites and youtube channels to learn dart. Some of the best links to learn dart are provided below:

  1. Dart Official Website
  2. Dart Tutorial YouTube

Learn Basics of Flutter, Widgets

After learning dart basics, it’s time to learn flutter basics. Start with creating a simple one-screen app that contains an app bar, title, photo, etc., and so on. Learn about basic widgets like MaterialApp, Scaffold, App bar, Text, Image, Button, Container, etc.

Learn from various tutorials, visit the official flutter website, and view documentation. Flutter documentation is straightforward. Customers need an app with a good design. Now you need to design an app so beautifully. So focus on designing beautifully. This will add value to your work. Also, share your work on various groups, publish it on GitHub and also get feedback from users.

Also, get inspired by a website like Dribbble and know various designs. Implement such design to your projects too. Also, try to make a clone UI of apps that are available on your phone.

Learn Functionalities & Navigation

Create two text fields and implement functionalities like add, and subtract. Create an interest calculator, BMI calculator, create a login page, and the home page, and implement navigation.

Learn and explore packages

In flutter you can use packages for almost anything, you can learn how to use packages, animations, and custom painters for it. Also, you can look at the source code of the packages. Also use image picker, path provider, package info, device management. You can view all packages at https://pub.dev. Try to use different packages to fulfill your needs.

Learn to Use API on your app

Get data dynamically from the server and get the data. For learning purposes, you can use the https://jsonplaceholder.typicode.com/todos/ website to get JSON. You can send various HTTP requests. You can also build a quiz app with open free API.

Learn Shared Preferences & SQFLite

For simple and easy local storage you need to learn about shared preferences, which store data locally in-app. If your application is big then you must think about SQFLite, which is a local database where you can use SQL commands. Now you can create apps that run offline perfectly.

Learn State Management

The main job of UI is to represent the state, In most of the production levels, most of the applications are built with state management. Data passing becomes easy and code will be more readable. In the coming article, I will cover state management in detail. Some popular state management solutions are:

  • provider
  • bloc
  • getx

Learn Firebase

With the help of firebase, you can add sign-in with google options, send notifications, store data in servers and do various AI / Machine learning-related tasks. It will add extra benefits to your profile.

Learn Animation and Custom Painter

To build beautiful apps, the animation is very very important. Learn to use animation in a flutter. Companies need some kind of animation in apps. Using a custom painter you can draw your own design in a flutter.

Conclusion

If you know all these things, you are ready to go as a production-level developer. Also, don’t forget to share your work on LinkedIn, and educational Facebook groups, create your GitHub profile and show your work. This is definitely not the end. There are always more things, Below are technology with provides an extra benefit for you.

  • Git and GitHub
  • CI / CD
  • Test-Driven Development
  • MVVM Architecture

Useful links for flutter

Language

https://dart.dev/guides/language/language-tour
https://dart.dev/guides/language/effective-dart

Basic Widgets

https://flutter.dev/docs/development/ui/widgets-intro
https://www.youtube.com/watch?v=b_sQ9bMltGU&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG
http://material.io
https://developer.apple.com/design/

Core Design Patterns

https://www.youtube.com/watch?v=Wn-3UmXbEv8&list=PLR2qQy0Zxs_UysCZpV98LnZbloP10zxZe&ab_channel=Codepur

Designing Helpers

https://www.youtube.com/c/flutterbucket
https://www.w3schools.com/graphics/svg_path.asp
https://medium.com/flutter-community/paths-in-flutter-a-visual-guide-6c906464dcd0

Networking

https://en.wikipedia.org/wiki/Representational_state_transfer
https://pub.dev/packages/chopper
https://pub.dev/packages/json_serializable

Simple Persistence

https://pub.dev/packages/localstorage
https://pub.dev/packages/flutter_keychain

Database
https://pub.dev/packages/sqflite
https://pub.dev/packages/firebase
https://pub.dev/packages/moor
https://pub.dev/packages/hive

Architecture

https://fluttersamples.com
https://pub.dev/packages/flutter_redux
https://pub.dev/packages/flutter_mobx
https://pub.dev/packages/flutter_bloc

Testing

https://en.wikipedia.org/wiki/Test-driven_development
https://en.wikipedia.org/wiki/Behavior-driven_development
https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530

Languages

https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012
https://cs193p.sites.stanford.edu

Dart

https://pub.dev/packages/freezed
https://fsharpforfunandprofit.com

Package Manager

https://flutter.dev/docs/development/packages-and-plugins/developing-packages
https://cocoapods.org
https://maven.apache.org

Profiling

https://flutter.dev/docs/perf/rendering/ui-performance
https://youtu.be/vVg9It7cOfY

Flutter Internals

https://youtu.be/UUfXWzp0-DU
https://youtu.be/dkyY9WCGMi0
http://www.cs.cmu.edu/~bam/uicourse/830spring20/05-830-2020-03-23-Lecture-10-Flutter.mp4
https://mrale.ph/dartvm/

Continuous Integration

https://fastlane.tools
https://danger.systems
https://www.sonarqube.org
https://codemagic.io/
https://travis-ci.org

Analytics

https://firebase.google.com/docs/analytics
https://docs.microsoft.com/en-us/appcenter/analytics/

Store

https://developer.apple.com/app-store/review/guidelines/
https://play.google.com/about/developer-content-policy/
https://developer.android.com/distribute/best-practices/launch/launch-checklist

Comments

Popular posts from this blog