Flutter & Dart - The Complete Guide [2022 Edition]

A Complete Guide to the Flutter SDK & Flutter Framework for building native iOS and Android apps

4.63 (41970 reviews)
Udemy
platform
English
language
Mobile Apps
category
163,056
students
42.5 hours
content
Nov 2021
last update
$199.99
regular price
What you will learn

Learn Flutter and Dart from the ground up, step-by-step

Build engaging native mobile apps for both Android and iOS

Use features like Google Maps, the device camera, authentication and much more!

Learn how to upload images and how to send manual and automated push notifications

Learn all the basics without stopping after them: Dive deeply into Flutter & Dart and become an advanced developer

Description

Join the most comprehensive & bestselling Flutter course and learn how to build amazing iOS and Android apps!

You don't need to learn Android/ Java and iOS/ Swift to build real native mobile apps!

Flutter - a framework developed by Google - allows you to learn one language (Dart) and build beautiful native mobile apps in no time. Flutter is a SDK providing the tooling to compile Dart code into native code and it also gives you a rich set of pre-built and pre-styled UI elements (so called widgets) which you can use to compose your user interfaces.

Flutter is extremely trending and gets used for major Google apps like their Adwords app - it's now marked as "ready for production", hence now is the time to jump in and learn it!

This course will teach Flutter & Dart from scratch, NO prior knowledge of either of the two is required! And you certainly don't need any Android or iOS development experience since the whole idea behind Flutter is to only learn one language.

You'll learn Flutter not only in theory but we'll build a complete, realistic app throughout this course. This app will feature both all the core basics as well as advanced features like using Google Maps, the device camera, adding animations and more!

With Flutter, you'll be able to write code only once and ship your apps both to the Apple AppStore and Google Play.

Use Google's Material Design to build beautiful, yet fully customizable, apps in no time with almost zero effort. You can use the rich widget suite Flutter provides to add common UI elements like buttons, switches, forms, toolbars, lists and more - or you simply build your own widgets - Flutter makes that a breeze, too.

Here's what's included in the course:

  • Detailed setup instructions for both macOS and Windows

  • A thorough introduction to Flutter, Dart and the concept behind widgets

  • An overview of the built-in widgets and how you may add your own ones

  • Debugging tipps & tricks

  • Page navigation with tabs, side drawers and stack-based navigation

  • State management solutions

  • Handling and validating user input

  • Connecting your Flutter app to backend servers by sending Http requests

  • User authentication

  • Adding Google Maps

  • Using native device features like the camera

  • Adding beautiful animations & page transitions

  • Image Upload

  • Push Notifications - manual approach and automated

  • How to publish your app to the app stores

  • And more!

This course is for you if ...

  • You're interested in building real native mobile apps for the two most popular mobile platforms - iOS and Android

  • You want to explore the full set of features Flutter offers

  • Don't want to spend hours learning two completely different languages

Course prerequisites:

  • Basic programming language knowledge will help a lot but is not a hard requirement

  • You DON'T need to know Flutter or Dart

  • You DON'T need to know iOS (Swift/ObjectiveC) or Android (Java)

Screenshots
Flutter & Dart - The Complete Guide [2022 Edition] - Screenshot_01Flutter & Dart - The Complete Guide [2022 Edition] - Screenshot_02Flutter & Dart - The Complete Guide [2022 Edition] - Screenshot_03Flutter & Dart - The Complete Guide [2022 Edition] - Screenshot_04
Content
Introduction
Introduction
What is Flutter?
Join our Online Learning Community
Understanding the Flutter Architecture
How Flutter & Dart Code Gets Compiled To Native Apps
Understanding Flutter Versions
Flutter macOS Setup
macOS Development Environment
Flutter Windows Setup
Windows Development Environment
Flutter & Material Design
Flutter Alternatives
Course Outline
How To Get The Most Out Of The Course
Useful Resources & Links
Flutter Basics [QUIZ APP]
Module Introduction
Creating a New Project
An Overview of the Generated Files & Folders
More on Git (Version Control System)
Analyzing the Default App
Dart Basics
More Dart Basics
Dart Basics - Summary
Dart Fundamentals
Building an App From Scratch
Running the App on an Emulator
Class Constructors & Named Arguments
First Summary & Additional Syntax
Flutter App Basics
Building a Widget Tree
Visible (Input / Output) & Invisible (Layout / Control) Widgets
Adding Layout Widgets
Widget Basics
Connecting Functions & Buttons
Anonymous Functions
Updating Widget Data (Or: Using StatelessWidget Incorrectly)
[DART DEEP DIVE] Understanding Lists
Updating Correctly with Stateful Widgets
Stateful & Stateless Widgets
A Brief Look Under The Hood
Using Private Properties
Creating a New, Custom Widget
First Styling & Layouting Steps
Enums & Multiple Constructors
Official Docs & The Widget Catalog
Passing Callback Functions Around
Introducing Maps
Mapping Lists to Widgets
final vs const
Advanced Flutter & Dart Basics
Introducing "if" Statements
[DART DEEP DIVE] More on "if" Statements
[DART DEEP DIVE] The "null" Value
Outputting Widgets Conditionally
Splitting the App Into Widgets
Calculating a Total Score
Getters & "else-if"
Resetting the Quiz
Wrap Up
Module Resources
Running Apps on Different Devices & Debugging Apps
Module Introduction
Running the App on a Real Android Device
Running the App on an iOS Emulator
Running the App on a Real iOS Device
Working with the Emulators / Using the Emulators
Understanding Error Messages & Fixing Errors
Using the Debugger
Getting Started with the Dart DevTools
Understanding the Repaint Rainbow
Wrapping up the Dart DevTools
Useful Resources & Links
Widgets, Styling, Adding Logic - Building a Real App [PERSONAL EXPENSES APP]
Module Introduction
An Overview of the Core Flutter Widgets
Planning the App
Combining Widgets
Understanding Column Alignment
Columns & Rows
Not a Widget: Adding a Transaction Model & Transaction Data
Mapping Data Into Widgets
Building a Custom List Item
Styling a Container
Styling Text
More Styling!
Styling Time!
Containers vs Columns vs Rows
Using String Interpolation
Installing External Packages & Formatting Dates
DateFormat Patterns
Adding Text Input Widgets (TextField)
Fetching User Input
Splitting the App Into Widgets
Connecting Widgets & Managing Data / State
Adding User Transactions to the List
Making the List Scrollable!
Working with ListViews
Lists, Scrolling & Text Input
Further Input & Output Styling and Configuration
Adding AppBar Buttons & Floating Action Buttons
Showing a Modal Bottom Sheet
Improving & Styling the Modal Bottom Sheet
Configuring & Using Themes
Custom Fonts & Working with Text Themes
Theming
Adding Images to the App
Planning the Chart Widget
Looping Through Lists
More on "for" Loops
Deriving Recent Transactions
Creating Bars for our Chart
Populating the Chart with Values
Finishing the Chart Bars
Flexible & Expanded: Deep Dive
Adding a ListTile Widget
Improving the Overall Chart
Widgets & Configuring Widgets - Summary / Overview
Getting Started with Date Selection
Showing a DatePicker
Adding Transactions with a Date
Deleting Transactions & Using IconButtons
Final Polishing!
Wrap Up
Useful Resources & Links
Responsive & Adaptive User Interfaces and Apps
Module Introduction
What does "Responsive" and "Adaptive" Mean?
Examples: Where we could improve the App!
Calculating Sizes Dynamically
Working with the "textScaleFactor"
Using the LayoutBuilder Widget
Responsiveness
Controlling the Device Orientation
Rendering Alternative Landscape Content - 1
Finishing Landscape Mode
Showing Different Content Based on Device Orientation
Respecting the Softkeyboard Insets
Using the Device Size in Conditions
Managing the MediaQuery Object
Checking the Device Platform
Using Cupertino (iOS) Widgets
Using the SafeArea
More Cupertino Styles
Using Cupertino Buttons
Creating Custom Adaptive Widgets
Adaptive Widgets
Wrap Up
Useful Resources & Links
Widget & Flutter Internals - Deep Dive
Module Introduction
The Problem At Hand
Widget Tree & Element Tree - What, Why and How?
How Flutter Rebuilds & Repaints the Screen
How Flutter Executes build()
Using "const" Widgets & Constructors
Widgets, Elements, build()
Writing Good Code
Extracting Widgets
Using Builder Methods
Understanding the Widget Lifecycle
Calling super.initState() etc.
Understanding the App Lifecycle
Understanding Context
A Problem with Lists & Stateful Widgets
Understanding the Problem Root
Using Keys
Keys, Lists, Stateful Widgets
Wrap Up
Useful Resources & Links
Navigation & Multiple Screens [MEALS APP]
Module Introduction
Planning the App
Starting With The App - Adding Base Data
Creating a Grid & Working with Linear Gradients
Registering a Screen as the Main Screen
Styling & Theming
Navigating to a New Page
Passing Data via the Constructor
Using Named Routes & Passing Data With Named Routes
Screens & Navigation
Diving Deeper into Named Routes
Adding a Meal Model & Data
Selecting Meals for a Chosen Category
Displaying Recipe Items & Using Network Images
Finishing the Meal List Item
Navigating to the Meal Detail Page
onGenerateRoute & onUnknownRoute
More Navigation!
Finishing the Meal Detail Page
Adding a TabBar to the Appbar
Adding a Bottom TabBar
Adding a Custom Drawer
Adding Links to the Drawer
Tabs & Drawers!
Replacing Pages (Instead of Pushing)
Popping Pages & Passing Data Back
Replacing, Popping & Data
Adding Filter Switches
Adding Filtering Logic
Adding a "Mark as Favorite" Feature
A Problem!
Wrap Up
Useful Resources & Links
State Management [SHOP APP]
Module Introduction
Planning the App
Defining a Data Model
Working on the "Products" Grid & Item Widgets
Styling & Theming the App
Adding Navigation to the App
Why State Management? And what is "State" and "State Management"?
Understanding the "Provider" Package & Approach
Using the Right Provider Package Version
Working with Providers & Listeners
[DART DEEP DIVE] Inheritance ("extends") vs Mixins ("with")
Providing non-Objects
Listening in Different Places & Ways
State, State Management & The Provider Package/ Approach
Using Nested Models & Providers
Exploring Alternative Provider Syntaxes
Using "Consumer" instead of "Provider.of"
Local State vs App-wide State
Adding Shopping Cart Data
More on State Management & The Provider Package
Working with Multiple Providers
Connecting the Cart Provider
Working on the Shopping Cart & Displaying a Total
Displaying a List of Cart Items
Making Cart Items Dismissible
Adding Product Detail Data
Providing an Orders Object
Adding Orders
Adding an Orders Screen
Using a Side Drawer
Making Orders Expandable & Stateful Widgets vs Providers
Wrap Up
Useful Resources & Links
Working with User Input & Forms [SHOP APP]
Module Introduction
Snackbars & Undoing "Add to Cart" Actions
Showing Alert Dialogs
Adding a "Manage Products" Page
"Edit Product" Screen & A Problem
Using Forms & Working with Form Inputs
ListView or Column
Managing Form Input Focus
Multiline Inputs & Disposing Objects
Image Input & Image Preview
Submitting Forms
Validating User Input
Adding Validation to All Inputs
[OPTIONAL] Working with Regular Expressions
Saving New Products
Time to Update Products!
Allowing Users to Delete Products
Wrap Up
Useful Resources & Links
Sending Http Requests [SHOP APP]
Module Introduction
On-Device vs Web Storage
How to Connect Flutter to a Database
Preparing Our Backend
How To Send Http Requests
Sending POST Requests
Working with Futures in Dart
[DART DEEP DIVE] Futures & Async Code
Http Requests & Futures
Showing a Loading Indicator
Handling Errors Gracefully
Working with "async" & "await"
Fetching Data, initState & "of(context)"
How to Transform Fetched Data
Implementing Pull-to-Refresh
Updating Data via PATCH Requests
Utilizing Optimistic Updating
Creating Custom Exceptions & More Error Handling
A Challenge For You!
Updating the "Favorite" Status Optimistically
Storing Orders in the Web
Fetching Orders & Fixing an Issue
Using the "FutureBuilder" Widget & Improving the Code
Wrap Up
Useful Resources & Links
Adding User Authentication [SHOP APP]
Module Introduction
How Authentication Works
Prepare Backend
Adding the Auth Screen
Adding User Signup
Allowing Users to Log In
Handling Authentication Errors
Managing the Auth Token Locally (in the App)
Avoiding Issues with Provider Package
Using the "ProxyProvider" and Attaching the Token to Outgoing Http Requests
Adding the Token to All Requests
Connecting the "Favorite" Status to Users
Attaching Products to Users & Filtering By Creator
Attaching Orders to Users
Adding a Logout Functionality
Automatically Logging Users Out (After Some Time)
Automatically Logging Users In
Wrap Up
Useful Resources & Links
Adding Animations [SHOP APP]
Module Introduction
Animations From Scratch (Completely Manually Controlled)
Using the "AnimatedBuilder" Widget
Working with the "AnimatedContainer"
More Built-in Animation & Transition Widgets
Fading Loaded Images In (And Showing a Placeholder)
Adding a "Hero" Transition
Working with Slivers
Practice: Animating Order Boxes
Implementing Custom Route Transitions
Wrap Up
Useful Resources & Links
Using Native Device Features (Camera, Maps, Location, ...) [GREAT PLACES APP]
Module Introduction
Planning the App
PlaceList & Place Provider Setup
Adding the "Add Place" Screen & An Image Input
Using Image Picker & The Device Camera
Storing the Image on the Filesystem (on the Device)
Managing Data & Images via the Provider Package
Handling Errors
Testing on Real Devices
Preparing SQLite
Storing & Fetching Data with SQLite
Adding a Location Input & The "location" Package
Fetching the User Coordinates
Displaying a Static Map Snapshot
Rendering a Dynamic Map (via Google Maps)
Allowing Users to Pick a Location on the Map
Storing the Location in SQLite
Adding a "Place Detail" Screen & Opening the Map in "readonly" Mode
Wrap Up
Useful Resources & Links
Running Native Swift, ObjectiveC, Java or Kotlin Code
Module Introduction
Using a Proper Project Setup
Sending a Method Call from Flutter
Running Android Code
Running iOS Code
Wrap Up
Useful Resources & Links
Publishing to the App Stores
Module Introduction
Preparing the Code
Preparing the App Configuration
Preparing Third-Party Services
Adding Icons & Splash Screens
Publishing Android Apps
Publishing iOS Apps
Useful Resources & Links
Roundup & Next Steps
You did it!
Your Next Steps (To Become an Awesome Developer!)
How to Plan & Develop Successful Apps
Summary of the Course Update
What Changed? What's New? Why did I Update the Course?
Changes you should not miss
The [LEGACY] Sections
[LEGACY] Diving Into the Basics & Understanding Widgets
What does [LEGACY] mean?
Module Introduction
Creating a New Flutter Project
Exploring the Default Project Structure
Diving Into the "main.dart" File
Widgets in Flutter - Theory
Creating a Widget
Understanding Classes & Constructors
Adding the "Build" Method
Adding the Scaffold
Diving Deeper Into the Syntax
Adding Cards & Images
Diving Into the Official Docs
Adding a Button
Creating a Stateful Widget
Managing Data Inside Stateful Widgets
Adding the Stateful Widget & Lists
Splitting our Code Up
Creating the "Product Manager" Widget
Passing Data to Stateful Widgets
initState() and super.initState()
Understanding Lifecycle Hooks
Diving Into Google's Material Design
Understanding Additional Dart Features
Passing Data Up
Understanding "const" & "final"
Dart Types, Syntax & Core Features
Wrap Up
Useful Resources & Links
[LEGACY] Debugging Flutter Apps
Module Introduction
Fixing Syntax Errors
Understanding Runtime Errors & Runtime Messages
Dealing with Logical Errors
Using Breakpoints
Debugging the User Interface
More About Visual Helpers
Wrap Up
Useful Resources & Links
[LEGACY] Running the App on Different Devices
Testing Devices
How to Start the App
Testing a Real Android Device
Using the iOS Emulator & a Real Device
Running the App - Detailed Instructions
Using the Native IDE Consoles
[LEGACY] Working with Lists & Conditionals
Module Introduction
Creating Scrollable Lists with "ListView"
Optimizing the List Loading Behaviour
Rendering Content Conditionally
Alternative Approaches to Render Content Conditionally
One Important Gotcha
Wrap Up
Useful Resources & Links
[LEGACY] Navigation
Module Introduction
Adding Multiple Pages to our App
Adding Buttons
Implementing a Basic Navigation
Improving the Look of the Product Page
Passing Data Around ("Pushing" the Page)
Passing Information Back ("Popping" the Page)
Adding Reactions Upon Button Pressing
Adding the Basic Authentication Page & Replacing Routes
Adding the Sidedrawer & the Hamburger Icon
Understanding Stack Based Navigation
Adding Tabs
Finishing the Tab Navigation
Adding Named Routes
Parsing Route Data Manually
Lifting State Up
Using the Named Routes
Working with "onUnknownRoute" as Fallback
Adding Alert Dialogs
Showing a Modal
Wrap Up
Useful Resources & Links
[LEGACY] Handling User Input
Module Introduction
Saving User Input
Configuring Text Fields
Styling Text Fields
Fixing a Bug & Adding a Button
Using our Form to Create a New Product
Improving the Style of our Form
Fixing a Tiny "Error"
Adding a Switch
Wrap Up
Useful Resources & Links
[LEGACY] Diving Deeper Into Widgets
Module Introduction
Exploring the Widget Catalogue
There's More Than One Widget For The Job
The Most Important Widgets
Working with Text & Fonts
Working with Rows
Decorating Boxes & Styling a Price Tag
Setting Borders
Understanding "Expanded" & "Flexible"
Adding a Background Image
Centering Input Fields
Adding Icons to our Sidemenu
Adding Icon Buttons
Outsourcing Code into Separate Widgets
Refactoring our Code
Creating a Standardized Tile Widget
Adding Separate Methods for Specific Widgets
Optimizing our Project
Responsive Design Problems
Adding Media Queries
Understanding Media Queries with ListView
Working with Themes
Listening to Touch Events with the Gesture Detector
Wrap Up
Useful Resources & Links
[LEGACY] Working with Forms
Module Introduction
Using the Form Widget
Adding Form Validation
Advanced Validation
A Note on the "Price" Input and the Usage of Commas/ Dots
Closing the Keyboard
Submitting Data
Outputting Lists of Products
Re-Using the Product Create Form
Setting Initial Values
Updating Products
Ensuring Input Visibility
Wrap Up
Useful Resources & Links
[LEGACY] Improving the App
Module Introduction
Improving the List Tile
Adding the Dismissible Widget
Deleting Products Upon Swipe
Restructuring the Code & Wrap Up
Useful Resources & Links
[LEGACY] Models & State Management
Module Introduction
What can be Improved?
Adding a Product Model
Creating a Scoped Model
Connecting the Scoped Model
Providing the Scoped Model
Viewing Single Products
Editing & Deleting Products with the Scoped Model
Finishing the Product Model
A Note on Immutability
Creating the Toggle Favorite Method
Working on the Favorite Feature
Adding "notifylisteners"
Finishing the Favorite Feature
Fixing a Bug related to the "Favoriting" Feature
Adding a User Model
MUST READ: Mixins & The Latest version of Dart
Using Mixins to Merge Models
Logging in with the Main & the User Model
Connecting Models & Sharing Data
MUST READ: Changing Mixins Syntax
Improving the Code & Fixing an Error
MUST READ: Unselecting the Product after Editing
Wrap Up
Useful Resources & Links
[LEGACY] Flutter & HTTP
Module Introduction
Understanding the Backend Setup
Sending a POST Request
Using the Response
Getting Data From a Server
Transforming & Extracting Response Data
Displaying a Loading Spinner
Finishing the Loading Spinner
Updating Products
Deleting Products
Using Pull to Refresh
Adding "fadein" to the Image Placeholder
Adjusting the Scoped Model & the Selected Product
Fixing the Product Selection
Handling Error Responses
Generic Error Handling
Adding "async" "await"
Improving our Code
Wrap Up
Useful Resources & Links
[LEGACY] Authentication
Module Introduction
How Authentication Works
Adding a "Confirm Password" Textfield
Implementing the Signup Functionality
Handling Errors
Adding a Spinner Whilst Signing Up
Adding the Signin Functionality
Refactoring our Code
Authenticating Requests with Tokens
Storing the Token on the Device
Signing Users In Automatically
Adding a Logout Button
Adding Autologout
Route Protection & Redirection
Fixing the Manual Logout
Time for a Quick Recap Regarding our Code Structure
Adding Optimistic Updating to Store the Favorite Status
Fetching the Favorite Status
Allow Editing for own Posts Only
Wrap Up
Useful Resources & Links
[LEGACY] Adding Google Maps to our App
Module Introduction
Using MapView with the latest Flutter Version
Unlocking the Required APIs
Requesting Permissions
Preparing our Text Form Field
Adding a Static Dummy Map
Sending a Request to Convert an Address to Coordinates
Adding Geocoding & Maps with Real Coordinates
Working on the Map Control
Storing Location Data in the Database
Fixing a Bug
Loading Location Data from the Backend
Updating an Existing Product's Position
Adding the Update Method for the Location
Adding the Location Package
Using the Location Package with Version >=1.4
Getting the User Location
Preventing Memory Leaks
Displaying the Address
Showing a Fullscreen Map
Wrap Up
Useful Resources & Links
[LEGACY] Accessing the Device Camera
Module Introduction
Adding an Image Picker Button
Adding the "Use Camera" & "Gallery" Buttons
Connecting the "Choose" Buttons to the Image Picker
Adding an Image Preview
Adding Text Editing Controllers
Setting Up Firebase Cloud Functions
Adjusting Firebase Functions (Fixing an Error)
Adding Server Side Code
Reading Incoming Files & Fields
Storing Data and Move it to a Temporary Storage
Deploying our Firebase Cloud Function
Configuring the Upload Request
Setting Headers to Add the Token
Fixing an Error
Fetching & Using Images
Previewing & Editing the Image
Adding the Image Upload Flow
Deleting Images When Deleting a Product
Wrap Up
Useful Resources & Links
[LEGACY] Adding Animations to our Project
Module Introduction
Adding Floating Action Buttons (FABs)
Adding Functionality to our Favorite Button
Working on the Contact Button
Animating the Contact Icon
Animating the Favorite Icon
Animating the Options Button
Fading the Password Field In & Out
Sliding the Password Field In & Out
Adding Hero Widgets
Adding the Sliver Effect
Adding Route Transitions
Wrap Up
Useful Resources & Links
[LEGACY] Polishing & Bugfixing
Module Introduction
Fixing an Autologout Bug
Fixing the Price Input in Landscape Mode
Fixing the Filtered Product Index
Fixing the Product Title Style & the Favorite Product Selection
Toggling the Favorite Status
Clearing All Products Before Fetching
Testing the iPhone & Fixing the Product Reset Logic
Adding Space on the Product Card
Using Flutter Analyze
Possible Code Restructurings
Managing Global Values
Testing the App on an Android Device
Testing the App on an iPhone & Fixing the European Decimal Comma
Useful Resources & Links
[LEGACY] Running Platform Specific Code
Module Introduction
Understanding Material Design & Cupertino
Detecting the Platform
Using Platform Specific Widgets
Adding a Platform Specific Theme
When Should we Use Platform Specific Themes?
iOS Support since Flutter 0.8.2
Wrap Up
Useful Resources & Links
Roundup
Bonus: More Content!
Reviews
Jordane
17 November 2021
Kind of slow and repetitive but everything is explained clearly. Just wished there was a dedicated "experimented section"
Stephen
17 November 2021
Comprehensive help to setup and get started on the journey, there are clear explanations for everything and the pacing is great
Kevin
17 November 2021
Really well presented and very clear. Nothing is left out and every point is covered in detail. You never need to guess what to do.
Altamush
16 November 2021
Please only use this course as a reference. If you immediately wish to start freelancing after taking this course, you will not be able to, as most of it is outdated and does not teach you how to provide common solutions that most clients require. For example, the chat app does not have user account management and does not go very deep into rules. The shop app does not have payment integration. PLEASE ONLY USE THIS COURSE AS REFERENCE.
Aleskeroff
15 November 2021
Just an awesome course. Max, as usual, did a very good course that surpassed all expectations! I definitely recommend this course!
Business
15 November 2021
Mobile experience is very good, with a couple of very minor glitches. I'm now trying on Windows to setup the Flutter dev environment...
Luis
14 November 2021
This is the best course I've done in a long time, I came here trying to learn just flutter and dart. In reality I learnt much much more. for those of you facing deprecations issues or some things like that flutter is quickly evolving and becoming better everyday and the best thing you can do is to learn how to understand those new changes by yourself. I definitely recommend this course. At the beginning I was a little skeptical but then I realized this is one of if not the best flutter course in Udemy. You definitely check it out. PS: greeting from the Dominican Republic, klk mi gente, metan mano con este curso!!
Shafqat
14 November 2021
This is very amazing course of flutter. I have learned too much from this course. I highly recommend this course to everyone who is interested to become android and IOS developer.
Lorenzo
13 November 2021
Amazing course, by an amazing teacher. Definitly recommended! I'm already working as a mobile dev and with Flutter & Dart I'm going to the next level. If you're still wondering about it... Don't! Start learning Flutter right now ! ✌️
Michael
9 November 2021
I came across a few personal problems, namely setup. I had to look up fixes on my own for the AMD cpu im running
Michael
6 November 2021
Most Fully Flutter Course includes basic,advanced,projects i bought 3 courses for flutter and this one is the best for sure
Ali
6 November 2021
Wow! I am amazed how you explained the foundation of the course which is very important for the beginning of the course. I believe if I get solid foundation of the course rest will be easy.
Manish
6 November 2021
Very well designed course. Easy to follow and the instructor is really good. He explains things very nicely.
Simone
30 October 2021
This course was very productive and I was very satisfied with the teacher who explained each topic with passion and professionalism. It was very clear in the concepts and logic of this Dart - Flutter language To understand the concepts and the programming logic well, I had to review the material several times, so I was able to learn better the concepts he explained by immersing myself more and more in the logic of this language, obtaining a much clearer vision. I certainly look forward to any updates both in terms of mobile apps, and a new web app course. I have already taken other courses of yours and you are my reference teacher for me. Thank you very much for your teaching style.
Ahmed
17 October 2021
I think this course has taught me a lot about flutter and now my confidence building apps have increased significantly compared to watching youtube tutorials.
Charts

Price

Flutter & Dart - The Complete Guide [2022 Edition] - Price chart

Rating

Flutter & Dart - The Complete Guide [2022 Edition] - Ratings chart

Enrollment distribution

Flutter & Dart - The Complete Guide [2022 Edition] - Distribution chart
Coupons
DateDiscountStatus
7/3/201995% OFF
expired
11/14/201993% OFF
expired
5/4/202095% OFF
expired
5/20/202094% OFF
expired
7/12/202094% OFF
expired
12/17/202094% OFF
expired
2/13/202192% OFF
expired
7/20/202192% OFF
expired
1708340
udemy ID
5/22/2018
course created date
6/9/2019
course indexed date
Bot
course submited by
Twitter LogoFacebookInstagram LogoYoutube LogoTelegram LogoEmail