Flutter is explosively taking over the cross-platform front-end market. Although it's only 2.5 years since the first stable release, it has surpassed any other competing framework on Google Trends . But this is the least that Flutter has to show for itself...
Flutter Developer Bootcamp
Don't Miss The Opportunity Called "Flutter"
Flutter is explosively taking over the cross-platform front-end market. Although it's only 2.5 years since the first stable release, it has surpassed any other competing framework on Google Trends . But this is the least that Flutter has to show for itself...
Companies all around the world are heavily investing into Flutter. And it's not only new projects that are hopping on board - apps which are already released and with millions of users are being migrated to Flutter as we speak!
Think about it - you already have an app released which is built in native Android & iOS or React Native. You've invested millions of dollars into that app's code, users are reasonably happy and the app generates millions in revenue... Now, despite this huge previous investment, you still decide Flutter is the way to go forward. Crazy right?
Yes, Flutter is so crazily good that companies are willing to invest a lot of money to have their flagship apps rebuilt in it. That's the story of Google Ads and Google Pay - two of Google's biggest moneymakers. Brand new apps which Google sets out to build are also written in Dart & Flutter. One them is the client app for Stadia - the cloud gaming service.
Sure, Google is the company which stands behind Flutter, so it's not really that surprising to see it used so extensively over there. Still, the migration or new development of mission-critical apps is not something to be overlooked. Google simply believes that Flutter is the future and they don't fear to invest millions, if not billions of dollars in it.
However, Flutter is spreading like a wildfire outside of its parent company too! Even banks (which have a very strict criteria when choosing technologies) have chosen Flutter. The Polish branch of the ING bank has fully switched their Android/iOS native app to Flutter and Nubank, the largest digital bank outside Asia, now develops all new features in Flutter.
Entire teams are transitioning to building apps with the Flutter framework and companies all around the world are actively hiring Flutter developers.
Big players like eBay, Philips, Alibaba, BMW, Toyota, Square, and many others are using Flutter to bring their projects to life for millions of users. Of course, such massive adoption means there are more and more Flutter jobs each day, and this trend is not slowing down anytime soon.
Smaller companies are also finding out about the benefits of this framework, which opens up even more opportunities for you as a developer. From my personal experience, even non-technical business owners are getting increasingly more interested in Flutter and what it has to offer for their growth.
There are entire software development studios adopting Flutter as their main UI technology. One of the leading software studios building apps for clients all around the world in Flutter is LeanCode. They've successfully built apps for industries ranging from energy to food products. As if that weren't enough, this is also the company behind the world's largest community-driven Flutter conference in the world to date, Flutter Europe.
Be a Developer in the Fastest Growing UI Framework!
- The average Flutter developer salary in San Francisco is $148,315 USD per year!
- Google, Microsoft, Toyota, Alibaba, eBay and many more are heavily investing into Flutter.
- I personally scored a contract with a billion-dollar company, charging $150 USD per hour.
- Flutter is the fastest growing cross-platform framework supporting mobile, web and desktop from a single codebase.
About the Author: Reso Coder
Reso Coder (resocoder.com) is a paid course platform focused on Flutter development at the level of production cross-platform mobile applications — particularly Test-Driven Development and Clean Architecture applied to Flutter.
The CourseFlix listing carries the Flutter Developer Bootcamp — a comprehensive Flutter curriculum covering the Dart language, the Flutter framework, state management patterns (Riverpod, Bloc), the testing tracks, and the architecture patterns for building maintainable Flutter applications.
Material is paid and aimed at developers building production Flutter applications. For broader content, see CourseFlix's Dart and Flutter category page.
Watch Online 203 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Windows Flutter Install Demo | 07:59 | |
| 2 | Windows Android Setup | 05:07 | |
| 3 | MacOS Flutter Install | 06:40 | |
| 4 | MacOS iOS Android Setup | 08:53 | |
| 5 | Turning VS Code Into a Flutter IDE | 13:58 | |
| 6 | (Optional) Configuring VS Code to Look Exactly Like Mine | 03:03 | |
| 7 | Flutter-Specific VS Code Settings | 02:04 | |
| 8 | Dart Module Introduction | 06:08 | |
| 9 | Variables and Primitive Types | 14:15 | |
| 10 | Non-Nullability | 06:54 | |
| 11 | Operators | 10:12 | |
| 12 | Control Flow - If and Switch | 06:07 | |
| 13 | Control Flow - Loops | 05:22 | |
| 14 | Functions - Basics | 05:17 | |
| 15 | Functions - Parameters | 10:31 | |
| 16 | Functions - Higher Order | 12:51 | |
| 17 | Collections - Basics | 09:14 | |
| 18 | Collections - Transformations | 07:51 | |
| 19 | Collections - If, For, Spread | 05:02 | |
| 20 | Enums | 06:11 | |
| 21 | The Pub Package System | 06:53 | |
| 22 | Linting | 03:21 | |
| 23 | Classes - Basics | 16:31 | |
| 24 | Classes - Static Members | 02:24 | |
| 25 | Classes - Private Members | 06:23 | |
| 26 | Classes - Properties | 11:24 | |
| 27 | Classes - Equality | 06:56 | |
| 28 | Inheritance - Extending a Class | 15:38 | |
| 29 | Factory Constructors | 03:57 | |
| 30 | Inheritance - Abstract Classes | 04:19 | |
| 31 | Inheritance - Interfaces | 06:05 | |
| 32 | Generics | 03:13 | |
| 33 | Mixins | 05:48 | |
| 34 | Extensions | 04:52 | |
| 35 | More About Files and Packages | 03:16 | |
| 36 | Immutable Data Classes - Basics | 09:53 | |
| 37 | Freezed Data Classes | 11:55 | |
| 38 | Freezed Unions | 16:18 | |
| 39 | Error Handling | 06:32 | |
| 40 | Asynchrony - Futures | 12:09 | |
| 41 | Asynchrony - Stream Basics | 05:25 | |
| 42 | Asynchrony - Stream Generators and Operators | 06:21 | |
| 43 | Module Introduction | 05:30 | |
| 44 | Flutter 101 | 23:18 | |
| 45 | Reorganizing The Default App | 06:02 | |
| 46 | RangeSelectorPage Outline | 04:16 | |
| 47 | Creating the Input Form UI | 06:16 | |
| 48 | Removing Widget Code Duplication | 02:19 | |
| 49 | Minimum and Maximum Range Fields | 07:13 | |
| 50 | Field Validators | 02:51 | |
| 51 | Validating and Saving the Form | 06:25 | |
| 52 | Extracting the Form Into a Separate Widget | 11:14 | |
| 53 | Navigating to the Randomizer Page | 09:38 | |
| 54 | Implementing the Randomizer Page | 13:20 | |
| 55 | Reimplementing With Flutter Hooks | 14:22 | |
| 56 | Creating a ChangeNotifier | 10:10 | |
| 57 | Providing the ChangeNotifier Around the App Using Provider | 15:36 | |
| 58 | Adding a Riverpod Dependency | 05:29 | |
| 59 | Using ChangeNotifier With Riverpod | 16:25 | |
| 60 | Managing State Immutably With StateNotifier | 20:12 | |
| 61 | Repo Viewer Module Introduction | 14:16 | |
| 62 | Setting Up the Project | 08:22 | |
| 63 | Creating an OAuth App and a Personal Access Token | 06:39 | |
| 64 | Making a Test Authorized Request | 05:25 | |
| 65 | Overview of the OAuth2 Authorization Code Flow | 05:31 | |
| 66 | Architectural Overview | 18:47 | |
| 67 | Adding Dependencies | 13:16 | |
| 68 | Setting Up Analysis Options | 04:21 | |
| 69 | Auth Failure | 07:20 | |
| 70 | Starting With the Auth Infrastructure Layer | 07:18 | |
| 71 | Secure Credentials Storage | 15:00 | |
| 72 | Getting Signed-In Credentials | 08:49 | |
| 73 | IDs, Scopes and Endpoints | 11:19 | |
| 74 | Creating the AuthorizationCodeGrant | 06:22 | |
| 75 | Handling the Authorization Response | 09:51 | |
| 76 | Changing the Access Token Response Format To JSON | 09:27 | |
| 77 | Signing Out and Token Revocation | 24:05 | |
| 78 | Handling the Offline Sign Out Behavior | 08:50 | |
| 79 | DioError Extension | 05:54 | |
| 80 | Refresh Credentials Method | 10:08 | |
| 81 | Starting With the Auth Application Layer | 08:58 | |
| 82 | Writing the First AuthNotifier Method | 06:42 | |
| 83 | Creating an AuthUriCallback | 14:50 | |
| 84 | Orchestrating the Sign In Process | 06:15 | |
| 85 | Sign Out and Auth Application Layer Conclusion | 03:54 | |
| 86 | Auth Providers | 12:10 | |
| 87 | Setting Up Presentation Layer Pages | 05:38 | |
| 88 | Creating an AppWidget | 06:33 | |
| 89 | Setting Up AutoRoute | 12:28 | |
| 90 | Creating a Splash Page | 09:54 | |
| 91 | Initialization Provider | 07:43 | |
| 92 | Navigating Based On the AuthState | 10:40 | |
| 93 | Building the Sign-In Page UI | 12:16 | |
| 94 | Paving the Way for the Auth WebView | 08:02 | |
| 95 | Auth Callback Functions | 09:42 | |
| 96 | Creating a WebView | 07:17 | |
| 97 | Intercepting Redirection Attempts & Finishing the WebView | 10:50 | |
| 98 | Android-Specific WebView Setup | 05:58 | |
| 99 | Researching the GitHub API Endpoints | 29:57 | |
| 100 | Similarities Between Starred And Search Endpoints | 06:48 | |
| 101 | Creating the GitHub Feature Folder Structure | 08:11 | |
| 102 | GitHub Domain Entities | 13:35 | |
| 103 | GitHub Failure | 02:19 | |
| 104 | Starting With the Data Transfer Objects | 06:40 | |
| 105 | Using Json Serializable | 10:41 | |
| 106 | Converting Between DTOs and Entities | 03:44 | |
| 107 | GithubRepoDTO | 09:51 | |
| 108 | Converting the GithubRepoDTO Between Layers | 03:31 | |
| 109 | Explanation of ETags and General Caching | 06:24 | |
| 110 | First Draft of the StarredReposRemoteService Interface | 03:25 | |
| 111 | Creating a RemoteResponse Union | 06:11 | |
| 112 | Setting Up a SembastDatabase Class | 20:44 | |
| 113 | Registering a Sembast Provider | 03:33 | |
| 114 | Implementing the First Version of the GithubHeaders Data Class | 09:49 | |
| 115 | Parsing the Link Header for Pagination Purposes | 28:22 | |
| 116 | Caching the GitHub Headers | 15:51 | |
| 117 | Getting Starred Repos Page - Starting With the Implementation | 22:16 | |
| 118 | Getting Starred Response Page - Handling All RemoteResponse Cases | 12:03 | |
| 119 | Passing the Max Page Number in the RemoteResponse | 15:55 | |
| 120 | Indicating Freshness of the Data | 13:42 | |
| 121 | StarredReposRepository Implementation Part 1 - Using Only Remote Service | 12:25 | |
| 122 | StarredReposLocalService - Upserting a Page | 15:31 | |
| 123 | StarredReposLocalService - Reading a Page | 15:04 | |
| 124 | StarredReposRepository Implementation Part 2 - Local Service | 07:12 | |
| 125 | OAuth2Interceptor Part 1 | 18:46 | |
| 126 | OAuth2Interceptor Part 2 | 12:44 | |
| 127 | Providing the OAuth2Interceptor | 13:54 | |
| 128 | Creating a StarredReposState | 21:47 | |
| 129 | StarredReposNotifier - First Setup | 06:25 | |
| 130 | Finishing the StarredReposNotifier | 13:18 | |
| 131 | Providers for the Starred Repos Feature | 09:15 | |
| 132 | Initial Creation of the PaginatedReposListView | 14:33 | |
| 133 | Configuring the PaginatedReposListView | 13:37 | |
| 134 | Repo Tile Initial Creation and Fighting Fires | 14:25 | |
| 135 | Repo Tile Part 1 | 09:04 | |
| 136 | Fixing Dio's Wrong 304 Status Code Categorization | 05:39 | |
| 137 | Repo Tile Part 2 | 09:03 | |
| 138 | Loading Repo Tile - Shimmer Effect | 11:19 | |
| 139 | Loading Repo Tile - Layout | 20:41 | |
| 140 | Failure Repo Tile | 25:24 | |
| 141 | Adding Pagination Part 1 | 08:53 | |
| 142 | Adding Pagination Part 2 | 14:49 | |
| 143 | No Connection Toast | 14:36 | |
| 144 | No Results Display | 11:17 | |
| 145 | Using the Local Page Count In the No Connection State | 08:42 | |
| 146 | Searched Repos Feature Overview | 11:13 | |
| 147 | Removing Duplication - Repos Remote Service | 13:06 | |
| 148 | Creating Searched Repos Repository | 10:49 | |
| 149 | Removing Duplication - Paginated Repos Notifier | 12:24 | |
| 150 | Searched Repos Providers and Start of Dependency Generalization | 08:53 | |
| 151 | Finishing the Dependency Generalization | 12:33 | |
| 152 | Creating the Searched Repos Page | 10:08 | |
| 153 | Fixing the Old Data Issue With AutoDispose Provider | 05:41 | |
| 154 | Explanation of the Search Feature | 07:42 | |
| 155 | Watching Search Terms | 13:00 | |
| 156 | Adding Search Terms and Sorting | 07:27 | |
| 157 | Deleting and Putting Search Terms First | 16:36 | |
| 158 | Search History Application Layer | 12:00 | |
| 159 | Creating a SearchBar Widget and Search Feature Providers | 13:25 | |
| 160 | Adding Parameters to the Search Bar | 10:38 | |
| 161 | Building the Search Bar UI Part 1 | 11:52 | |
| 162 | Fixing the Failure Repo Tile | 03:47 | |
| 163 | Building the Search Bar UI Part 2 | 10:44 | |
| 164 | Search Bar Actions | 07:09 | |
| 165 | Minimum Viable Search Bar UI | 12:22 | |
| 166 | The onSubmitted Search Bar Callback | 09:00 | |
| 167 | Search Bar Dropdown Background | 09:39 | |
| 168 | Finishing Up the Search Bar | 25:16 | |
| 169 | Adding Search Bar to the Searched Repos Page | 17:14 | |
| 170 | Platform-Adaptive Search Bar Back Button | 09:28 | |
| 171 | Overview of the Repo Detail Feature | 17:49 | |
| 172 | Creating Repo Detail Entity and DTO | 14:04 | |
| 173 | Getting the Readme HTML | 08:13 | |
| 174 | Getting the Starred Status of a Repo | 08:40 | |
| 175 | Switching the Starred Status of a Repo | 10:21 | |
| 176 | Local Repo Detail Service Part 1 | 22:10 | |
| 177 | Local Repo Detail Service Part 2 - Last Used Timestamp | 16:37 | |
| 178 | Local Repo Detail Service Part 3 - Finishing Up the Caching Strategy | 09:25 | |
| 179 | Deleting the Repo Detail Headers | 04:21 | |
| 180 | Repo Detail Repository Part 1 | 08:27 | |
| 181 | Repo Detail Repository Part 2 | 16:16 | |
| 182 | Repo Detail State and Notifier | 13:31 | |
| 183 | Optimistic Updates in the Repo Detail Notifier | 17:33 | |
| 184 | Preparing the Repo Detail Page | 18:56 | |
| 185 | Changing the App Bar Color | 05:13 | |
| 186 | Providers for the Repo Detail Subfeature | 04:47 | |
| 187 | Repo Detail Page Part 1 | 31:07 | |
| 188 | Repo Detail Page Part 2 | 18:35 | |
| 189 | Opening Links in an External Browser | 06:32 | |
| 190 | Module Recap | 05:19 | |
| 191 | Initial Setup | 12:55 | |
| 192 | Writing Strings and Using Them Within the App | 15:30 | |
| 193 | Supporting Plural Strings | 08:24 | |
| 194 | Adding Another Language | 09:52 | |
| 195 | Module Introduction and Setup | 09:35 | |
| 196 | The Need for Method Channels | 08:21 | |
| 197 | Exploring the Native Code and Writing Dart Code | 13:34 | |
| 198 | Enabling Code Completion for Writing Kotlin | 13:04 | |
| 199 | Creating an Android Notification Channel | 19:29 | |
| 200 | Showing a Notification on Android | 12:24 | |
| 201 | Using the Plugin From a Flutter App and Showcasing on Android | 07:08 | |
| 202 | Opening the iOS Plugin Project in XCode | 07:00 | |
| 203 | Showing a Notification on iOS | 22:51 |
Get instant access to all 202 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionCourse content
203 lessons · 35h 46m 42sShow all 203 lessons
- 1 Windows Flutter Install 07:59
- 2 Windows Android Setup 05:07
- 3 MacOS Flutter Install 06:40
- 4 MacOS iOS Android Setup 08:53
- 5 Turning VS Code Into a Flutter IDE 13:58
- 6 (Optional) Configuring VS Code to Look Exactly Like Mine 03:03
- 7 Flutter-Specific VS Code Settings 02:04
- 8 Dart Module Introduction 06:08
- 9 Variables and Primitive Types 14:15
- 10 Non-Nullability 06:54
- 11 Operators 10:12
- 12 Control Flow - If and Switch 06:07
- 13 Control Flow - Loops 05:22
- 14 Functions - Basics 05:17
- 15 Functions - Parameters 10:31
- 16 Functions - Higher Order 12:51
- 17 Collections - Basics 09:14
- 18 Collections - Transformations 07:51
- 19 Collections - If, For, Spread 05:02
- 20 Enums 06:11
- 21 The Pub Package System 06:53
- 22 Linting 03:21
- 23 Classes - Basics 16:31
- 24 Classes - Static Members 02:24
- 25 Classes - Private Members 06:23
- 26 Classes - Properties 11:24
- 27 Classes - Equality 06:56
- 28 Inheritance - Extending a Class 15:38
- 29 Factory Constructors 03:57
- 30 Inheritance - Abstract Classes 04:19
- 31 Inheritance - Interfaces 06:05
- 32 Generics 03:13
- 33 Mixins 05:48
- 34 Extensions 04:52
- 35 More About Files and Packages 03:16
- 36 Immutable Data Classes - Basics 09:53
- 37 Freezed Data Classes 11:55
- 38 Freezed Unions 16:18
- 39 Error Handling 06:32
- 40 Asynchrony - Futures 12:09
- 41 Asynchrony - Stream Basics 05:25
- 42 Asynchrony - Stream Generators and Operators 06:21
- 43 Module Introduction 05:30
- 44 Flutter 101 23:18
- 45 Reorganizing The Default App 06:02
- 46 RangeSelectorPage Outline 04:16
- 47 Creating the Input Form UI 06:16
- 48 Removing Widget Code Duplication 02:19
- 49 Minimum and Maximum Range Fields 07:13
- 50 Field Validators 02:51
- 51 Validating and Saving the Form 06:25
- 52 Extracting the Form Into a Separate Widget 11:14
- 53 Navigating to the Randomizer Page 09:38
- 54 Implementing the Randomizer Page 13:20
- 55 Reimplementing With Flutter Hooks 14:22
- 56 Creating a ChangeNotifier 10:10
- 57 Providing the ChangeNotifier Around the App Using Provider 15:36
- 58 Adding a Riverpod Dependency 05:29
- 59 Using ChangeNotifier With Riverpod 16:25
- 60 Managing State Immutably With StateNotifier 20:12
- 61 Repo Viewer Module Introduction 14:16
- 62 Setting Up the Project 08:22
- 63 Creating an OAuth App and a Personal Access Token 06:39
- 64 Making a Test Authorized Request 05:25
- 65 Overview of the OAuth2 Authorization Code Flow 05:31
- 66 Architectural Overview 18:47
- 67 Adding Dependencies 13:16
- 68 Setting Up Analysis Options 04:21
- 69 Auth Failure 07:20
- 70 Starting With the Auth Infrastructure Layer 07:18
- 71 Secure Credentials Storage 15:00
- 72 Getting Signed-In Credentials 08:49
- 73 IDs, Scopes and Endpoints 11:19
- 74 Creating the AuthorizationCodeGrant 06:22
- 75 Handling the Authorization Response 09:51
- 76 Changing the Access Token Response Format To JSON 09:27
- 77 Signing Out and Token Revocation 24:05
- 78 Handling the Offline Sign Out Behavior 08:50
- 79 DioError Extension 05:54
- 80 Refresh Credentials Method 10:08
- 81 Starting With the Auth Application Layer 08:58
- 82 Writing the First AuthNotifier Method 06:42
- 83 Creating an AuthUriCallback 14:50
- 84 Orchestrating the Sign In Process 06:15
- 85 Sign Out and Auth Application Layer Conclusion 03:54
- 86 Auth Providers 12:10
- 87 Setting Up Presentation Layer Pages 05:38
- 88 Creating an AppWidget 06:33
- 89 Setting Up AutoRoute 12:28
- 90 Creating a Splash Page 09:54
- 91 Initialization Provider 07:43
- 92 Navigating Based On the AuthState 10:40
- 93 Building the Sign-In Page UI 12:16
- 94 Paving the Way for the Auth WebView 08:02
- 95 Auth Callback Functions 09:42
- 96 Creating a WebView 07:17
- 97 Intercepting Redirection Attempts & Finishing the WebView 10:50
- 98 Android-Specific WebView Setup 05:58
- 99 Researching the GitHub API Endpoints 29:57
- 100 Similarities Between Starred And Search Endpoints 06:48
- 101 Creating the GitHub Feature Folder Structure 08:11
- 102 GitHub Domain Entities 13:35
- 103 GitHub Failure 02:19
- 104 Starting With the Data Transfer Objects 06:40
- 105 Using Json Serializable 10:41
- 106 Converting Between DTOs and Entities 03:44
- 107 GithubRepoDTO 09:51
- 108 Converting the GithubRepoDTO Between Layers 03:31
- 109 Explanation of ETags and General Caching 06:24
- 110 First Draft of the StarredReposRemoteService Interface 03:25
- 111 Creating a RemoteResponse Union 06:11
- 112 Setting Up a SembastDatabase Class 20:44
- 113 Registering a Sembast Provider 03:33
- 114 Implementing the First Version of the GithubHeaders Data Class 09:49
- 115 Parsing the Link Header for Pagination Purposes 28:22
- 116 Caching the GitHub Headers 15:51
- 117 Getting Starred Repos Page - Starting With the Implementation 22:16
- 118 Getting Starred Response Page - Handling All RemoteResponse Cases 12:03
- 119 Passing the Max Page Number in the RemoteResponse 15:55
- 120 Indicating Freshness of the Data 13:42
- 121 StarredReposRepository Implementation Part 1 - Using Only Remote Service 12:25
- 122 StarredReposLocalService - Upserting a Page 15:31
- 123 StarredReposLocalService - Reading a Page 15:04
- 124 StarredReposRepository Implementation Part 2 - Local Service 07:12
- 125 OAuth2Interceptor Part 1 18:46
- 126 OAuth2Interceptor Part 2 12:44
- 127 Providing the OAuth2Interceptor 13:54
- 128 Creating a StarredReposState 21:47
- 129 StarredReposNotifier - First Setup 06:25
- 130 Finishing the StarredReposNotifier 13:18
- 131 Providers for the Starred Repos Feature 09:15
- 132 Initial Creation of the PaginatedReposListView 14:33
- 133 Configuring the PaginatedReposListView 13:37
- 134 Repo Tile Initial Creation and Fighting Fires 14:25
- 135 Repo Tile Part 1 09:04
- 136 Fixing Dio's Wrong 304 Status Code Categorization 05:39
- 137 Repo Tile Part 2 09:03
- 138 Loading Repo Tile - Shimmer Effect 11:19
- 139 Loading Repo Tile - Layout 20:41
- 140 Failure Repo Tile 25:24
- 141 Adding Pagination Part 1 08:53
- 142 Adding Pagination Part 2 14:49
- 143 No Connection Toast 14:36
- 144 No Results Display 11:17
- 145 Using the Local Page Count In the No Connection State 08:42
- 146 Searched Repos Feature Overview 11:13
- 147 Removing Duplication - Repos Remote Service 13:06
- 148 Creating Searched Repos Repository 10:49
- 149 Removing Duplication - Paginated Repos Notifier 12:24
- 150 Searched Repos Providers and Start of Dependency Generalization 08:53
- 151 Finishing the Dependency Generalization 12:33
- 152 Creating the Searched Repos Page 10:08
- 153 Fixing the Old Data Issue With AutoDispose Provider 05:41
- 154 Explanation of the Search Feature 07:42
- 155 Watching Search Terms 13:00
- 156 Adding Search Terms and Sorting 07:27
- 157 Deleting and Putting Search Terms First 16:36
- 158 Search History Application Layer 12:00
- 159 Creating a SearchBar Widget and Search Feature Providers 13:25
- 160 Adding Parameters to the Search Bar 10:38
- 161 Building the Search Bar UI Part 1 11:52
- 162 Fixing the Failure Repo Tile 03:47
- 163 Building the Search Bar UI Part 2 10:44
- 164 Search Bar Actions 07:09
- 165 Minimum Viable Search Bar UI 12:22
- 166 The onSubmitted Search Bar Callback 09:00
- 167 Search Bar Dropdown Background 09:39
- 168 Finishing Up the Search Bar 25:16
- 169 Adding Search Bar to the Searched Repos Page 17:14
- 170 Platform-Adaptive Search Bar Back Button 09:28
- 171 Overview of the Repo Detail Feature 17:49
- 172 Creating Repo Detail Entity and DTO 14:04
- 173 Getting the Readme HTML 08:13
- 174 Getting the Starred Status of a Repo 08:40
- 175 Switching the Starred Status of a Repo 10:21
- 176 Local Repo Detail Service Part 1 22:10
- 177 Local Repo Detail Service Part 2 - Last Used Timestamp 16:37
- 178 Local Repo Detail Service Part 3 - Finishing Up the Caching Strategy 09:25
- 179 Deleting the Repo Detail Headers 04:21
- 180 Repo Detail Repository Part 1 08:27
- 181 Repo Detail Repository Part 2 16:16
- 182 Repo Detail State and Notifier 13:31
- 183 Optimistic Updates in the Repo Detail Notifier 17:33
- 184 Preparing the Repo Detail Page 18:56
- 185 Changing the App Bar Color 05:13
- 186 Providers for the Repo Detail Subfeature 04:47
- 187 Repo Detail Page Part 1 31:07
- 188 Repo Detail Page Part 2 18:35
- 189 Opening Links in an External Browser 06:32
- 190 Module Recap 05:19
- 191 Initial Setup 12:55
- 192 Writing Strings and Using Them Within the App 15:30
- 193 Supporting Plural Strings 08:24
- 194 Adding Another Language 09:52
- 195 Module Introduction and Setup 09:35
- 196 The Need for Method Channels 08:21
- 197 Exploring the Native Code and Writing Dart Code 13:34
- 198 Enabling Code Completion for Writing Kotlin 13:04
- 199 Creating an Android Notification Channel 19:29
- 200 Showing a Notification on Android 12:24
- 201 Using the Plugin From a Flutter App and Showcasing on Android 07:08
- 202 Opening the iOS Plugin Project in XCode 07:00
- 203 Showing a Notification on iOS 22:51
Related courses
-
Updated 2y agoFlutter Firebase - The Full Course
By: FireshipThis is a project-based course that will teach you how to build a multiple choice quiz app, inspired by apps like Duolingo and QuizUp.1 hour 48 minutes 32 seconds -
Updated 2y agoBuild a Yelp! Clone for Restaurants with Flutter and Dart
By: Zero To MasteryBuild a comprehensive Flutter app for mobile (iOS & Android) and web that allows users to write reviews, ratings, photos, locations, and syncs via the Cloud.13 hours 15 minutes 53 seconds -
ClassicFlutter & Dart - The Complete Guide [2023 Edition]
By: Udemy, Academind Pro (Maximilian Schwarzmüller)The entire course was completely re-recorded and updated - it's totally up-to-date with the latest version of Flutter!68 hours 5 minutes 58 seconds 4 / 5