Learn Flutter & Dart to Build iOS & Android Apps
4.6 (5,368 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
22,428 students enrolled

Learn Flutter & Dart to Build iOS & Android Apps

A Complete Guide to the Flutter SDK & Flutter Framework for building native iOS and Android apps
Bestseller
4.6 (5,368 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
22,428 students enrolled
Last updated 3/2019
English
English, Indonesian [Auto-generated], 3 more
  • Italian [Auto-generated]
  • Polish [Auto-generated]
  • Romanian [Auto-generated]
Current price: $11.99 Original price: $199.99 Discount: 94% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 25.5 hours on-demand video
  • 36 articles
  • 178 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Build engaging native mobile apps for both Android and iOS
  • Use features like Google Maps, the device camera, authentication and much more!

Course content
Expand all 308 lectures 25:26:19
+ Diving Into the Basics & Understanding Widgets
28 lectures 02:04:01
Module Introduction
01:14
Creating a New Flutter Project
04:18
Exploring the Default Project Structure
02:19
Diving Into the "main.dart" File
02:32
Widgets in Flutter - Theory
02:07
Creating a Widget
04:55
Understanding Classes & Constructors
01:00
Adding the "Build" Method
04:06
Adding the Scaffold
06:34
Diving Deeper Into the Syntax
06:06
Adding Cards & Images
06:52
Diving Into the Official Docs
01:56
Adding a Button
03:56
Creating a Stateful Widget
05:26
Managing Data Inside Stateful Widgets
05:12
Adding the Stateful Widget & Lists
03:32
Splitting our Code Up
06:38
Creating the "Product Manager" Widget
05:48
Passing Data to Stateful Widgets
07:03
initState() and super.initState()
00:21
Understanding Lifecycle Hooks
09:36
Diving Into Google's Material Design
04:45
Understanding Additional Dart Features
05:45
We already learned a lot about the basic concepts behind Flutter & Dart - time to practice our new knowledge!
Time to Practice - Widgets & Basics
1 question
Passing Data Up
08:52
Understanding "const" & "final"
06:06
Dart Types, Syntax & Core Features
01:38
Wrap Up
05:17
Useful Resources & Links
00:06
+ Debugging Flutter Apps
9 lectures 28:00
Module Introduction
00:39
Fixing Syntax Errors
04:39
Understanding Runtime Errors & Runtime Messages
04:16
Dealing with Logical Errors
03:45
Using Breakpoints
04:53
Debugging the User Interface
04:07
More About Visual Helpers
02:28
Wrap Up
03:05
Useful Resources & Links
00:08
+ Running the App on Different Devices
6 lectures 14:13
Testing Devices
01:19
How to Start the App
02:41
Testing a Real Android Device
01:55
Using the iOS Emulator & a Real Device
06:07
Running the App - Detailed Instructions
00:26
Using the Native IDE Consoles
01:45
+ Working with Lists & Conditionals
8 lectures 26:45
Module Introduction
00:57
Creating Scrollable Lists with "ListView"
04:25
Optimizing the List Loading Behaviour
06:46
Rendering Content Conditionally
05:13
Alternative Approaches to Render Content Conditionally
05:39
One Important Gotcha
01:47
Wrap Up
01:52
Useful Resources & Links
00:06
+ Navigation
22 lectures 01:41:38
Module Introduction
01:08
Adding Multiple Pages to our App
03:40
Adding Buttons
03:14
Implementing a Basic Navigation
07:32
Improving the Look of the Product Page
04:54
Passing Data Around ("Pushing" the Page)
08:12
Passing Information Back ("Popping" the Page)
07:09
Adding Reactions Upon Button Pressing
06:05
Adding the Basic Authentication Page & Replacing Routes
04:41
Adding the Sidedrawer & the Hamburger Icon
04:21
We learned a lot about navigation already, so let's practice how to create a new page in this assignment!
Time to Practice - Navigation Part 1
1 question
We were able to navigate to a new page in the last assignment, let's now continue practicing what we learned about navigation thus far!
Time to Practice - Navigation Part 2
1 question
Understanding Stack Based Navigation
01:40
Adding Tabs
07:25
Finishing the Tab Navigation
01:39
Adding Named Routes
05:51
Parsing Route Data Manually
06:39
Lifting State Up
06:33
Using the Named Routes
04:49
Working with "onUnknownRoute" as Fallback
02:57
Adding Alert Dialogs
06:25
Showing a Modal
02:53
Wrap Up
03:44
Useful Resources & Links
00:07
+ Handling User Input
11 lectures 40:56
Module Introduction
00:53
Saving User Input
07:11
Configuring Text Fields
03:44
Styling Text Fields
04:22
Fixing a Bug & Adding a Button
03:05
Using our Form to Create a New Product
09:23
Improving the Style of our Form
04:13
We learned how to handle user input in Flutter, time to test our knowledge in this assignment!
Time to Practice - Handling User Input
1 question
Fixing a Tiny "Error"
01:36
Adding a Switch
04:43
Wrap Up
01:42
Useful Resources & Links
00:04
+ Diving Deeper Into Widgets
25 lectures 02:00:51
Module Introduction
00:54
Exploring the Widget Catalogue
03:48
There's More Than One Widget For The Job
08:46
The Most Important Widgets
00:06
Working with Text & Fonts
06:47
Working with Rows
06:33
Decorating Boxes & Styling a Price Tag
07:57
Setting Borders
06:30
Understanding "Expanded" & "Flexible"
08:50
Adding a Background Image
08:00
Centering Input Fields
04:04
Adding Icons to our Sidemenu
03:43
Adding Icon Buttons
05:17
We really learned a lot about widgets until now, but do you remember all the concepts we discussed? Let's find out in this assignment.
Time to Practice - Diving Deeper Into Widgets
1 question
Outsourcing Code into Separate Widgets
05:40
Refactoring our Code
04:16
Creating a Standardized Tile Widget
04:44
Adding Separate Methods for Specific Widgets
04:22
Optimizing our Project
07:01
Responsive Design Problems
03:03
Adding Media Queries
06:36
Understanding Media Queries with ListView
03:11
Working with Themes
03:35
Listening to Touch Events with the Gesture Detector
03:08
Wrap Up
03:55
Useful Resources & Links
00:05
+ Working with Forms
14 lectures 57:04
Module Introduction
00:57
Using the Form Widget
07:25
Adding Form Validation
06:10
Advanced Validation
04:14
A Note on the "Price" Input and the Usage of Commas/ Dots
00:29
Closing the Keyboard
03:16
Submitting Data
04:06
Forms are important in almost every web or mobile app, so let's practice what we learned about forms in Flutter!
Time to Practice - Forms
1 question
Outputting Lists of Products
06:05
Re-Using the Product Create Form
04:15
Setting Initial Values
05:38
Updating Products
05:18
Ensuring Input Visibility
07:33
Wrap Up
01:32
Useful Resources & Links
00:05
+ Improving the App
6 lectures 19:28
Module Introduction
00:40
Improving the List Tile
04:42
Adding the Dismissible Widget
04:47
Deleting Products Upon Swipe
05:12
Restructuring the Code & Wrap Up
04:05
Useful Resources & Links
00:02
Requirements
  • Basic programming language will help but is not a must-have
  • You can use either Windows, macOS or Linux for Android app development - iOS apps can only be built on macOS though
  • NO prior iOS or Android development experience is required
  • NO prior Flutter or Dart experience is required - this course starts at zero!
Description

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
  • 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)
Who this course is for:
  • Beginner and experienced developers who are interested in diving into mobile app development using one language for both platforms
  • Experienced iOS or Android developers who want to build cross-platform (iOS + Android) apps with one single programming language