The Ultimate Dart & Flutter Course 2023
Published 8/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 25.12 GB | Duration: 41h 9m
Published 8/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 25.12 GB | Duration: 41h 9m
A Complete Guide / Tutorial to the Flutter & Dart SDK for building native Android, iOS, Web & Desktop Applications!
What you'll learn
Learn Flutter and Dart from scratch, gaining a step-by-step understanding of all fundamental concepts.
Build Responsive & Adaptive Cross-Platform iOS, Android, Web and Desktop apps with a single codebase.
Learn to create responsive Flutter applications that adapt seamlessly to different screen sizes and orientations.
Build fully functional & visually appealing Flutter applications, covering both front-end UI design and back-end integration with Firebase.
Create a Currency Converter, Weather Forecast, Shop App, Google Search Clone, Voice Assistant App powered by ChatGPT & Dall-E API and Full Stack Reddit Clone.
Gain insights into Flutter's rendering, state management and "behind the scenes stuff" that will allow you to optimize app performance.
Requirements
You can use any system to follow along but keep in mind - iOS apps can only be built on macOS.
10GB of free space on your hard drive.
No programming experience required.
No iOS or Android Background required.
Description
This comprehensive course is designed to take you from a complete novice to a confident Flutter developer, capable of building full-stack apps using clean code techniques.I believe in laying strong foundations for learning. That's why I start by teaching you Dart, Flutter's programming language, independently, without using Flutter at all. By mastering Dart first, you'll gain a solid understanding of its syntax, concepts, and principles, setting you up for success throughout the rest of the course.Once you've mastered Dart, we dive headfirst into the world of Flutter. Throughout the course, we'll cover various aspects of Flutter, such as widgets, layouts, responsive layouts, state management using both - Provider and Riverpod and much more. Navigation is a crucial aspect of any app. I leave no stone unturned to explore Navigator 1.0 and Navigator 2.0, helping you understand the best practices for smooth navigation within your apps. Flutter is an incredibly powerful framework, and I want you to harness its full potential. That's why I also provide you with a brief overview of the inner workings of Flutter, including how it handles rendering, state management, and other "behind-the-scenes" magic. This knowledge will set you apart as a truly proficient Flutter developer.Learning by doing is the best way to master any skill. Thus, in this course you'll build several exciting app projects like Currency Converter, Realtime Weather Forecast, Shopping App, Responsive Google Search Clone, Voice Assistant App powered by ChatGPT and Dall-E and a Full Stack Reddit Clone using Firebase backend (Know more about each of the apps we build in the free video previews)!The approach to teaching goes beyond just giving you ready-made solutions. I firmly believe in empowering you to learn by teaching you various aspects of Flutter, such as Animations and Automated Testing, independently of each other. This will enable you to understand the underlying principles and apply your knowledge creatively in various scenarios, not just in building the apps we build.I understand that learning a new language and a new framework like Flutter can be challenging, even for experienced developers. But don't worry about it! This is a zero-to-hero Flutter course, meaning we start from scratch and take you on an incredible journey to become a confident Flutter developer. You'll go from knowing nothing about Dart, Flutter (or even programming) to becoming proficient in developing clean, efficient and powerful apps. So, if you're read to empower yourself with valuable skills that will open doors to countless opportunities in the world of app development, enrol now and let's begin this thrilling adventure together!
Overview
Section 1: Introduction
Lecture 1 Introduction
Section 2: Introduction To Dart
Lecture 2 Introduction
Lecture 3 What is Dart?
Lecture 4 Dart SDK
Section 3: Operators, Comments & Variables
Lecture 5 Print Statement
Lecture 6 Operators
Lecture 7 Comments
Lecture 8 Variables
Lecture 9 var, const and final Variables
Lecture 10 final vs const variables
Lecture 11 Optional/ Nullable Variables
Section 4: Control Flow
Lecture 12 If Condition
Lecture 13 Ternary Conditions
Lecture 14 Switch Statement
Lecture 15 Exercise 1
Lecture 16 For Loop
Lecture 17 While Loop
Lecture 18 Do While Loop
Lecture 19 continue keyword
Lecture 20 Exercise 2
Lecture 21 break keyword
Section 5: Functions
Lecture 22 Functions
Lecture 23 Returning 2 Values from a Function (Records)
Lecture 24 Patterns
Lecture 25 Returning Nullable Variables/Values
Lecture 26 Function Positional Arguments & Global Variables
Lecture 27 Function Named Arguments
Lecture 28 Named Records
Lecture 29 Returning Functions from Functions
Lecture 30 Arrow Function
Lecture 31 Anonymous Functions
Section 6: Classes
Lecture 32 Classes
Lecture 33 Constructor
Lecture 34 this keyword
Lecture 35 Positional Constructor Arguments
Lecture 36 Immutable Classes
Lecture 37 Named Constructor Arguments
Lecture 38 Classes Terminology
Lecture 39 Private Variables
Lecture 40 Getters
Lecture 41 Setters
Lecture 42 Static Variables
Lecture 43 Static Functions
Lecture 44 When to use static keyword?
Section 7: Object Oriented Programming (OOP)
Lecture 45 Inheritance
Lecture 46 implements keyword
Lecture 47 Abstract Classes
Lecture 48 Object Oriented Programming (OOP) in Dart
Lecture 49 Polymorphism
Lecture 50 Abstraction
Lecture 51 Encapsulation
Lecture 52 OOP Brief
Lecture 53 Mixins
Lecture 54 Class Modifiers
Section 8: Lists, Maps & Enums
Lecture 55 Lists
Lecture 56 Sets
Lecture 57 Maps
Lecture 58 Enums
Lecture 59 Enhanced Enums
Section 9: Asynchronous Programming
Lecture 60 Exception Handling
Lecture 61 Futures (Promises)
Lecture 62 Streams
Section 10: More on Records, Patterns & Extensions
Lecture 63 Creating Records
Lecture 64 Patterns & Pattern Matching
Lecture 65 Extensions
Section 11: Flutter Installation
Lecture 66 Introduction
Lecture 67 Installing Flutter
Lecture 68 Installing Android Studio & Configuring for Android
Lecture 69 Installing Xcode & Configuring for iOS
Lecture 70 Installing VS Code
Lecture 71 Exploring VS Code
Lecture 72 Creating Flutter Project
Lecture 73 Exploring Folders Flutter Creates
Lecture 74 Increasing Font Size in VS Code
Lecture 75 Highlighting Code in VS Code
Lecture 76 Running Flutter App
Section 12: Flutter Basics
Lecture 77 Writing First Flutter Code!
Lecture 78 Importing Packages and material.dart
Lecture 79 runApp function in Flutter
Lecture 80 What are Widgets?
Lecture 81 Text Widget
Lecture 82 Types of Widgets
Lecture 83 What is State in Flutter
Lecture 84 What is Stateless Widget in Flutter?
Lecture 85 Material & Cupertino Design
Lecture 86 What is MaterialApp in Flutter?
Lecture 87 What is Scaffold in Flutter?
Lecture 88 Center Widget
Lecture 89 Widget Tree
Lecture 90 Splitting & Extracting Widgets
Lecture 91 What is BuildContext?
Lecture 92 Importing Files & Magic of Flutter Extension
Lecture 93 Relative Importing
Section 13: Currency Converter App
Lecture 94 Breaking Down The Currency Converter App
Lecture 95 Column Widget
Lecture 96 ColoredBox Widget
Lecture 97 Color Class
Lecture 98 TextStyle
Lecture 99 Colors
Lecture 100 TextField Widget
Lecture 101 Why Build Function Should Contain NO Complex Tasks
Lecture 102 Changing Keyboard Type For TextField Input
Lecture 103 Padding Widget
Lecture 104 Container Widget
Lecture 105 Padding vs Margin - The Difference
Lecture 106 TextButton Widget
Lecture 107 Print Statement & Warnings (Flutter Lints)
Lecture 108 TextButton Widget contd.
Lecture 109 ElevatedButton Widget
Lecture 110 Shortening the ButtonStyle!
Lecture 111 AppBar Widget
Lecture 112 Understanding the need For StatefulWidget
Lecture 113 StatefulWidget
Lecture 114 Build Function Can Be Called How Many Times?
Lecture 115 setState
Lecture 116 Handling Edge Cases
Lecture 117 CupertinoApp & iOS Styled Widgets
Lecture 118 initState and dispose
Lecture 119 Recap & Widgets LifeCycle
Section 14: Weather App
Lecture 120 Weather App Demo
Lecture 121 Analysing the default Flutter Code
Lecture 122 Weather App Setup
Lecture 123 GestureDetector and InkWell Widget
Lecture 124 IconButton Widget
Lecture 125 Planning the Body of Weather App using PlaceHolder Widget
Lecture 126 Card Widget
Lecture 127 ClipRRect Widget
Lecture 128 Backdrop and ImageFilter Widget
Lecture 129 Text For Weather App
Lecture 130 Row Widget
Lecture 131 SingleChildScrollView Widget
Lecture 132 Working on Additional Info Section
Lecture 133 Passing Arguments Using Constructor
Lecture 134 http plugin in Flutter
Lecture 135 OpenMapWeather API
Lecture 136 Handling Future in initState
Lecture 137 Extracting Data from API in Flutter
Lecture 138 Displaying Loading Indicator
Lecture 139 FutureBuilder Widget
Lecture 140 Extracting Data From AsyncSnapshot
Lecture 141 for loop in Flutter UI
Lecture 142 ListView.builder Widget
Lecture 143 Date Formatting using intl
Lecture 144 Switching Themes
Lecture 145 Layout Principle In Flutter Explained
Lecture 146 Flutter Behind The Scenes, 3 Trees & BuildContext
Section 15: Shopping App
Lecture 147 Shopping App Demo
Lecture 148 Creating Shop App Project
Lecture 149 Adding Custom Fonts
Lecture 150 Theming, Color Scheme
Lecture 151 Creating a Header (SafeArea Widget)
Lecture 152 Expanded Widget in Column (For TextField Widget)
Lecture 153 Chip Widget
Lecture 154 How Theming Works Behind the Scenes (InheritedWidget)
Lecture 155 Selecting Filter contd…
Lecture 156 Adding Images and Product Dummy Data
Lecture 157 Displaying Products List on Home Page (Image Widget)
Lecture 158 Designing Product Details Page (Spacer and Flex Widget)
Lecture 159 Navigation & Routing
Lecture 160 How Navigator Works Behind The Scenes? (And State Management)
Lecture 161 BottomNavigationBar Widget
Lecture 162 IndexedStack Widget
Lecture 163 Designing Cart Page (ListTile Widget)
Lecture 164 State Management with Provider, SnackBar
Lecture 165 State Management Note
Lecture 166 Why I Don't Recommend Using GetX?
Lecture 167 Dialogs in Flutter
Lecture 168 Provider Extension Methods on BuildContext
Lecture 169 Provider State Management Recap
Lecture 170 Responsive UI in Flutter (GridView, MediaQuery)
Lecture 171 InheritedWidget vs InheritedModel
Lecture 172 Responsive UI in Flutter (LayoutBuilder Widget)
Lecture 173 MediaQuery vs LayoutBuilder
Lecture 174 Challenge: Make Weather App Responsive
Lecture 175 Flutter Widgets Sizing Summary
Section 16: Google Search Clone with API Integration
Lecture 176 Demo
Lecture 177 Important Note
Lecture 178 Creating & Setting Up Flutter Project
Lecture 179 Creating Responsive Layout
Lecture 180 Main Screen AppBar
Lecture 181 Main Screen Body
Lecture 182 Main Screen Footer
Lecture 183 Making the Main Screen Responsive
Lecture 184 Search Results UI
Lecture 185 Getting API & Context Key
Lecture 186 Building Search Results UI
Lecture 187 Adding Pagination
Lecture 188 Responsive Search Results UI
Lecture 189 Changing Title Of Website
Lecture 190 Making Some Minor Changes
Section 17: Beautiful Login UI
Lecture 191 Introduction
Lecture 192 Project Setup
Lecture 193 Adding Text & Image
Lecture 194 Outlined Buttons
Lecture 195 TextFields
Lecture 196 Gradient Buttons
Lecture 197 Conclusion
Section 18: Voice Assistant App Powered By ChatGPT & Dall-E
Lecture 198 Introduction & Demo
Lecture 199 Setting up Flutter Project
Lecture 200 Virtual Voice Assistant UI
Lecture 201 Flutter Speech To Text
Lecture 202 UPDATE in OpenAI API Billing
Lecture 203 OpenAI API
Lecture 204 ChatGPT API Integration
Lecture 205 AI Image Generation using Dall-E API
Lecture 206 Flutter Text to Speech / Flutter TTS
Lecture 207 Toggling Widgets’ Visibility
Lecture 208 Adding Animations
Lecture 209 Conclusion
Section 19: State Management with Riverpod & Code Generation
Lecture 210 Introduction
Lecture 211 Why should we use Riverpod?
Lecture 212 Getting Started with Riverpod
Lecture 213 ProviderScope
Lecture 214 Provider
Lecture 215 Reading Providers using ConsumerWidget
Lecture 216 Reading Providers using Consumer
Lecture 217 ConsumerWidget vs Consumer
Lecture 218 ref.watch vs ref.read
Lecture 219 StatefulConsumerWidget
Lecture 220 StateProvider
Lecture 221 StateNotifier & StateNotifierProvider
Lecture 222 Select Property
Lecture 223 ChangeNotifier & ChangeNotifierProvider
Lecture 224 FutureProvider
Lecture 225 AsyncValue
Lecture 226 ProviderRef
Lecture 227 StreamProvider
Lecture 228 Modifiers
Lecture 229 .family
Lecture 230 .autoDispose
Lecture 231 Recap of all Providers
Lecture 232 Ref
Lecture 233 Useful Methods on ProviderRef
Lecture 234 ProviderObserver
Lecture 235 Limitations of Riverpod
Lecture 236 Flutter Riverpod Snippets (VS Code Extension)
Lecture 237 Riverpod Generator + Annotation
Lecture 238 Limitations of Riverpod Generator (till now)
Lecture 239 New in Riverpod!
Lecture 240 Create Custom Code Generator in Flutter
Section 20: Full Stack Reddit Clone
Lecture 241 Introduction
Lecture 242 Project Setup
Lecture 243 Folder Structure Explanation
Lecture 244 Login Screen UI
Lecture 245 What is Firebase?
Lecture 246 Firebase Setup
Lecture 247 Google Sign In Firebase Authentication
Lecture 248 Storing Data to Firebase
Lecture 249 Efficient Exception Handling Technique
Lecture 250 Storing Data to Provider
Lecture 251 Route Management
Lecture 252 Firebase State Persistence
Lecture 253 Home Screen AppBar UI
Lecture 254 Community List Flutter Drawer
Lecture 255 Create Community Screen UI
Lecture 256 Creating Communities and Storing to Firebase
Lecture 257 Displaying User Communities
Lecture 258 Community Profile UI
Lecture 259 Mod Tools UI
Lecture 260 Edit Community Screen UI
Lecture 261 Editing Community
Lecture 262 Searching Communities
Lecture 263 Logging User Out
Lecture 264 User Profile Drawer UI
Lecture 265 Joining & Leaving Communities
Lecture 266 Adding Moderators
Lecture 267 User Profile UI
Lecture 268 Edit User Profile
Lecture 269 Toggling Theme
Lecture 270 Bottom Nav Bar
Lecture 271 Add Post Screen UI
Lecture 272 Sharing Link, Image & Text Only Posts
Lecture 273 Fetching Feed Posts
Lecture 274 Deleting Posts
Lecture 275 Upvoting/Downvoting Posts
Lecture 276 Moderator Option on Posts
Lecture 277 Displaying Posts on User Profile
Lecture 278 Comments on Posts
Lecture 279 Updating User Karma Based on Activities
Lecture 280 Awarding the Post/User
Lecture 281 Firebase Login as Guest
Lecture 282 Restricting Guest Features
Lecture 283 Running on Web - Flutter Responsive UI
Lecture 284 Note About GoRouter in Flutter
Lecture 285 [OPTIONAL] GoRouter - Navigator 2.0
Lecture 286 Conclusion
Section 21: Animations
Lecture 287 Coming Soon!
Section 22: Flutter Automated Testing
Lecture 288 Introduction To Testing
Lecture 289 Unit Test Basics & Writing Testable Code: Counter App
Lecture 290 Unit Test Mocking & Stubbing: API App
Lecture 291 Widget Test: Counter App
Lecture 292 Widget Test: API App
Lecture 293 Widget Test: Animations App
Lecture 294 Integration Test
Lecture 295 Testing Firebase Apps
Section 23: [EXTRA] Image Editing App without Plugins!
Lecture 296 Demo
Lecture 297 Setting Up The Project
Lecture 298 Picking Image from Gallery
Lecture 299 Adding New Text UI
Lecture 300 Adding New Text Logic
Lecture 301 Creating an AppBar
Lecture 302 Selecting Text
Lecture 303 Changing Text Colour
Lecture 304 Increasing Font Size
Lecture 305 Decreasing Font Size
Lecture 306 Aligning Texts
Lecture 307 Bolding Texts
Lecture 308 Italic Text
Lecture 309 Adding Lines for Text
Lecture 310 Deleting Text
Lecture 311 Saving Image to Gallery
Lecture 312 Conclusion
This course is intended for aspiring mobile app developers and programming enthusiasts seeking to create powerful applications using Flutter and Dart.,Whether you are a complete beginner or an experienced developer, you will gain the skills needed to build visually stunning cross-platform apps.