Best Resources to Learn Flutter & Dart: 15+ Tutorials and Courses, 15+ Best Libraries and Starter Kits

Flutter is a UI toolkit, developed by Google, and you can use it to create a beautiful native app for desktop, mobile, and web. For faster development and native performance, you can choose Flutter for building an app. Hot Reload and customizable widgets are some notable features of Flutter.

Tutorials and Courses

  • Flutter – Beginners Course – It is a comprehensive course for beginners with a guide on creating Flutter-based mobile apps. However, you have to understand the Dart language to join this course. The paid course at Udemy will enable you to develop apps with the Flutter framework.
  • Dart and Flutter: The Complete Developer’s Guide – Before digging into Flutter, one needs to know about Dart. This course covers Dart language and its primary features first, then teaches about Flutter’s screens, complex animations, network requests, react programming, etc…
  • Flutter Development Bootcamp Using Dart – You can pay for this premium course, presenting you with a perfect curriculum on Flutter app development. You will know the technique of using Dart for code development. The tutorial guides you on creating the native-quality app. Thus, choose this online course to learn the Flutter setup and Flutter app development process.
  • Flutter Succinctly – You can download this free e-book on your mobile and learn the details of Flutter app development. The e-book presents you with 129 pages with information on app fundamentals and app UI. You will learn the way of using customizable widgets to build the app.
  • Flutter in Action – We have chosen it as the most reliable paid tutorial on Flutter. The book guides you on building professional mobile apps with the Dart programming language and Flutter SDK. You can find several annotations and diagrams that make your learning process easier. The tutorial also includes routing and other complicated topics.
  • Flutter Tutorials – The free tutorial guides you on the way of using the Flutter framework to develop different apps. It also includes a layout mechanism, widgets (horizontal and vertical), and animation package of Flutter. You will learn tricks of internationalizing a Flutter application.
  • Build A Chat Application With Firebase, Flutter and Provider – This Udemy course teaches you how to make a complete mobile messaging application like WhatsApp or Telegram using Flutter, Firebase and Provider Framework.
  • Official Flutter Youtube Channel – This channel is a goto place to learn things about Flutter, including usage of different widgets, and Google IO videos content.
  • Marcus Ng – He is a mobile developer who has published a lot of tutorials about how to create a design in Flutter.
  • Login with flutter_bloc – Implement a login flow with username and pass using flutter_block.
  • Tip Calculator – In this tutorial you will learn how to make a Tip Calculator. It is best to learn about form input and calculation.
  • Todo app with flutter_bloc – Create your todo app, including create todo, todo list with checkbox.
  • A complete guide to Flutter – This repo aims to guide new Flutter user through a huge list of working application using Flutter Web.
  • Navigation done right – In this article, the developer briefly describes navigation principles used in one of his popular apps and how to implement it using just the framework-provided Navigator.

Architecture Tutorials

Best Libraries

  • win32 – A package that wraps some of the most common Win32 API calls using FFI to make them accessible to Dart code without requiring a C compiler or the Windows SDK.
  • fl_chart – A library to draw fantastic charts. It has several useful graphs, such as bar, line and pie charts.
  • dio – A powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout etc.
  • ezanimation – An easy to use animation library. With EzAnimation, there is no need to burden your code with TickerProviders, the complicated logic of curves, different components of animation, etc.
  • rxdart – RxDart is a reactive functional programming library for Google Dart based on ReactiveX. RxDart adds functionality from the reactive extensions specification on top of Dart’s Streams API.
  • intro_slider – Flutter Intro Slider is a flutter plugin that helps you make a cool intro for your app.
  • path_provider – Find commonly used locations on the filesystem on both Android and iOS. 
  • cached_network_image – It shows and caches images downloaded from internet. This widget now uses builders for the placeholder and error widget and uses sqflite for cache management.
  • font_awesome_flutter – Use Font Awesome icons in your app.
  • time.dart –  Type-safe DateTime and Duration calculations, powered by extensions.
  • google_fonts – The google_fonts package for Flutter allows you to easily use any of the 977 fonts (and their variants) from in your Flutter app.
  • flutter_svg – This package allows to draw SVG (and some Android VectorDrawable (XML)) files on a Flutter Widget.
  • flare_flutter – Flare offers powerful realtime vector design and animation for app and game designers alike. This library is Flutter runtime for Flare, depends on flare_dart.
  • clean_settings – Creating a settings screen requires the same boiler plate code over and over. This library aims to provide sane defaults while creating a setting screen.
  • battery_plus – Access various information about the battery of the device the app is running on.
  • connectivity_plus – This allows Flutter apps to discover network connectivity and configure themselves accordingly. It can distinguish between cellular vs WiFi connection.
  • device_info_plus – Get current device information from within the Flutter application.
  • package_info_plus – Provides an API for querying information about an application package.
  • sensor_plus – Access the accelerometer and gyroscope sensors.
  • share_plus – A Flutter plugin to share content from your Flutter app via the platform’s share dialog.
  • android_alarm_manager_plus –  Accessing the Android AlarmManager service, and running Dart code in the background when alarms fire.
  • android_intent_plus –  Launch arbitrary intents when the platform is Android.


Starter Kits / Templates

  • first_app – Various elements and features are put together into this single app. It offers global UI theme, separation of business logic in models and providers, use of scoped_model for app state management, unit test, custom icons for both iOS and Android, Firebase Analytics & Crashlytics for tracking, and many more.
  • Flutter E-Commerce UI KIT – E-Commerce UI kit can be used for e-commerce applications in android and ios devices. It contains 32 Screens with a different type of UI, E-Commerce UI kit can save your time to code all Front end layout.
  • FluxNews – This kit can turn your WordPress website into a news app.
  • Travel Hour with Admin Panel – Travel Hour is a complete travel guide app based on a country, it has also an admin panel. The app uses Google maps and Its APIs to get nearby data like hotels and restaurants and show routes between the source and destination. The template contains 50+ screens.
  • Shoppers – A Flutter E-Commerce app created using Firebase, Stripe and Razorpay.
  • flutter-starter-kit – A Flutter starter application that utilizes the BLoC Pattern. 


  • FlutLab – This is a playground for writting Flutter app. It offers an emulator to see the output as well.
  • FigmaToCode – Figma To Code can generate responsive layouts in Tailwind and Flutter from Figma design.
  • AppWrite – This is an end-to-end backend server that is aiming to abstract the complexity of common, complex, and repetitive tasks required for building a modern app.
  • cpainterhelper – A simple script that lets you convert adobe illustrator paths to code compatible with Flutter’s CustomPainter.
  • – Create beautiful screenshots for App Store and Play Store.
  • – Create intro videos, screenshots for your app and for FREE.

My Source Codes

Our Tutorials

  • 2 Best Picture-In-Picture Libraries for Flutter
    Picture-In-Picture (PIP) is a special type of multi-window mode mostly used for video playback. This mode display a popup in the corner which plays a video, PIP is a new feature...
  • 3 Best Text-to-Speech Libraries for Flutter
    These Flutter Text-to-Speech libraries will allow developers to bring TTS feature to their apps easily. flutter_tts flutter_tts is a plugin for Text to Speech. It supports many platforms, including iOS,...
  • How to use clipboard in Flutter
    Copying data to clipboard and pasting data from clipboard is quite simple in Flutter. However, you still need to install a necessary plugin to access clipboard. Install all of libraries...
  • Add Wave Animation in Flutter
    Wave animation is kind of cool to use in an app. It is the base to make a liquid animation. I posted a wave animation example here. Here is our...
  • Best Images Packages for Flutter
    There are many image libraries written for Flutter which will help developers make apps related to image easier. ImageEditorPro - This library offers simple, easy support for image editing. You...
  • Open Menu with Animation in Flutter
    This post will introduce about how to open menu with scale animation while make the main page smaller. This animation is introduced in this video. import 'package:flutter/material.dart'; class StackPage extends...
  • Add Desktop support for Flutter and write your first app
    Desktop support allows developers to write app which can be run on Windows, macOS, and Linux. Even though it is not ready for production yet, it won't keep us from...
  • 8 Best Flutter Animation Libraries
    Working with animation in Flutter is fun. There are many ways to make UI alive. If you don't want to use the built-in animation widgets, you can choose among the...
  • How to hide keyboard in Flutter
    Working with TextField and Textformfield requires us to handle keyboard popup's behavior. Dismissing it at the right time can smooth a user's form input process. We can hide the keyboard...
  • device_info - Detect platform and OS version in Flutter
    device_info is a package which allows developers to get Android and iOS system information. Import package:device_info/device_info.dart, instantiate DeviceInfoPlugin and use the Android and iOS getters to get platform-specific device information....
  • Amazing Apps Built with Flutter
    Do you need to develop native applications in no time? Then the amazing Flutter framework is the place to be. This cross-platform mobile app framework is a powerful tool in...
  • enhanced_future_builder - Cache FutureBuilder Result without Refreshing FutureBuilder with setState
    enhanced_future_builder is a small library which wraps around FutureBuilder to improve its readability. It can also be used as an easy solution to prevent FutureBuilder from keep reloading whenever setState...
  • Evaluate a variable's data type in Dart
    is and is! operators can be used to determine a variable's data type or class. Example var data = ["Hello", 5, 5.12, [], {}, User('username', 'password')]; Using is and is!:...
  • How to Dynamically Change Page Title in Flutter Web
    When building an app you can set its title by using MaterialApp's title property. MaterialApp( title: 'App Title', home: MyHomePage(), ) Using title means you won't be able to change...
  • Convert BASE64 String into Image in Flutter
    Some backend systems save image as BASE64 string instead of its URL. Here is how to convert it into an image in Flutter. Convert BASE64 to image Uint8List _image =...
  • How to Change Background Color of a Screen in Flutter
    In most cases we use Scaffold as root of an app's home. There are 2 ways we can modify it Use ThemeData We can background color via scaffoldBackgroundColor. This approach...
  • Flutter FutureBuilder with ListView Example
    FutureBuilder is a widget that builds itself based on the latest snapshot of a future operation. This widget waits for an async function's result and calls the builder function where...
  • Dart getters and setters examples
    In Object-Oriented Programming, getters and setters are special methods that provide access to an object’s properties. Each property has their implicit getters and setters. You can create your own getters and...
  • How to Add Launcher Icon to Your Flutter App
    There is a library called Flutter Launcher Icons which has been developed to help developers quickly generate launcher icons for both Android and iOS. You can get the latest version...
  • Read and Write a Text File or Multiple Files in Flutter
    With certain types of data, a text file can be preferred to other solution such as Shared Preferences, SQLite. The file we are going to read and write needs to...
  • Pass a method as a parameter to a widget in Flutter
    When we create custom widgets like TextField and RaisedButton, we need to send onChanged and onPressed callback to these custom widgets. There are 2 ways to pass a method as...
  • Flutter DropDownButton
    DropdownButton widget consists a list of DropdownMenuItem. It shows the currently selected item and an arrow that opens a menu for selecting another item. A simple DropdownButton A simple widget...
  • Flutter SharedPreferences
     Shared Preferences is a way to store data key-value pair in the Android and iOS. The shared_preferences library can be downloaded here. Example import 'package:shared_preferences/shared_preferences.dart'; class SharedPrefs { static Future<SharedPreferences> get...
  • Flutter AlertDialog
    An alert dialog which consists of an optional title and an optional list of actions informs the user about situations that require acknowledgement. Open an dialog showDialog( context: context, barrierDismissible:...
  • Flutter Button
    There are many types of buttons as widgets in Flutter. ButtonBar - A horizontal arrangement of buttons.DropdownButton - Shows the currently selected item and an arrow that opens a menu...
  • Flutter AppBar
    Appbar is a widget that contains the toolbar in a Flutter application. An app bar contains different toolbar widgets like menu button, actions, icon buttons and many more. Add a...
  • Add Font Awesome Icons to Flutter App
    Font Awesome is an alternative to traditional old image icons, which is used by many app developers. Adding Font Awesome icons to a Flutter app is easy, thanks to font_awesome_flutter library....

Leave a Comment

Your email address will not be published. Required fields are marked *

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.