Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Swift & Vapor - Full Stack iOS Development Bootcamp
Introduction
Welcome (1:21)
Vapor Official Website and Discord Community (0:45)
Prerequisites (1:56)
Exercise Files (0:37)
Course Agenda (1:46)
Where did you hear about this course?
Refer a friend program
Full Stack Development
What is Full Stack Development? (1:41)
What is Vapor? (2:34)
Resources
Getting Started with Vapor
IMPORTANT: Swift Tools Version
Installing Vapor (3:08)
Hello Vapor (7:45)
Folder Structure (2:34)
Routing
Basic Routes and Route Parameters (10:40)
Strongly Typed Route Parameters (3:35)
Returning JSON (5:57)
Post Requests (JSON) (4:56)
Query Strings (7:12)
Route Groups (5:49)
Controllers
Understanding MVC Design Pattern (3:22)
Creating Controllers (7:54)
Middleware
What is a Middleware (2:09)
Creating a Basic Middleware (5:28)
Creating Middleware Extracting Tokens from Headers (8:12)
Quick Tour of Vapor with Postgres Database
What is Fluent? (3:30)
UPDATE: ElephantSQL is Shutting Down (10:28)
Setting Up Postgres Database on ElephantSQL (4:12)
UPDATE: Postgres Configuration
Adding Fluent Package (7:42)
Creating Movie Model (5:47)
Creating Tables Using Migration (12:57)
Saving Movie (7:29)
Get All Movies and Get Movie By Id (5:51)
Deleting Movie (3:15)
Updating Movie (7:22)
Grocery App - Project Setup
What we will be building? (2:31)
Creating Vapor Project and SwiftUI Project (3:05)
Adding Dependencies to the Vapor Project (3:25)
Setting Up Postgres Database Locally (5:32)
Downloading Beekeeper Studio for Database Management (3:23)
Resource: Downloading Beekeeper Studio Community Edition
Connecting Beekeeper Studio to Local Postgres Database (4:19)
Grocery App - User Registration (Server Side)
Creating Users Table Through Migration (13:37)
Creating the User Model (7:25)
Implementing Register Route (11:23)
Testing User Registration Using Postman (5:39)
Grocery App - User Login (Server Side)
Understanding JWT Authentication Flow (4:08)
Implementing Login Route (5:06)
Implementing Authentication Payload (5:28)
Creating and Returning the JWT Token (8:43)
Testing User Login Using Postman (2:03)
Grocery App - User Registration
Implementing the Registration Screen (10:10)
Implementing Generic HTTPClient Part 1 (7:23)
Implementing Generic HTTP Client Part 2 (8:56)
FIX - Removing the HTTP Response Status Check (1:18)
Implementing the Aggregate Root GroceryModel (11:33)
Using GroceryModel from View to Register a New User (14:23)
FIX - Displaying Error Message on the Screen (0:52)
Grocery App - User Login
Creating the Login Screen (3:48)
Implementing the Login in GroceryModel (19:08)
Adding Global Navigation (5:09)
Performing Programmatic Navigation (10:50)
Grocery App - Creating a Swift Package for Sharing DTOs
Creating Grocery App Shared DTO Package (7:35)
Publishing the Grocery App Shared DTO Package to GitHub (5:11)
Adding GroceryAppSharedDTO Package to SwiftUI and Vapor Projects (12:57)
Grocery App - Saving Grocery Category (Server Side)
Creating Grocery Category Table by Using Migration (11:22)
Implementing Grocery Category Model (6:14)
Setting Up Grocery Controller (6:17)
Implementing GroceryCategoryRequestDTO and GroceryCategoryResponseDTO (7:15)
Saving Grocery Category (10:18)
Testing Grocery Category Using Postman (5:54)
Grocery App - Saving Grocery Category (SwiftUI App/Client)
Building the User Interface for Adding Grocery Category (9:59)
Implementing Save Grocery Category in GroceryModel (8:27)
Updating AddGroceryCategoryScreen to Use GroceryModel (5:56)
Adding Extension to UserDefaults to Easily Access UserId (3:02)
Grocery App - Fetching and Displaying Grocery Categories
Fetching Grocery Categories by User (Server) (7:59)
Updating Grocery Model to Get Categories by User (Client) (6:12)
Displaying Grocery Categories (8:53)
Deleting Grocery Category (Server) (6:59)
Deleting Grocery Category (Client) (8:27)
Navigating to AddGroceryCategoryScreen from GroceryCategoryListScreen (8:35)
Grocery App - Saving Grocery Items (Server)
Creating Grocery Items Table By Using Migration (5:51)
Implementing GroceryItem Model (3:30)
Saving Grocery Item - Part 1 (5:16)
Saving Grocery Item - Part 2 (10:50)
Testing Add Grocery Item Using Postman (4:11)
Grocery App - Saving and Displaying Grocery Items
Implementing Grocery Detail Screen Container Screen (8:21)
Creating User Interface for AddGroceryItemScreen (5:30)
Updating GroceryModel to Support Adding Grocery Items (10:58)
Navigating to Grocery Detail Screen and Testing Saving Grocery Items (15:04)
Grocery App - Fetching and Displaying Grocery Items
Fetching Grocery Items (Server) (9:06)
Display Grocery Items on the Screen (13:05)
Deleting Grocery Item (Server) (6:47)
Deleting Grocery Item (Client) (8:46)
Grocery App - Error Handling, Routing and Authentication Middleware
Updating Screen Routing & Implementing Sign out (8:59)
Implementing ErrorWrapper and ErrorView (10:03)
Implementing Authentication Middleware (8:09)
IMPORTANT - Updating Client to Send Authentication Headers (6:45)
Presenting GroceryCategoryListScreen for Authenticated Users (2:24)
OPTIONAL - Returning All Grocery Items with Grocery Categories (16:02)
Grocery App - Deployment
Resource: Vapor Heroku Deployment
Setting Up Heroku Account & Installing Heroku CLI (11:07)
Adding Environment Variables (9:33)
Configure Procfile, Buildpack and Swift Version (7:38)
Setting Up Postgres Database and Running Migrations (15:46)
Updating the SwiftUI App (3:35)
Quick Tour of MongoDB with Vapor
Setting Up MongoDB on MongoDB Atlas Cloud (6:51)
Configuring MongoDB Packages and Connecting to MongoDB Server (6:41)
Creating a Movie Model (3:46)
Saving a New Movie (8:38)
Implementing Get All Movies and Get Movie By Id (5:16)
Deleting a Movie (3:15)
Updating Movie (4:43)
Conclusion
Next Steps (0:40)
Teach online with
Refer a friend program
Complete and Continue