Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Build a Yelp! Clone for Restaurants with Flutter and Dart
Introduction
Project Demo (4:14)
Project FAQ
Project Resources
Exercise: Meet Your Classmates and Instructor
Set Your Learning Streak Goal
Base Application
Your Mission... (3:56)
Create Project (4:25)
Integrating Version Control with Github (3:13)
App Foundation (5:58)
Base Folder Structure (2:48)
Dark & Light Themes (7:41)
Run Themes Changes (3:21)
Basic User Interface Layout
Introduction to Base Page Structure, Responsive Layout Builder and Navigation (1:06)
Constants (4:40)
Page Stubs Base Navigation (4:57)
Responsive Layout Builder (4:14)
Home Responsive Layout Builder - Mobile (5:46)
Home Responsive Layout Builder - Web Desktop Tablet (7:53)
Image Assets (4:30)
Page Stubs Authentication - Review Entry Photo (7:39)
Routes Class (6:34)
Custom Clipper - Intro (1:26)
Custom Clipper - Class (4:32)
Reviews List AppBar with Custom Clipper (4:57)
Dependencies
Different Ways to Add Packages (2:51)
Add Packages Dependencies (Camera, Photo Album, Location, Reverse Geocoding, etc.) (6:11)
iOS Info.plist - Image Picker Location Permissions (1:48)
Android Manifest Location Permissions (2:14)
Enable CORS (2:42)
Create Firebase Project
Resources: Firebase CLI, FlutterFire CLI, Android SDK and Multidex Links
Different Ways to Create Firebase Project (3:46)
Install Firebase CLI and FlutterFire CLI (5:47)
Create New Firebase Project with FlutterFire CLI (5:13)
Initialize Firebase (2:20)
Android SDK Version (2:04)
Firebase Authentication
Enabling Authentication - Sign In Providers (1:30)
Reviewing Authentication - Email Templates (0:56)
Create Authentication Service - CreateUser (6:42)
Create Authentication Service - Sign In & Out, Password Reset, Email Vertification (6:29)
Authentication Business Logic - Part 1 (Validators, Error Handling) (6:12)
Authentication Business Logic - Part 2 (Private Variables) (7:57)
Authentication Business Logic - Part 3 (Check Register Email) (5:50)
Authentication Business Logic - Part 4 (Create Login Logic) (2:05)
Authentication Business Logic - Part 5 (Create User Model Calls, New User Default Values) (4:34)
Authentication Business Logic - Part 6 (Create Database Service) (5:48)
Authentication Business Logic - Part 7 (Get and Update User) (6:31)
Authentication Business Logic - Part 8 (Adding Register Logic) (5:25)
Creating Authentication State (5:55)
Extra Resources: Firebase App Check
Overview Authentication Pages and Navigation Paths
Introduction & Explanations (1:30)
Customize Register User Page
Introduction (0:52)
Base Layout (6:49)
Base Layout - Image, Body Structure and Email (7:09)
Base Layout - Password and Confirm (6:59)
Base Layout - Register Button (4:36)
Base Layout - Register Error Message (3:28)
Base Layout - Login Button and Navigation (4:06)
Customize Login Page
Introduction (0:52)
Base Layout (5:16)
Base Layout - Email (5:54)
Base Layout - Password (5:12)
Base Layout - Login Button (2:50)
Base Layout - Login Error Message (3:47)
Base Layout - Forgot Password and Create User Buttons (5:25)
Forgot Password Page
Base Layout (4:56)
Base Layout - Image, Body Structure and Email (4:42)
Base Layout - Reset Password Button (3:54)
Base Layout - Login Button (3:32)
Authentication State Changes and Navigation
Introduction (1:18)
Implementing the Build Material App (5:40)
Implementing the Authentication State and Named Routes Navigation (7:22)
Cloud Storage
Enabling Security Rules (3:07)
Storage Service - Upload Photo (9:10)
Storage Service - Delete Photo (4:18)
Review Model
Introduction (1:00)
Creating Review Model (2:12)
Creating Review Model - Optionals (2:26)
Creating Review Model - Equality Operator (5:59)
Creating Review Model - Add New Review with Default Values (4:00)
Cloud Firestore Database
Create Firestore Database and Enable Security Rules (4:12)
Database Service - Add Review (6:53)
Database Service - Update Review - Handle Photo (7:21)
Database Service - Update Review - Handle Save to Firestore (2:08)
Database Service - Delete Review (2:30)
Database Service - Get Review List (6:22)
Database Service - Get Review List with Photos (7:38)
Location Services
Introduction (1:00)
Get API Key (2:33)
Get Permission and Location (8:53)
Get Reverse Geocoding (4:44)
Additional Helpers and Reusable Widgets
Introduction (2:19)
App Helpers - Arguments (3:22)
App Helpers - Dialogs (5:05)
App Helpers - Format Dates (3:00)
Reusable Widgets - Image Circle Shadow (3:06)
Reusable Widgets - Image and Message (4:56)
Reusable Widgets - Muted Text (2:27)
Reusable Widgets - Star Rating - Variables (3:25)
Reusable Widgets - Star Rating - Rating (2:52)
Reusable Widgets - Star Rating - Gesture Detector (6:14)
Customize the Review List Page
Introduction (1:03)
Review List Logic (5:04)
Modifying Themes - Custom Error Color (1:20)
Review List Body Card - Base Layout and Dismissible (6:57)
Review List Body Card - Card, InkWell, Navigation and Hero (3:37)
Review List Body Card - Hero, Aspect Ratio and Image Network (4:19)
Review List Body Card - Cached Network Image (3:34)
Review List Body Card - ListTile Title Star Rating (4:00)
Review List Body Card - ListTile Subtitle (7:09)
Review List Body - Base Layout, Image and Message (4:23)
Review List Body - Sliver Grid or Sliver List (5:08)
Review List - Initialize Logic and Stream (2:55)
Review List - Refactor Logic (2:49)
Review List - App Bar, Menu Actions (6:28)
Review List - Safe Area and Stream Builder (7:28)
Review List - Floating Action Button and Navigation (4:26)
Review List - Cloud Firestore Index (2:17)
Review Entry - Photo Zoom Page
Introduction (0:43)
Base Layout and Navigation Arguments (3:27)
Hero and Image Network Widget (3:16)
Cached Network Image (2:52)
Review Entry - View Page
Introduction (1:45)
Base Layout (4:57)
InkWell, Hero and Image Network (4:58)
Cached Network Image (2:37)
ListTile - Title and Star Rating (4:12)
ListTile - Subtitle Property - Column and Review Details (3:19)
ListTile - Subtitle Property - Location Placemark in a Wrap Widget (1:32)
ListTile - Subtitle Property - Map with FlutterMap (7:34)
Review Entry - Edit Logic
Create Review Entry Edit Logic (6:03)
Set Location and Address - Web (3:35)
Set Location and Address - Mobile (3:17)
Get Location, Current Position, and Replace Location (5:54)
Check if Data Changed and Save Review (6:30)
Delete Location (5:52)
Cancel Editing Review and Delete Review (6:16)
Select Date and Pick Image (7:48)
Review Entry - Edit Widgets
Introduction (2:22)
App Bar Widget - Base Layout (4:50)
App Bar Widget - Title and Leading Properties (4:53)
App Bar Widget - Actions (4:56)
Photo Widget - Base Layout (4:07)
Photo Widget - Image File and Image Network (4:47)
Photo Widget - Cached Network Image (2:43)
Photo Widget - Take Photo (5:48)
Photo Widget - Pick Photo (5:35)
Photo Widget - Take or Pick Photo Logic (6:55)
Date Picker Widget - Base Layout (3:16)
Date Picker Widget - Custom Button (5:56)
Affordability Widget - Base Layout (3:58)
Affordability Widget - Star Rating (3:44)
Affordability Widget - Affordability Segmented Button (7:17)
Text Fields Widget - Base Layout (3:50)
Text Fields Widget - Restaurant and Title (3:18)
Text Fields Widget - Category and Review (2:51)
Placemark and Map Widget - Base Layout (4:31)
Placemark and Map Widget - Position Value Listenable Builder (3:01)
Placemark and Map Widget - Location Placemark (2:16)
Placemark and Map Widget - Map (6:57)
Placemark and Map Widget - Progress Indicator (3:07)
Placemark and Map Widget - Replace Location Button (5:57)
Placemark and Map Widget - Delete Location Button (2:36)
Review Entry - Edit Page
Introduction (1:13)
Base Layout (4:42)
Navigation Arguments and Edit Logic (7:43)
ValueNotifier Class (6:20)
Dispose Method (2:11)
WillPopScope Widget (2:30)
App Bar Widget - Layout Body Property (1:40)
Photo Widget and Date Picker Widget (3:02)
Rating Widget and Affordability Widget (2:03)
Placemark Map Widget (2:31)
Adding New Review (4:08)
Review Photos - Grid Page
Introduction (1:23)
Grid Logic (3:23)
Base Layout (2:42)
StreamBuilder (5:52)
GridView Builder (3:47)
InkWell (2:31)
Image Network (2:58)
Cached Network Image (2:32)
Title Bar Gradient (5:52)
Cloud Firestore Index (2:30)
Review Map - Locations Page
Introduction (1:09)
Locations Logic (3:19)
Review Map Locations Body Widget (8:42)
Base Layout (2:18)
StreamBuilder, Update Packages, and Pubspec.yaml File (8:32)
Refactoring
Refactoring, AnimatedBuilder to ListenableBuilder (2:21)
Sound Null Safety (3:01)
Dart Analysis (3:17)
Conclusion
Mission Accomplished! (3:30)
Top Widgets, Features, Techniques (6:08)
Where To Go From Here?
Review This Project!
Photo Widget - Cached Network Image
This lecture is available exclusively for ZTM Academy members.
If you're already a member,
you'll need to login
.
Join ZTM To Unlock All Lectures