Build a Yelp! Clone for Restaurants with Flutter and Dart
13h 15m 53s
English
Paid
Course description
Build a comprehensive Flutter app for mobile (iOS & Android) and web that allows users to write reviews, ratings, photos, locations, and syncs via the Cloud.
Read more about the course
This isn't just any Flutter practice project...it's a true portfolio project that allows you to dive deep and practice your Flutter and Dart skills while building a beautiful, enterprise-level app that will be the highlight of your portfolio!
Watch Online
0:00
/ #1: Project Demo
All Course Lessons (186)
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Project Demo Demo | 04:15 | |
| 2 | Create Project | 04:26 | |
| 3 | Integrating Version Control with Github | 03:14 | |
| 4 | App Foundation | 05:59 | |
| 5 | Base Folder Structure | 02:49 | |
| 6 | Dark & Light Themes | 07:42 | |
| 7 | Run Themes Changes | 03:22 | |
| 8 | Introduction to Base Page Structure, Responsive Layout Builder and Navigation | 01:07 | |
| 9 | Constants | 04:41 | |
| 10 | Page Stubs Base Navigation | 04:58 | |
| 11 | Responsive Layout Builder | 04:15 | |
| 12 | Home Responsive Layout Builder - Mobile | 05:47 | |
| 13 | Home Responsive Layout Builder - Web Desktop Tablet | 07:54 | |
| 14 | Image Assets | 04:31 | |
| 15 | Page Stubs Authentication - Review Entry Photo | 07:40 | |
| 16 | Routes Class | 06:35 | |
| 17 | Custom Clipper - Intro | 01:27 | |
| 18 | Custom Clipper - Class | 04:33 | |
| 19 | Reviews List AppBar with Custom Clipper | 04:58 | |
| 20 | Different Ways to Add Packages | 02:52 | |
| 21 | Add Packages Dependencies (Camera, Photo Album, Location, Reverse Geocoding, etc.) | 06:12 | |
| 22 | iOS Info.plist - Image Picker Location Permissions | 01:49 | |
| 23 | Android Manifest Location Permissions | 02:15 | |
| 24 | Enable CORS | 02:43 | |
| 25 | Different Ways to Create Firebase Project | 03:47 | |
| 26 | Install Firebase CLI and FlutterFire CLI | 05:48 | |
| 27 | Create New Firebase Project with FlutterFire CLI | 05:14 | |
| 28 | Initialize Firebase | 02:21 | |
| 29 | Android SDK Version | 02:05 | |
| 30 | Enabling Authentication - Sign In Providers | 01:31 | |
| 31 | Reviewing Authentication - Email Templates | 00:57 | |
| 32 | Create Authentication Service - CreateUser | 06:43 | |
| 33 | Create Authentication Service - Sign In & Out, Password Reset, Email Vertification | 06:30 | |
| 34 | Authentication Business Logic - Part 1 (Validators, Error Handling) | 06:13 | |
| 35 | Authentication Business Logic - Part 2 (Private Variables) | 07:58 | |
| 36 | Authentication Business Logic - Part 3 (Check Register Email) | 05:51 | |
| 37 | Authentication Business Logic - Part 4 (Create Login Logic) | 02:06 | |
| 38 | Authentication Business Logic - Part 5 (Create User Model Calls, New User Default Values) | 04:35 | |
| 39 | Authentication Business Logic - Part 6 (Create Database Service) | 05:49 | |
| 40 | Authentication Business Logic - Part 7 (Get and Update User) | 06:32 | |
| 41 | Authentication Business Logic - Part 8 (Adding Register Logic) | 05:26 | |
| 42 | Creating Authentication State | 05:56 | |
| 43 | Introduction & Explanations | 01:31 | |
| 44 | Introduction | 00:53 | |
| 45 | Base Layout | 06:50 | |
| 46 | Base Layout - Image, Body Structure and Email | 07:10 | |
| 47 | Base Layout - Password and Confirm | 07:00 | |
| 48 | Base Layout - Register Button | 04:37 | |
| 49 | Base Layout - Register Error Message | 03:29 | |
| 50 | Base Layout - Login Button and Navigation | 04:07 | |
| 51 | Introduction | 00:53 | |
| 52 | Base Layout | 05:17 | |
| 53 | Base Layout - Email | 05:55 | |
| 54 | Base Layout - Password | 05:13 | |
| 55 | Base Layout - Login Button | 02:51 | |
| 56 | Base Layout - Login Error Message | 03:48 | |
| 57 | Base Layout - Forgot Password and Create User Buttons | 05:26 | |
| 58 | Base Layout | 04:57 | |
| 59 | Base Layout - Image, Body Structure and Email | 04:43 | |
| 60 | Base Layout - Reset Password Button | 03:55 | |
| 61 | Base Layout - Login Button | 03:33 | |
| 62 | Introduction | 01:19 | |
| 63 | Implementing the Build Material App | 05:41 | |
| 64 | Implementing the Authentication State and Named Routes Navigation | 07:23 | |
| 65 | Enabling Security Rules | 03:08 | |
| 66 | Storage Service - Upload Photo | 09:11 | |
| 67 | Storage Service - Delete Photo | 04:19 | |
| 68 | Introduction | 01:01 | |
| 69 | Creating Review Model | 02:13 | |
| 70 | Creating Review Model - Optionals | 02:27 | |
| 71 | Creating Review Model - Equality Operator | 06:00 | |
| 72 | Creating Review Model - Add New Review with Default Values | 04:01 | |
| 73 | Create Firestore Database and Enable Security Rules | 04:13 | |
| 74 | Database Service - Add Review | 06:54 | |
| 75 | Database Service - Update Review - Handle Photo | 07:22 | |
| 76 | Database Service - Update Review - Handle Save to Firestore | 02:09 | |
| 77 | Database Service - Delete Review | 02:30 | |
| 78 | Database Service - Get Review List | 06:23 | |
| 79 | Database Service - Get Review List with Photos | 07:39 | |
| 80 | Introduction | 01:00 | |
| 81 | Get API Key | 02:34 | |
| 82 | Get Permission and Location | 08:54 | |
| 83 | Get Reverse Geocoding | 04:45 | |
| 84 | Introduction | 02:20 | |
| 85 | App Helpers - Arguments | 03:23 | |
| 86 | App Helpers - Dialogs | 05:06 | |
| 87 | App Helpers - Format Dates | 03:01 | |
| 88 | Reusable Widgets - Image Circle Shadow | 03:07 | |
| 89 | Reusable Widgets - Image and Message | 04:57 | |
| 90 | Reusable Widgets - Muted Text | 02:28 | |
| 91 | Reusable Widgets - Star Rating - Variables | 03:26 | |
| 92 | Reusable Widgets - Star Rating - Rating | 02:53 | |
| 93 | Reusable Widgets - Star Rating - Gesture Detector | 06:15 | |
| 94 | Introduction | 01:04 | |
| 95 | Review List Logic | 05:05 | |
| 96 | Modifying Themes - Custom Error Color | 01:21 | |
| 97 | Review List Body Card - Base Layout and Dismissible | 06:58 | |
| 98 | Review List Body Card - Card, InkWell, Navigation and Hero | 03:38 | |
| 99 | Review List Body Card - Hero, Aspect Ratio and Image Network | 04:20 | |
| 100 | Review List Body Card - Cached Network Image | 03:35 | |
| 101 | Review List Body Card - ListTile Title Star Rating | 04:01 | |
| 102 | Review List Body Card - ListTile Subtitle | 07:10 | |
| 103 | Review List Body - Base Layout, Image and Message | 04:24 | |
| 104 | Review List Body - Sliver Grid or Sliver List | 05:09 | |
| 105 | Review List - Initialize Logic and Stream | 02:56 | |
| 106 | Review List - Refactor Logic | 02:50 | |
| 107 | Review List - App Bar, Menu Actions | 06:29 | |
| 108 | Review List - Safe Area and Stream Builder | 07:29 | |
| 109 | Review List - Floating Action Button and Navigation | 04:27 | |
| 110 | Review List - Cloud Firestore Index | 02:18 | |
| 111 | Introduction | 00:44 | |
| 112 | Base Layout and Navigation Arguments | 03:28 | |
| 113 | Hero and Image Network Widget | 03:17 | |
| 114 | Cached Network Image | 02:53 | |
| 115 | Introduction | 01:46 | |
| 116 | Base Layout | 04:58 | |
| 117 | InkWell, Hero and Image Network | 04:59 | |
| 118 | Cached Network Image | 02:38 | |
| 119 | ListTile - Title and Star Rating | 04:13 | |
| 120 | ListTile - Subtitle Property - Column and Review Details | 03:20 | |
| 121 | ListTile - Subtitle Property - Location Placemark in a Wrap Widget | 01:33 | |
| 122 | ListTile - Subtitle Property - Map with FlutterMap | 07:35 | |
| 123 | Create Review Entry Edit Logic | 06:04 | |
| 124 | Set Location and Address - Web | 03:36 | |
| 125 | Set Location and Address - Mobile | 03:18 | |
| 126 | Get Location, Current Position, and Replace Location | 05:55 | |
| 127 | Check if Data Changed and Save Review | 06:31 | |
| 128 | Delete Location | 05:53 | |
| 129 | Cancel Editing Review and Delete Review | 06:16 | |
| 130 | Select Date and Pick Image | 07:49 | |
| 131 | Introduction | 02:23 | |
| 132 | App Bar Widget - Base Layout | 04:51 | |
| 133 | App Bar Widget - Title and Leading Properties | 04:54 | |
| 134 | App Bar Widget - Actions | 04:57 | |
| 135 | Photo Widget - Base Layout | 04:08 | |
| 136 | Photo Widget - Image File and Image Network | 04:48 | |
| 137 | Photo Widget - Cached Network Image | 02:44 | |
| 138 | Photo Widget - Take Photo | 05:49 | |
| 139 | Photo Widget - Pick Photo | 05:36 | |
| 140 | Photo Widget - Take or Pick Photo Logic | 06:56 | |
| 141 | Date Picker Widget - Base Layout | 03:17 | |
| 142 | Date Picker Widget - Custom Button | 05:57 | |
| 143 | Affordability Widget - Base Layout | 03:59 | |
| 144 | Affordability Widget - Star Rating | 03:45 | |
| 145 | Affordability Widget - Affordability Segmented Button | 07:18 | |
| 146 | Text Fields Widget - Base Layout | 03:51 | |
| 147 | Text Fields Widget - Restaurant and Title | 03:19 | |
| 148 | Text Fields Widget - Category and Review | 02:52 | |
| 149 | Placemark and Map Widget - Base Layout | 04:32 | |
| 150 | Placemark and Map Widget - Position Value Listenable Builder | 03:02 | |
| 151 | Placemark and Map Widget - Location Placemark | 02:17 | |
| 152 | Placemark and Map Widget - Map | 06:58 | |
| 153 | Placemark and Map Widget - Progress Indicator | 03:08 | |
| 154 | Placemark and Map Widget - Replace Location Button | 05:58 | |
| 155 | Placemark and Map Widget - Delete Location Button | 02:37 | |
| 156 | Introduction | 01:14 | |
| 157 | Base Layout | 04:43 | |
| 158 | Navigation Arguments and Edit Logic | 07:44 | |
| 159 | ValueNotifier Class | 06:21 | |
| 160 | Dispose Method | 02:12 | |
| 161 | WillPopScope Widget | 02:31 | |
| 162 | App Bar Widget - Layout Body Property | 01:41 | |
| 163 | Photo Widget and Date Picker Widget | 03:03 | |
| 164 | Rating Widget and Affordability Widget | 02:04 | |
| 165 | Placemark Map Widget | 02:32 | |
| 166 | Adding New Review | 04:09 | |
| 167 | Introduction | 01:24 | |
| 168 | Grid Logic | 03:24 | |
| 169 | Base Layout | 02:43 | |
| 170 | StreamBuilder | 05:53 | |
| 171 | GridView Builder | 03:48 | |
| 172 | InkWell | 02:32 | |
| 173 | Image Network | 02:59 | |
| 174 | Cached Network Image | 02:33 | |
| 175 | Title Bar Gradient | 05:53 | |
| 176 | Cloud Firestore Index | 02:31 | |
| 177 | Introduction | 01:10 | |
| 178 | Locations Logic | 03:20 | |
| 179 | Review Map Locations Body Widget | 08:43 | |
| 180 | Base Layout | 02:19 | |
| 181 | StreamBuilder, Update Packages, and Pubspec.yaml File | 08:33 | |
| 182 | Refactoring, AnimatedBuilder to ListenableBuilder | 02:22 | |
| 183 | Sound Null Safety | 03:02 | |
| 184 | Dart Analysis | 03:18 | |
| 185 | Mission Accomplished! | 03:31 | |
| 186 | Top Widgets, Features, Techniques | 06:09 |
Unlock unlimited learning
Get instant access to all 185 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionComments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Flutter Firebase - The Full Course
Sources: fireship.io
This is a project-based course that will teach you how to build a multiple choice quiz app, inspired by apps like Duolingo and QuizUp. The app implements user authentication (Si...
1 hour 48 minutes 32 seconds
The Best Flutter Course On The Internet
Sources: Robert Brunhage, Tadas Petra
Create anything you want with Flutter. Master Flutter with the support of two experienced Google Developer experts. This course will provide you with the...
1 hour 5 minutes 10 seconds
Flutter Developer Bootcamp
Sources: resocoder.com
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 framewo...
35 hours 46 minutes 42 seconds
Flutter Masterclass
Sources: Net Ninja
Flutter is a remarkable framework for creating cross-platform applications (mobile, desktop, and web) using the Dart programming language.
14 hours 56 minutes 50 seconds
Flutter & Dart - The Complete Guide [2023 Edition]
Sources: udemy, Academind Pro
The entire course was completely re-recorded and updated - it's totally up-to-date with the latest version of Flutter! With the latest update, I also added Push Notifications an...
68 hours 5 minutes 58 seconds