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

Recommended Resources

If you’re new to CodeWithChris, start with our recommended picks.

CWC+ Lesson Index

CWC+ Courses Index

A topic index of all the lessons in our CWC+ program.

Free Swift and SwiftUI Tutorials

Free Swift and SwiftUI Tutorials

A collection of videos and articles across all of our properties.


14 Day Beginner Challenge

14 Day Beginner Challenge

Follow this challenge to start your App Journey!

Learn Swift

Learn Swift for Beginners

Learn swift programming even if you have no coding experience!

How to make an app in 10 steps

App Idea to Launch

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

 Xcode tutorial for beginners

Xcode Tutorial For Beginners

My ultimate guide to using Xcode for beginners

xcode on windows

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.

SwiftUI Foundations Course

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)

Lesson 7: Swift Functions

  • 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)

Lesson 8: Swift Structures

  • Swift Structures (0:59)
  • Declaring Structs (2:25)
  • Struct Example (4:58)
  • Variable Scope (7:56)
  • Computed Properties (10:55)

Lesson 9: Swift Instances

  • Creating Structure Instances (0:57)
  • Structs as Data Types (4:05)
  • Access Control and Access Labels (11:52)
  • Example of Instances (14:17)

Lesson 10: SwiftUI Buttons

  • 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)

Lesson 11: State Properties

  • 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

Lesson 1: What You’ll Learn

  • Overview (0:00)

Lesson 2: Swift Arrays

  • 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)

Lesson 3: SwiftUI Lists

  • SwiftUI List Syntax (1:23)
  • Dynamic List (4:00)
  • NavigationView and NavigationLink (9:07)
  • NavigationBarTitle (9:50)

Lesson 4: Swift Loops

  • For-In Loop Syntax (0:52)
  • For Loop with Arrays (4:15)
  • Repeat While Loop (7:15)
  • While Loop (9:26)

Lesson 5: Swift Classes

  • 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)

Lesson 8: Data Flow in MVVM

  • ObservableObject Protocol (2:49)
  • ObservedObject Property Wrapper (3:05)
  • @Published Property Wrapper (4:05)

Lesson 9: Swift Optionals

  • 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)

Lesson 10: Swift Dictionary

  • 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)

Lesson 12: Parsing JSON

  • 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)

Lesson 13: Recipe List App

  • 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)

Lesson 2: GitHub and Xcode

  • 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)

Lesson 3: Working with GitHub

  • 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

Lesson 1: Introduction

  • 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)

Lesson 3: TabViews

  • 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)

Lesson 4: GeometryReader

  • 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)

Lesson 5: Updating JSON Data

  • Adding new JSON (2:08)
  • Fixing JSON parsing (2:52)
  • Browsing GitHub commits (10:02)

Lesson 6: EnvironmentObject

  • Adding new SwiftUI View (0:59)
  • Review data flow options (3:58)
  • environmentObject modifier (6:38)
  • Implementing environmentObject in Xcode (7:20)

Lesson 7: FeaturedView

  • Swipe-able cards using tabViewStyle and PageTabViewStyle (5:34)
  • Drop Shadow modifier (8:43)
  • Customize the shadow effect (17:19)

Lesson 8: Lazy Stacks

  • Hiding NavigationBarTitle (2:12)
  • List with ScrollView and ForEach (4:09)
  • LazyVStack (4:50)

Lesson 9: SwiftUI Picker

  • 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)

Lesson 14: Styling

  • SwiftUI custom fonts (0:35)
  • SwiftUI system fonts (3:07)
  • font modifier with custom font (3:40)


Free Swift and SwiftUI Tutorials

8 Comments

  1. 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

  2. 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!

  3. 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!

Comments are closed.

35 Shares
Share
Tweet
Pin
Share
Buffer