Mô tả

May 2023: This course was completely updated (re-recorded from the ground up) and is now better than ever!

---

Discover the power of Flutter and Dart to create stunning, high-performance mobile apps for iOS and Android with the most comprehensive and bestselling Flutter course! With over 30 hours of comprehensive content, this course is the ultimate resource for anyone who wants to build beautiful, responsive, and feature-rich applications from scratch.

Learn from a Bestselling Instructor: Maximilian Schwarzmüller

I'm Maximilian Schwarzmüller, a bestselling, top-rated online course instructor with a vast variety of courses on web and mobile development. I'm excited to be your guide throughout this journey. My goal with this course is to teach you Flutter from the ground up, step-by-step and in a highly practice-oriented way!

Unlock Your Potential in Mobile App Development

This Flutter & Dart course is designed for absolute beginners with no prior programming experience, as well as for those with existing iOS, Android or other development skills. Through video lessons and hands-on projects, you'll learn the ins and outs of Flutter and Dart!

Throughout the course you'll build multiple demo apps - ranging from simple to more complex - and, by the end of the course, you'll be able to build your own iOS and Android apps with Flutter.

Why Choose Flutter?

  • Developed by Google, Flutter is a framework that allows you to learn one language (Dart) and build beautiful native mobile apps in no time

  • Write code only once and ship your apps both to the Apple App Store and Google Play

  • Use the rich widget suite Flutter provides to add common UI elements or build your own custom widgets

What You'll Learn:

  • 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 to add your own

  • Debugging tips & 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

  • And much more!

Course Highlights:

  • On-Demand, Video-Based Learning: An immersive experience with practical examples and demo apps to help you develop your skills at your own pace

  • Lifetime Access: Revisit topics and refresh your knowledge anytime

  • Regularly Updated: The course has been updated multiple times in the past to ensure it stays up-to-date with the latest industry standards

No Experience Necessary

This course is designed to be accessible to everyone, regardless of their programming background. Whether you're a complete beginner or an experienced developer looking to expand your skillset, I will guide you through each step of the process, ensuring you gain a deep understanding of the fundamentals and advanced concepts.

Prerequisites:

  • Basic programming language knowledge will help but is not required

  • No prior knowledge of Flutter or Dart is needed

  • No iOS (Swift/ObjectiveC) or Android (Java/Kotlin) development experience required

Take the First Step Towards Your Mobile App Development Career

With the skyrocketing demand for skilled mobile app developers in today's job market, there has never been a better time to jump into the world of Flutter & Dart. By the end of this course, you'll be fully equipped to design, develop, and deploy stunning iOS and Android apps, setting yourself up for a successful career in mobile app development.

Don't let this opportunity pass you by! Enroll in "Flutter & Dart - The Complete Guide" today and start building amazing apps for the iOS and Android platforms!

Bạn sẽ học được gì

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

Yêu cầu

  • 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!

Nội dung khoá học

16 sections

Introduction

12 lectures
Welcome To This Course!
01:16
What Is Flutter?
02:49
Flutter uses Dart!
01:51
One Codebase, Multiple Platforms
02:56
Flutter Setup - Overview
03:58
Windows Setup
13:26
macOS Setup
17:53
Project Creation & Setting Up a Code Editor for Flutter Development
05:10
Running a First Flutter App
09:06
Understanding Material Design
02:35
About This Course
04:43
Course Resources (Code Snapshots, Community & Slides)
00:39

Flutter & Dart Basics I - Getting a Solid Foundation [ROLL DICE APP]

39 lectures
Module Introduction
01:21
Analyzing A New Flutter Project
08:50
From Dart To Machine Code
03:05
How Programming Languages Work
05:51
Starting From Scratch: Understanding Functions
06:05
Importing Features From Packages
05:02
How Flutter Apps Start
02:26
Knowledge Check: Flutter & Dart Basics
6 questions
Understanding Widgets
02:52
Using a First Widget & Passing Values to Functions
04:37
Positional & Named Arguments
03:58
Deep Dive: Position & Named Arguments
01:55
Combining Multiple Widgets
02:50
Understanding "const" Values
03:58
Building More Complex Widget Trees
07:24
Understanding Value Types
06:54
Configuring Widgets & Understanding Objects
07:24
Working with "Configuration Objects" (Non-Widget Objects)
05:13
Generics, Lists & Adding Gradient Colors
04:13
How To Configure Widgets & Objects
03:03
Practice: Styling Text
03:27
Onwards to Custom Widgets: Why Do You Need Them?
02:37
Understanding Classes
05:01
Building Custom Widgets
09:27
Working with Constructor Functions
05:56
Splitting Code Across Files
03:18
Practice: Create a Custom Widget
03:49
Introducing Variables
05:22
Variables & Types - Combining Two Key Concepts
02:23
"final" & "const" - Special Kinds Of "Variables"
04:53
Instance Variables (Properties) & Configurable Widgets
10:03
Practice: Reusable Widgets & Constructor Functions
06:40
Displaying Images & Using Multiple Constructor Functions
06:35
Adding Buttons & Using Functions As Values
06:08
Styling Buttons & Working with Padding
06:17
How NOT To Build Interactive Widgets
03:48
Introducing Stateful Widgets
15:06
Generating Random Numbers
07:54
Module Summary
10:21

Flutter & Dart Basics II - Fundamentals Deep Dive [QUIZ APP]

40 lectures
Module Introduction
02:00
A Challenge For You!
02:21
Challenge Solution 1/2 - Creating a Widget
11:46
Challenge Solution 2/2 - Working with More Widgets
17:05
Adding Icons to Buttons
03:43
Adding Transparency to Widgets
04:22
Repetition & Exercise: Adding a Stateful Widget
10:50
Rendering Content Conditionally
07:02
Accepting & Passing Functions as Values
09:16
The "initState" Method
04:28
Deep Dive: Flutter's (Stateful) Widget Lifecycle
00:29
Using Ternary Expressions & Comparison Operators
07:05
Understanding "if" Statements
04:52
Using "if" Statements In Lists
01:02
if Statements & Comparison Operators
01:15
Adding a Data Model & Dummy Data
08:48
Configuring a Column
05:35
Creating a Reusable, Custom Styled Button
12:04
Accessing List Elements & Object Properties
05:53
Mapping Lists & Using the Spread Operator
07:45
Alignment, Margin & Padding
03:57
Mutating Values in Memory
05:46
Managing The Questions Index As State
05:49
More on Button Styling
01:20
Using Third-Party Packages & Adding Google Fonts
07:26
Passing Data via Functions Across Widgets
13:18
More Conditions
04:27
Getting Started with the Results Screen
08:02
Passing Data to the Results Screen
02:40
Introducing Maps & "for" Loops
12:00
Using "for" Loops In Lists
01:02
Note: A Typo In The Next Lecture
00:08
Accessing Map Values & Using "Type Casting"
10:52
Combining Columns & Rows
06:07
Expanded To The Rescue!
03:07
Filtering & Analyzing Lists
07:43
Making Content Scrollable with SingleChildScrollView
04:06
Time to Practice: Flutter Basics
2 questions
Beyond the Basics: Optional, Important Dart Features
08:53
Module Summary
07:32

Debugging Flutter Apps

6 lectures
Module Introduction
00:56
The Starting Project & A Problem
01:08
Understanding Error Messages
07:36
Debugging Apps & Using "Debug Mode"
14:59
Working with the Flutter DevTools
07:41
Running the App on Real iOS or Android Devices
00:53

Adding Interactivity, More Widgets & Theming [EXPENSE TRACKER APP]

37 lectures
Module Introduction
01:38
Starting Setup & Repetition Time!
07:07
Adding an Expense Data Model with a Unique ID & Exploring Initializer Lists
06:59
Introducing Enums
04:10
Creating Dummy Data
04:02
Efficiently Rendering Long Lists with ListView
10:21
Using Lists Inside Of Lists
02:27
Creating a Custom List Item with the Card & Spacer Widgets
16:47
Using Icons & Formatting Dates
07:25
Setting an AppBar with a Title & Actions
06:46
Adding a Modal Sheet & Understanding Context
07:24
Handling User (Text) Input with the TextField Widget
08:14
Getting User Input on Every Keystroke
04:53
Letting Flutter do the Work with TextEditingController
04:10
Time to Practice: Adding a New Input
01:11
Exercise Solution
03:49
Closing The Modal Manually
01:47
Showing a Date Picker
08:33
Working with "Futures" for Handling Data from the Future
07:41
Adding a Dropdown Button
10:57
Combining Conditions with AND and OR Operators
07:48
Validating User Input & Showing an Error Dialog
05:11
Saving New Expenses
05:59
Creating a Fullscreen Modal
02:02
Using the Dismissible Widget for Dismissing List Items
07:46
Showing & Managing "Snackbars"
09:13
Flutter & Material 3
00:23
Getting Started with Theming
07:43
Setting & Using a Color Scheme
06:38
Setting Text Themes
09:00
Using Theme Data in Widgets
09:02
Important: Adding Dark Mode
00:26
Adding Dark Mode
07:13
Using Another Kind of Loop (for-in)
05:03
Adding Alternative Constructor Functions & Filtering Lists
04:39
Adding Chart Widgets
10:26
Module Summary
02:45

Building Responsive & Adaptive User Interfaces [EXPENSE TRACKER APP]

10 lectures
Module Introduction
00:57
What is "Responsiveness"?
02:06
Locking the Device Orientiation
04:53
Updating the UI based on the Available Space
07:55
Understanding Size Constraints
07:09
Handling to Screen Overlays like the Soft Keyboard
05:12
Understanding "Safe Areas"
02:53
Using the LayoutBuilder Widget
12:04
Building Adaptive Widgets
07:14
Module Summary
01:26

Flutter & Dart Internals [TODO APP]

9 lectures
Module Introduction
01:09
Three Trees: Widget Tree, Element Tree & Render Tree
04:46
How The UI Is Updated
06:51
Refactor & Extract Widgets To Avoid Unnecessary Builds
06:34
Understanding Keys - Setup
04:34
Which Problem Do Keys Solve?
05:33
Understanding & Using Keys
04:12
Mutating Values in Memory & Making Sense of var, final & const
06:56
Module Summary
00:55

Building Multi-Screen Apps & Navigating Between Screens [MEALS APP]

28 lectures
Module Introduction
02:05
Project Setup
01:35
Using a GridView
07:58
Widgets vs Screens
06:12
Displaying Category Items on a Screen
08:02
Making any Widget Tappable with InkWell
03:34
Adding Meals Data
05:20
Loading Meals Data Into a Screen
06:37
Adding Cross-Screen Navigation
08:41
Passing Data to the Target Screen
04:53
Introducing the Stack Widget
17:01
Improving the MealItem Widget
11:53
Adding Navigation to the MealDetails Screen
09:58
Improving the MealDetails Screen
08:15
Adding Tab-based Navigation
16:34
Passing Functions Through Multiple Layers of Widgets (for State Management)
11:55
Managing App-wide State & Data
05:28
Adding a Side Drawer
14:08
Closing the Drawer Manually
05:35
Adding a Filter Item
07:33
Replacing Screens (Instead of Pushing)
07:58
Adding More Filter Options
02:44
Replacing WillPopScope with PopScope
00:26
Returning Data When Leaving a Screen
06:18
Reading & Using Returned Data
04:31
Applying Filters
15:50
An Alternative Navigation Pattern: Using Named Routes
00:15
Module Summary
03:04

Managing App-wide State [MEALS APP]

16 lectures
Module Introduction
01:29
What's The Problem?
02:08
Installing the Solution: Riverpod
01:20
How State Management with Riverpod Works
01:21
Creating a Provider
03:54
Using a Provider
07:17
Creating a More Complex Provider with StateNotifier
12:18
Using the FavoritesProvider
04:49
Triggering a Notifier Method
05:31
Getting Started with Another Provider
08:24
Combining Local & Provider-managed State
06:33
Outsourcing State Into The Provider
05:36
Connecting Multiple Providers With Each Other (Dependent Providers)
05:19
Swapping The "Favorite Button" Based On Provider State
02:41
Module Summary
03:11
"riverpod" vs "provider" - There are many Alternatives!
00:26

Adding Animations [MEALS APP]

9 lectures
Module Introduction
00:44
Setup & Understanding Explicit vs Implicit Animations
01:52
Explicit Animations: Adding an Animation Controller
09:35
Explicit Animations: Playing the Animation with AnimatedBuilder
08:39
Finetuning Explicit Animations
08:36
Getting Started with Implicit Animations
07:23
Configuring Implicit Animations
05:49
Adding Multi-Screen Transitions
03:53
Module Summary
02:28

Handling User Input & Working with Forms [SHOPPING LIST APP]

14 lectures
Module Introduction
01:18
Setup & A Challenge For You
02:59
Challenge Solution 1 - Building & Using Models
08:06
Challenge Solution 2 - Building the List UI
09:27
Adding a "New Item" Screen
07:44
The Form & TextFormField Widgets
06:23
A Form-aware Dropdown Button
09:16
Adding Buttons to a Form
02:22
Adding Validation Logic
08:11
Getting Form Access via a Global Key
07:19
Extracting Entered Values
09:19
Passing Data Between Screens
07:16
Final Challenge Solution
04:18
Module Summary
01:12

Connecting a Backend & Sending HTTP Requests [SHOPPING LIST APP]

16 lectures
Module Introduction
00:38
What's a Backend? And Why Would You Want One?
03:31
What Is HTTP & How Does It Work?
04:10
Setting Up a Dummy Backend (Firebase)
03:25
Adding the http Package
03:18
Sending a POST Request to the Backend
09:57
Working with the Request & Waiting for the Response
08:55
Fetching & Transforming Data
14:57
Avoiding Unnecessary Requests
04:46
Managing the Loading State
07:07
Error Response Handling
05:14
Sending DELETE Requests
06:44
Handling the "No Data" Case
03:43
Better Error Handling
05:52
Module Summary
02:20
Using the FutureBuilder Widget
18:07

Using Native Device Features (e.g., Camera) [FAVORITE PLACES APP]

34 lectures
Module Introduction
01:52
Setup & A Challenge For You!
03:43
Adding a Place Model (Challenge Solution 1/6)
02:26
Adding a "Places" Screen (Challenge Solution 2/6)
10:00
Adding an "Add Place" Screen (Challenge Solution 3/6)
09:38
Adding "riverpod" & A Provider (Challenge Solution 4/6)
06:59
Adding Places with Provider & Displaying Places (Challenge Solution 5/6)
07:34
Adding a "Place Details" Screen (Challenge Solution 6/6)
04:55
Adding a "Pick an Image" Input
07:54
Installing the "Image Picker" Package
05:04
Using the Device Camera For Taking Pictures
10:39
Adding the Picked Image to the Model & "Add Place" Form
06:10
Previewing the Picked Image
04:54
Important: "location" Package & Android
00:24
Adding the "location" Package & Starting with the "Get Location" Input Widget
08:50
Getting the User's Current Location
06:13
Using the Google Maps API - Setup
03:34
Using Google's Geocoding API
06:23
Storing the Location Data in the Model
03:35
Displaying a Location Preview Map Snapshot via Google
07:17
Using the Picked Location in the Form
03:21
Outputting the Location Data
07:46
Installing & Configuring the Google Maps Package
03:43
Adding a "Map" Screen
09:36
Displaying the Picked Place on a Dynamic Map
02:55
Handling Map Taps for Selecting a Location Manually
04:37
Using the Map Screen in the "Add Place" Form
08:24
Installing Packages for Local (On-Device) Data Storage
04:00
Storing the Picked Image Locally
04:59
Storing Place Data in a (On-Device) SQL Database
08:50
Loading Data from the SQL Database
08:09
Using a FutureBuilder for Loading Data
06:01
Module Summary
02:15
Adding Your Own Native Code
00:21

Push Notifications & More: Building a Chat App with Flutter & Firebase

32 lectures
Module Introduction
01:37
App & Firebase Setup
05:40
Adding an Authentication Screen
11:55
Adding Buttons & Modes to the Authentication Screen
06:44
Validating User Input
08:26
Firebase CLI & SDK Setup 1/2
08:03
Firebase CLI & SDK Setup 2/2
06:14
Signing Users Up
08:44
Logging Users In
06:16
Showing Different Screens Based On The Authentication State
08:51
Adding a Splash Screen (Loading Screen)
02:42
Adding User Logout
04:24
Image Upload: Setup & First Steps
04:43
Adding a User Image Picker Widget
04:03
Using the ImagePicker Package
07:37
Managing The Selected Image In The Authentication Form
05:06
Uploading Images To Firebase
06:50
Showing a Loading Spinner Whilst Uploading
03:05
Adding a Remote Database: Firestore Setup
04:43
Sending Data to Firestore
07:26
Storing a Username
04:46
Adding ChatMessages & Input Widgets
10:13
A Note About Reading Data From Firestore
00:13
Sending & Reading Data To & From Firestore
10:56
Loading & Displaying Chat Messages as a Stream
08:16
Styling Chat Message Bubbles
12:00
Push Notifications - Setup & First Steps
09:19
Requesting Permissions & Getting an Address Token
06:16
Testing Push Notifications
05:26
Working with Notification Topics
02:42
Sending Push Notifications Automatically via Cloud Functions
11:47
Module Summary
01:10

About The Course Update

2 lectures
About the Course Update & How To Proceed
06:11
Old Course Content
00:23

Next Steps & Roundup

3 lectures
Publishing iOS & Android Apps
00:22
Course Roundup
00:57
Bonus Lecture
00:20

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.