CodeWithChris IndexSwift and SwiftUI Tutorials
Hello and welcome!
Below you’ll find all of our training organized by category. We’re still in the process of indexing all of our content so please check back periodically!
Categories
Recommended Resources

14 Day Beginner Challenge
Follow this challenge to start your App Journey!

Learn Swift for Beginners
Learn swift programming even if you have no coding experience!

App Idea to Launch
Here are the 10 steps to go from app idea to app launch!

Xcode Tutorial For Beginners
My ultimate guide to using Xcode for beginners

Xcode for Windows
If you’re using a Windows PC, this guide will get you up and running with iOS App Development
CWC+ Courses Index
The course indexing is a new initiative for us and it’ll take some time to do this for each of courses so please bear with us as we work hard to bring you the indexes. For a complete listing of our courses, click here.

iOS Foundations (SwiftUI)
This course is designed for absolute beginners and will help you gain the skills to confidently build apps that fetch data from feeds, local files and APIs.
Module 1: The War Card Game
Lesson 1: The Apple Developer Ecosystem
- Apple Developer Ecosystem (1:19)
- Xcode (1:24)
- Swift (1:49)
- SwiftUI (1:59)
- Apple Developer Program (2:34)
- Provisioning Portal (2:55)
- Testflight (3:15)
- App Store Connect (3:30)
Lesson 2: Introduction to Xcode
- Where to get Xcode (0:54)
- Older Xcode versions (3:03)
- Starting a new project (4:00)
- File Navigator (7:04)
- Xcode Editor Area (7:35)
- Inspector Area (8:05)
- Xcode Toolbar (9:24)
- iOS Simulator (9:53)
- Project files (11:37)
- Navigating in Xcode (14:34)
Lesson 3: How to Build User Interfaces
- New Xcode project (1:18)
- iOS Simulator (1:43)
- Preview Canvas (2:43)
- Building the UI (4:38)
- SwiftUI Text View (6:08)
- Padding Modifier (6:34)
- Background Color Modifier (7:19)
- Building UI Visually (8:08)
Lesson 4: SwiftUI Views and Containers
- SwiftUI Image View (0:58)
- Adding Image Assets (1:47)
- Displaying Images (3:07)
- Resizable Modifier (3:27)
- Aspect Ratio Modifier (3:46)
- VStack element (4:58)
- HStack element (6:26)
- ZStack element (6:37)
- Spacer element (9:27)
Lesson 5: Build The War Card Game UI
- New Xcode project (0:41)
- Add Image Assets (1:12)
- Preview of the UI (2:39)
- Xcode Safe Area (3:15)
- Building the UI (6:30)
Lesson 6: Swift Variables and Constants
- View Lifecycle (1:03)
- Xcode Playgrounds (3:00)
- What is data? (4:43)
- Swift String (4:54)
- Comments (5:05)
- Swift Int (5:32)
- Swift Double (5:43)
- Swift Bool (5:55)
- Variables (6:38)
- Print function (8:17)
- Constants (12:29)
- Swift Functions (2:25)
- Function Parameters (4:07)
- Function Return Values (6:59)
- Multiple Function Parameters (11:53)
- Default Parameter Values (13:30)
- Function Argument Labels (15:02)
- Hiding Argument Labels (17:45)
- Function Signatures (19:02)
- Swift Structures (0:59)
- Declaring Structs (2:25)
- Struct Example (4:58)
- Variable Scope (7:56)
- Computed Properties (10:55)
- Creating Structure Instances (0:57)
- Structs as Data Types (4:05)
- Access Control and Access Labels (11:52)
- Example of Instances (14:17)
- SwiftUI Button Syntax (0:49)
- Trailing Closure (5:56)
- Button with an Image (8:18)
- SFSymbols (10:39)
- SwiftUI Button in the War Card Game (12:20)
- Creating properties for data (1:00)
- Referencing properties in view code (2:16)
- Implementing SwiftUI Button actions (5:09)
- State Property Wrapper (6:22)
- Randomizing Cards (9:04)
- Private Access Level (12:52)
Lesson 12: Swift If Statements
- Swift If Statements Syntax (0:46)
- Using “And” in conditions (2:27)
- Using “Or” in conditions (3:09)
- Combining “And” and “Or” (4:08)
- Swift Else if (5:22)
- Swift Else (6:42)
- If statement with other data types (7:56)
- Adding If conditions to the War Card Game (11:45)
Module 2: The Recipe List App
- Overview (0:00)
- Declaring Arrays (1:07)
- Appending Array Items (2:39)
- How Arrays Work (3:57)
- Accessing and Updating Arrays (5:21)
- Removing Array Items (6:43)
- Handy Array Methods (8:50)
- SwiftUI List Syntax (1:23)
- Dynamic List (4:00)
- NavigationView and NavigationLink (9:07)
- NavigationBarTitle (9:50)
- For-In Loop Syntax (0:52)
- For Loop with Arrays (4:15)
- Repeat While Loop (7:15)
- While Loop (9:26)
- Declaring Classes (0:48)
- Class Instances (1:44)
- Subclassing (3:27)
- Inheritance (5:35)
- Superclass/Subclass (6:18)
- Overriding Methods (8:13)
- Subclass vs Protocol syntax (10:38)
Lesson 6: Value vs Reference Types
- Value types and Reference Types (0:23)
- Structs vs Classes(1:11)
- Characteristics of Structs (1:43)
- Characteristics of Classes (5:52)
- When to use Classes vs Structs (8:27)
Lesson 7: MVVM Architecture Pattern
- Overview of MVVM (0:43)
- Using Groups to Organize Xcode Project (2:00)
- MVVM Example Implementation (4:38)
- ObservableObject Protocol (2:49)
- ObservedObject Property Wrapper (3:05)
- @Published Property Wrapper (4:05)
- Implicitly Unwrapped Optional (2:10)
- Optionals (5:20)
- Unwrapping Optionals (6:57)
- Optional Binding (10:44)
- Optional Chaining (12:54)
- When to use Optionals (16:51)
- How a Dictionary Works (0:39)
- Declaring an Empty Dictionary (1:35)
- Inserting into a Dictionary (3:01)
- Retrieving Dictionary Values (4:00)
- Update Dictionary Values (5:40)
- Removing Dictionary Values (6:00)
- Declaring Initialized Dictionary (8:00)
- Looping Through a Dictionary (9:25)
Lesson 11: Intro to JSON Data Format
- Reading JSON (1:19)
- JSON Objects (1:49)
- JSON Arrays (2:33)
- JSON Objects in Array (2:58)
- Creating a JSON file (3:15)
- Validating JSON (6:00)
- JSON File Example (10:08)
- Path to local JSON file (2:10)
- Create a Data object from JSON (6:20)
- Swift Error Handling (8:06)
- Parse the JSON (10:28)
- Mapping the Model to the JSON Object (11:48)
- Decodable Protocol (14:10)
- Setting Unique IDs for Model Objects (21:37)
- Adding Image Assets (2:16)
- Adding JSON file (2:33)
- Parsing JSON (5:22)
- Xcode Debugging (24:25)
Lesson 14: ForEach and ScrollViews
- SwiftUI ForEach (1:49)
- SwiftUI ScrollView (5:09)
Lesson 15: The RecipeDetail View
- Creating new SwiftUI Views (0:22)
- SwiftUI NavigationView (18:08)
- NavigationBarTitle (18:20)
- SwiftUI NavigationLink (18:40)
Module 3: Git and GitHub
Lesson 1: Introduction to Git and GitHub
- What is Git? (1:04)
- What is GitHub? (1:20)
- How Git works (1:35)
- Commits (1:40)
- Branching (2:07)
- Local and Remote Repos (2:31)
- Staging and Commit (3:24)
- Putting it all together (4:41)
- Branching (5:45)
- Cloning (6:14)
- Forking (6:53)
- Ways to use GitHub (7:35)
- GitHub Signup (0:10)
- Create a repository (2:16)
- Create an Xcode project (4:23)
- Add GitHub account to Xcode with Personal Access Token (5:25)
- Commit from Xcode (10:40)
- Push to GitHub (12:30)
- Connecting to GitHub from Xcode (12:45)
- Adding new files (0:00)
- Commit new files (0:35)
- Push changes (4:59)
- Fetch changes (7:32)
- Clone repo on different machine (8:24)
Module 4: Recipe App
- Overview (0:00)
Lesson 2: Adding the Project to GitHub
- Creating a copy of the project (0:32)
- Adding source control to existing project (1:25)
- Creating repo on GitHub (2:25)
- Adding remote repo to Xcode (3:43)
- Pushing to remote (3:50)
- SwiftUI TabView (0:30)
- Customizing tabs (1:18)
- Detect tab selection (4:01)
- Two way bindings (5:40)
- Tab tags (7:30)
- Adding tabs to recipe app (9:00)
- Rectangle (0:33)
- Frame (1:06)
- Alignment (1:44)
- GeometryReader (4:18)
- Relative sizes (5:45)
- onTapGesture (7:00)
- GeometryReader frame (7:28)
- Offset modifier (18:24)
- Padding vs Offset (18:48)
- Position modifier (21:16)
- Adding new JSON (2:08)
- Fixing JSON parsing (2:52)
- Browsing GitHub commits (10:02)
- Adding new SwiftUI View (0:59)
- Review data flow options (3:58)
- environmentObject modifier (6:38)
- Implementing environmentObject in Xcode (7:20)
- Swipe-able cards using tabViewStyle and PageTabViewStyle (5:34)
- Drop Shadow modifier (8:43)
- Customize the shadow effect (17:19)
- Hiding NavigationBarTitle (2:12)
- List with ScrollView and ForEach (4:09)
- LazyVStack (4:50)
- Picker basics (0:40)
- Picker selection (2:15)
- Picker options (3:00)
- Picker tag (5:28)
- Picker style (7:33)
- MenuPickerStyle (7:53)
- SegmentedPickerStyle (8:59)
Lesson 10: Calculating Ingredient Portions
- Calculating portions math walkthrough (0:00)
Lesson 11: Recipe Serving Size Picker
- Checking documentation (0:49)
- Implementing Picker (1:39)
- Comparing source control version (4:47)
- Discard changes (6:20)
- Portion calculation pseudo-code (12:50)
Lesson 12: Displaying Ingredient Portions
- Calculate portions (0:00)
- Nil coalescing operator (0:50)
- Modulo operator (6:30)
- suffix method (18:10)
Lesson 13: Featured View Details
- Recipe detail in popover view using .sheet modifier (2:00)
- Recipe prep time (12:25)
- array firstIndex method (15:40)
- onAppear modifier (18:30)
- Recipe highlights (20:10)
- SwiftUI custom fonts (0:35)
- SwiftUI system fonts (3:07)
- font modifier with custom font (3:40)
Free Swift and SwiftUI Tutorials
Swift Tutorials
- Complete Swift for Beginners
- Swift Video Tutorial
- Swift Video Tutorial Resources
- Swift 3 Hour Masterclass
- Learn Swift
- Swift Cheat Sheet
- Swift Try Catch Error Handling
- Swift Enum
- Swift Random Numbers
- Swift Loops
- Swift Guard Statement
- Swift Strings
- Swift Arrays
- Swift Dictionaries
- Swift Variables
- Swift Data Types
- Swift If Statements
- Swift Loops Video Pt. 1
- Swift Loops Video Pt. 2
- Swift Switch Statement
- Swift Functions Pt. 1
- Swift Functions Pt. 2
- Swift Optionals
- Swift Math Operators
- Swift Classes
- Swift Structures
- Swift Initializers
- Swift Subclassing
- Designated and Convenience Initializers
- Swift Properties
- Swift Challenges (solutions)
SwiftUI Tutorials
- SwiftUI Resource Hub
- What is SwiftUI?
- SwiftUI Tutorial
- SwiftUI Image
- SwiftUI TabView
- SwiftUI ScrollView
- SwiftUI Stacks
- SwiftUI Picker
- Building UI with SwiftUI
- SwiftUI Basic Views and Containers
- Basic SwiftUI Layout and Elements
- SwiftUI Modifiers
- War Card Game UI in SwiftUI
- SwiftUI View Update Lifecycle
- SwiftUI Buttons
- SwiftUI Button 1 Min Video
- SwiftUI State Properties
- Another State Properties Video
- SFSymbols
- SwiftUI Tutorial: Build a Slots App
- SwiftUI Data Flow and View Composition
- Improving the Slots app
- SwiftUI Animations
- SwiftUI Basics Tutorial
- SwiftUI NavigationView
- SwiftUI Handling User Input
- SwiftUI War Card Game
- SwiftUI vs UIKit
- Creating Circular Images
- How to Align 3 Images
UIKit
App Development
Xcode Tutorials
- Xcode 12 Walkthrough
- Xcode Tutorial for Beginners
- Xcode Video Tutorial
- Save Xcode Hard Drive Space
- Xcode No Storyboard Fix
- Where’s the Assistant Editor?
- Where’s the Library Pane?
- Xcode 10.2 on High Sierra
- Reseting Xcode Simulator
- What’s new in Xcode 11
- Xcode Debugging Demo
- Xcode Shortcuts
- Xcode Tip: Changing Simulator Size
Misc
Hello Chris,
Your teaching method is extremely effective. Keep up the great work. By the way, which recording software do you use to create the video tutorials.
Lots of luck in your future endeavors.
KC
Hello KC, thanks for the encouragement! Currently I’m using Camtasia to do screen recording.
How so you make text
Scroll across the screen using the new sprite kit?
Hey Randall,
I plan to cover SpriteKit in the future but for now, Ray’s got a great Sprite kit tutorial: http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners
Hope that helps!
Hey Chris, I was wondering if you are going to be talking about rss feeds in the next tutorial series? When are you expecting to have the nest tutorials out? Thanks
Hey Jon,
Working with RSS, Json and other types are feeds/data is going to be an upcoming topic. I’ve been releasing videos but forgot to update this page. Please check either Facebook or YouTube for the latest until I get a chance to update this page!
As for when the videos for working with RSS feeds will be released, i can’t give you an exact date, but it will probably be end of this month.
Thanks!
Hey, trying to work on a new app, but can’t seem to get the Store Kit working. Any vids on that subject? from start to finish?
Thanks Chris.
Hey Mike, great web app, godothings!
Unfortunately not at the immediate time but probably in December.
Have you tried looking at Ray Wenderlich’s stuff? I think he has some iOS7 books that might cover Store Kit.
Thanks for stopping by!