Autoplay
Autocomplete
Previous Lesson
Complete and Continue
iOS 13 App Development Coding Lessons
Section 1: Getting Started with iOS 13 and Swift 5.1
Introduction to the Course (4:07)
Download the Course Syllabus
How to Get All the Free Stuff (1:09)
Download your Massive Bundle of Assets
Download the 12 Rules to Learn to Code eBook
How does an App Work? (7:47)
How to Make an App (8:36)
How to Make the Most of the Bootcamp (6:45)
How to Get Help When You're Stuck (6:40)
The Giant List of Resources
Developing for iOS - Tools and Materials (10:27)
Getting set up with Xcode (3:45)
Pathfinder
Section 2: Xcode Storyboards and Interface Builder
The I am Rich App (2:57)
Let's Create a Brand New Xcode Project (6:11)
A Walkthrough of the Xcode Development Environment (14:12)
Let's Design the User Interface! (17:04)
Let's Incorporate Some Image Assets (10:35)
How to Design and Add an App Icon (9:06)
Run Your App on Your iPhone or Simulator (10:59)
App Signing and Provisioning Profile problems? I got you fam.
Join the Student Community
How to Ace this Course (1:24)
Feedback Time!
Section 3: Xcode Storyboard and Interface Builder Challenge
What You Will Create
Step 1: Create a New Xcode Project
Step 2: Add a Label Element from the Object Library
Step 3: Add an Image View to the Storyboard
Step 4: Add an App Icon
Step 5: Run Your App
Step 6: Show off your work!
Tip from Angela - Habit Building with the Calendar Trick (2:52)
Feedback Time!
Section 4: Swift Programming Basics - Collections, Constants & Variables
What You'll Make by the End of This Module (1:59)
Cloning from GitHub and How to Download the L.A.B. Project Stubs (8:23)
How to Design Your App (9:34)
Let's Link Our Design to Our Code (23:05)
Responding to User Interactions with IBActions (8:30)
Swift Deep Dive 🐦Naming Conventions, Commenting and String Interpolation (9:20)
Storing Data using Variables and Arrays (16:54)
Swift Deep Dive 🐦Variables (11:08)
How to sign up and complete the exercises on Repl.it
Swift Deep Dive 🐦Arrays (6:54)
How to Randomise the Dice Images (14:38)
⚠️ How to Solve the Error: "The maximum number of apps for free development profiles has been reached."
Swift Deep Dive 🐦Constants, the Range Operator and Randomisation (14:56)
Download the Completed App Project
Thread 1: signal SIGABRT and "Not Key Value Coding Compliant" - How to fix it (6:42)
Do You Want This?
Tip from Angela - Dealing with Distractions (2:28)
Feedback Time!
Section 5: Swift Programming Basics Challenge
What You Will Create
Step 1: Clone the Starting Project
Step 2: Design the User Interface
Step 3: Link Up the Design with Code
Step 4: Use Code to Change the 8 Ball Image
Step 5: Make the Ball Image Random
Step 6: Show off your work!
Download the Completed Project
Tip from Angela - Nothing Easy is Worth Doing! (3:35)
Feedback Time!
Section 6: Auto Layout and Responsive UIs
Why do we need Auto Layout? (2:58)
Size Classes Explained (6:34)
Setting Constraints and working with the Safe Area (8:59)
How to use Alignment and Pinning (5:52)
Working with Containers and Subviews (6:49)
Stack Views (10:27)
Auto Layout (optional) Boss Challenge
Download the Completed Project
Calculator Challenge Solution and Walkthrough (9:58)
Tip from Angela - How to Deal with Procrastination (4:07)
Feedback Time!
Section 7: Using and Understanding Apple Documentation
What You'll Make by the End of this Module (2:19)
Setting up the Xylophone Project (4:46)
The 5 Step Approach to Solve Any Programming Problem (24:41)
Swift Deep Dive 🐦Functions and Scope (10:49)
Linking Multiple Buttons to the Same IBAction (10:10)
Swift Deep Dive 🐦Functions with Inputs and Type Inference (9:58)
Playing Different Xylophone Sounds (4:30)
Boss Challenge
Download the Completed App Project
Tip from Angela - Building a Programming Habit (2:46)
Feedback Time!
Section 8: Intermediate Swift Programming - Control Flow and Optionals
What You'll Make by the End of this Module (0:47)
Setting up the Egg Timer Project and Linking the Storyboard to the ViewController (9:35)
Swift Deep Dive 🐦If-Else Control Flow (12:31)
Swift Deep Dive 🐦Switch Statements (7:36)
Conditional Statements Challenge Solution (4:53)
Swift Deep Dive 🐦Dictionaries (3:57)
Swift Deep Dive 🐦Defining and Unwrapping Optionals (11:00)
Dictionary Challenge Solution (6:17)
Implementing a Countdown Timer Challenge
Egg Timer Challenge Solution (8:12)
Showing the Timer to the User with a Progress View (5:39)
Calculating the Progress Percentage (7:39)
Using the 5 Step Approach to Debug our App (11:08)
Download the Completed App Project
Tip from Angela - Set Your Expectations (2:35)
Feedback Time!
Section 9: iOS App Design Patterns and Code Structuring
What You'll Make by the End of this Module (1:17)
Setting up the Quizzler Project and Showing the Questions (11:02)
Checking Answers using 2-Dimensional Arrays (12:28)
Swift Deep Dive 🐦Structures, Methods and Properties (23:02)
Creating a Question Struct (7:55)
Giving the User Feedback and working with a ProgressView (10:16)
Understand the MVC Design Pattern (7:57)
Implementing MVC and Understanding Parameter Names (9:47)
Swift Deep Dive 🐦Functions with Outputs and Return Types (5:55)
Refactoring to Implement the MVC Design Pattern (8:41)
Swift Deep Dive 🐦Immutability (7:29)
Using Mutating Functions to Track the Score (9:27)
Download the Completed App Project
Tip from Angela - The 20 Minute Method (2:39)
Feedback Time!
Section 10: iOS App Design Pattern Challenge
What You'll Create
Step 1: Clone the Starting Project
Step 2: Update the storyLabel and Button Titles
Step 3: Create a Structure
Step 4: Update the Story
Step 5: Apply MVC
Step 6: Make the StoryBrain more Scalable
Step 7: Show off your work!
Download the Completed App Project
Tip from Angela - Retrieval is How You Learn (2:52)
Feedback Time!
Section 11: Advanced Swift Programming - Classes, Inheritance & Advanced Optionals
What You'll Make by the End of this Module (1:23)
Learn How to Use a UISlider (14:39)
Using the UISliders to Calculate the BMI (6:42)
Swift Deep Dive 🐦Classes and Inheritance (22:05)
Swift Deep Dive 🐦Structs 🤜 v.s. 🤛Classes (13:11)
How to Use the Docs in Xcode and Create a Custom UIViewController Class (7:09)
How to Create a UI Programatically and Pass Data between ViewControllers (13:07)
Segues and Navigation for Multi-Screen Apps (24:58)
Adopting MVC by Creating a CalculatorBrain (11:03)
Swift Deep Dive 🐦Optional Binding, Optional Chaining, and the Nil Coalescing Operator (13:52)
Use Optionals in Practice and Add the Finishing Touches with Colour Literals (22:01)
Download the Completed App Project
Tip from Angela - Learning Before you Eat (2:06)
Feedback Time!
Section 12: Advanced Swift Programming Challenge
What You'll Make
Step 1: Clone the Starting Project
Step 2: Create IBActions and IBOutlets for the Calculator Screen
Step 3: Create IBActions and IBOutlets for the Results Screen
Step 4: Figure out how much Tip to Apply
Step 5: Figure out how Many People to Split the Bill Between
Step 6: Calculate the Bill
Step 7: Pass the Result to the ResultsViewController
Download the Completed App Project
Tip from Angela - Dealing with Lack of Progress (3:08)
Feedback Time!
Section 13: Networking, JSON Parsing, APIs and Core Location
What You'll Make by the End of This Module (1:43)
Dark Mode and Working with Vector Assets (11:41)
Learn to use the UITextField (20:05)
Swift Deep Dive 🐦Protocols (19:52)
The Delegate Design Pattern (11:51)
An Example of Protocols and Delegates in Practice (17:39)
Understanding the OpenWeather API and URL Parameters (16:58)
Use the URLSession for Networking (18:16)
Swift Deep Dive 🐦Closures (20:44)
JSON Decoding (21:35)
Create a WeatherModel and Understand Computed Properties (15:33)
Typealiases and a Protocols and Delegate Challenge (10:54)
Swift Deep Dive 🐦Internal and External Parameter Names (2:28)
Method Naming Conventions and Error Handling (5:45)
Updating the UI by Using the DispatchQueue (6:56)
Swift Deep Dive 🐦Extensions and Default Implementations for Protocols (18:53)
Using Extensions to Refactor the ViewController (6:29)
Using CoreLocation to get Location Data (26:04)
What is a Property List (.plist)?
Download the completed app project
Tip from Angela - Mixing Knowledge (2:20)
Feedback Time!
Section 14: Networking and API Challenge
What You Will Make
Step 1: Clone the Starting Project
Step 2: UIPickerView Functionality
Introducing coinapi.io (3:14)
Step 3: Make the API Request
Step 4: Parse the JSON Data
Step 5: Update the User Interface Using the Delegate Pattern
Step 6: Refactor with Extensions
Download the Completed App Project
Tip from Angela - Dealing with Frustration (2:31)
Feedback Time!
Section 15: Firebase Cloud Firestore, TableViews and Cocoapod Dependencies
What You'll Make by the End of this Module (2:28)
Navigation Controller Stacks and Segues (14:09)
Typing Animations, Timers and For Loops (10:52)
[Swift Deep Dive] Loops (17:24)
Introduction to 3rd Party Libraries (5:54)
Cocoapods Installation Instructions (8:38)
How to Install a Pod to your Project (7:21)
Potential Problems with Pod Installation (9:10)
How to use the CLTypingLabel Pod (8:25)
How to Choose your Package Manager (5:06)
Adding Firebase to your Project (9:53)
Registering New Users (15:20)
Logging in Existing Users (8:12)
Logging Out Users (9:43)
Using a Constants File and Understanding the static Keyword (11:03)
How to use a UITableView and Create a Message Model (17:51)
Customising Cells in a TableView using a .xib File (13:24)
[Swift Deep Dive] Casting as? as! as is and understanding Any (24:48)
Database setup and Saving Data to Firestore (17:17)
Retrieving Data from Firestore (15:14)
Listening for Updates on Firestore (4:50)
How to Sort Data retrieved from Firestore (7:43)
How to Manage the Keyboard and use the Swift Package Manager (14:22)
Finishing Touches: UI and UX Improvements (26:06)
The ViewController Lifecycle Explained (10:52)
The App Lifecycle Methods Explained (10:46)
Download the Completed App Project
Tip from Angela - Sleep is My Secret Weapon (3:48)
Feedback Time!
Section 16: The Command Line and Terminal
Introduction to the Command Line (6:53)
Command Line Shortcuts (12:52)
Directory and File Manipulation Using the Command Line (10:40)
Feedback Time!
Section 17: SwiftUI and Declarative Programming
What is SwiftUI? (9:00)
How to Build a SwiftUI App from Scratch (13:57)
Download the Completed I am Rich SwiftUI Project
How to Create Complex Designs and Layouts using SwiftUI (31:24)
Bug Alert! Text Not Displaying Correctly in Dark Mode
Download the Completed MiCard SwiftUI Project
SwiftUI Dicee Part 1 - Designing a Layout using Spacers and Subviews (13:07)
SwiftUI Dicee Part 2 - Building in Functionality and Managing State (7:31)
Download the Completed Dicee SwiftUI Project
H4X0R News Part 1 - Understanding the List and Identifiable Protocol (12:36)
H4X0R News Part 2 - Networking in SwiftUI (11:43)
H4X0R News Part 3 - The Observer Design Pattern (9:46)
H4X0R News Part 4 - Using UIKit Components with SwiftUI (15:06)
Bug Alert! List Only Shows 1 Line and Truncates Text
Download the Completed H4X0R News SwiftUI Project
Running your iOS App on a Mac with Project Catalyst (5:05)
Tip from Angela - How to Solidify Your Knowledge (2:55)
Feedback Time!
Section 18: Git, GitHub and Version Control
Introduction to Version Control (2:35)
Version Control With Git and the Command Line (15:02)
GitHub and Remote Repositories (11:00)
Gitignore (12:02)
Cloning Repositories (5:05)
Branching and Merging (17:25)
Using Xcode for Source Control (19:39)
Forking and Pull Requests (17:08)
Optional Challenge
Tip from Angela - Spaced Repetition (4:01)
Feedback Time!
Section 19: Local Data Persistance - User Defaults, Core Data and Realm
The Clear App Clone that You'll Build By the End of this Module (2:58)
Subclassing a UITableViewController (16:05)
TableView Delegate Methods and Accessories (7:45)
Creating a Textfield inside a UIAlert (17:40)
Why Do We Need Persistent Data Storage (8:29)
Persistent Local Data Storage Using UserDefaults (9:00)
UserDefaults Explained (8:36)
🚩Advanced Swift - Singletons (5:25)
A Quick Note About the Next Lesson
Creating a Custom Data Model (17:51)
🚩Advanced Swift - Ternary Operator (3:05)
Restructuring Our App with MVC (4:52)
The Concept of iOS Sandboxing (3:41)
Encoding Data with NSCoder (13:06)
Decoding Data with NSCoder (7:39)
Introduction to Databases (10:12)
How to Setup and Configure Core Data (18:33)
How to Save Data with Core Data (7:29)
How to View Your SQLite Database Backend (4:35)
Core Data Fundamentals (7:30)
Reading Data from Core Data (4:50)
Updating Data with Core Data (2:30)
Removing Data from Core Data (5:18)
How to Implement a UISearchBar and Querying Data with Core Data (26:07)
How to Go Back to the Original List (7:21)
How to Create Relationship Graphs in Core Data (13:55)
Solution to Challenge - Setting Up CategoryViewController (12:09)
Adding the Delegate Method (15:54)
Introduction to Realm (15:41)
How to Save Data Using Realm (15:29)
Fetching Data from Realm (20:20)
Updating Data with Realm (3:32)
Removing Data from Realm (2:35)
A Quick Note About the Next Lesson
Querying Data Using Realm (11:04)
Review of How Our App uses Realm to Persist Data (11:28)
Making Our Cells Swipeable (21:21)
Inheriting from SwipeTableViewController (17:03)
[Solution to Challenge] Inheriting from SwipeTableViewController (5:50)
Adding Colour to Our App (8:12)
[Solution to Challenge] Persisting the Colour Property (6:49)
Creating Gradient Flow Cells (20:12)
A Quick Note About the Next Lesson
Updating the UI of the Navigation Bar (20:22)
The Completed App Project
Tip from Angela - Location, Location, Location! (1:40)
Feedback Time!
Section 20: In-App Purchases and Apple StoreKit
What You'll Need to Implement In-App Purchases (5:40)
Download the Skeleton Project
Checkout the Skeleton Project (2:44)
Setup Your New In-App Purchase on App Store Connect (14:25)
Create an Inspirational Quotes App (8:22)
Detecting When the User Wants to Make a Purchase (9:25)
Implementing the In-App Purchase Using Apple StoreKit (12:51)
Creating Sandbox Users and Testing In-App Purchases (12:03)
Giving Users Access to Purchased Content (11:33)
Restoring In-App Purchases (7:07)
Download the Completed App Project
Tip from Angela - Use Accountability in your Favour (2:56)
Feedback Time!
Section 21: Advanced Swift Classroom - Part 1
Introduction to the Advanced Section
Advanced Swift Properties (2:25)
A Quick Note About the Next Lesson
Getters (8:31)
Setters (2:40)
Computed Properties (5:33)
Observed Properties (5:52)
Advanced Swift Properties Challenge (7:52)
Tip from Angela - When Life Gives You Lemons (6:01)
Feedback Time!
Section 22: Advanced Swift Classroom - Part 2
What We'll Make (2:25)
Download the Skeleton Project
Accumulating Numbers in the Calculator (14:50)
Swift Access Levels (17:01)
Download the Access Levels Quiz Stub
Swift Access Levels Quiz
Swift Access Levels Answers
Advanced Swift Optionals (13:01)
Adding More Functionality to Our Calculator (4:27)
Dealing with the Decimal Place (5:30)
Refactoring with Computed Properties (6:58)
Conforming to MVC (17:54)
Swift Structs vs. Classes - The Theory (5:56)
Swift Structs vs. Classes - In Practice (25:05)
How to Turn Our Model into a Struct (12:17)
Swift Tuples (4:20)
Guard Let vs. If Let and Finalising the Calculator (18:42)
Download the Completed App Project
Tip from Angela - Find All the Hard Working People (2:01)
Feedback Time!
Section 23: CoreML and Machine Learning
Introduction to Machine Learning (5:02)
Supervised Learning (14:09)
Unsupervised Learning (6:09)
Reinforcement Learning (7:14)
What is CoreML? (6:51)
What we'll be making (2:21)
How to Import the Image Recognition Model & Enable Camera Functionality (21:55)
Getting Image Recognition Results Back from Our V3 Model (14:24)
Hotdog or Not Hotdog? (7:16)
Download the Completed App Project
Tip from Angela - Daily Routines (2:34)
Feedback Time!
Section 24: Advanced CoreML - CoreML Tools & Converting Models
What we'll be making (4:01)
Installing CoremlTools using Python PIP (9:18)
Converting a Caffe Model into MLModel (11:58)
[Challenge] - Set up a UIImagePickerController (1:41)
[Solution] - Setting up a UIImagePickerController (5:54)
[Challenge] Getting Classifications from Our Model (1:00)
[Solution] Getting Classifications from our Model (9:01)
[Challenge] Adding Cocoapods to Our Project (3:06)
[Solution] Adding Cocoapods to Our Project (1:48)
[Challenge] Making HTTP GET requests to Wikipedia using Alamofire and REST (6:14)
[Solution] Making HTTP GET requests to Wikipedia using Alamofire and REST (3:42)
[Challenge] Parsing the JSON Result using SwiftyJSON (2:09)
[Solution] Parsing the JSON Result using SwiftyJSON (5:56)
Displaying Images From a URL using SDWebImage (5:15)
[Bonus Lesson] Creating the App Icon From Scratch and Styling the App (6:47)
Download the Completed App Project
Tip from Angela - Deep Work (3:01)
Feedback Time!
Section 25: CreateML - Building Your Own Machine Learning Model from Scratch
Introduction to CreateML (4:37)
How to Gather Data for Training (10:02)
How to Train a Brand New Machine Learning Model (12:59)
[Challenge] Build Your Own Machine Learning Model (6:48)
Download the Completed Model
Tip from Angela - One Step at a Time (2:54)
Feedback Time!
Section 26: CreateML & Natural Language Processing (NLP)
What We're Making (6:13)
Using CreateML for Natural Language Processing (20:45)
How to Sign Up as a Twitter Developer (13:23)
Setting Up the Swifter Framework (17:11)
How to Fetch Live Twitter Data (13:18)
Performing Sentiment Classification (6:17)
Parsing Tweet Data in JSON (10:16)
Making Batch Predictions (10:20)
Updating the User Interface of Our App (8:05)
Code Refactoring (8:51)
Download the Completed App Project
Tip from Angela - Discipline Breeds Discipline (2:20)
Feedback Time!
Section 27: ARKit & Augmented Reality Apps
Introduction to Augmented Reality and ARKit (8:06)
How to Setup and Configure Your Project for AR (11:58)
How to Create a 3D Object in Augmented Reality (9:24)
Bring the Moon into Your Living Room Using AR (3:43)
How to Find and Import 3D Models for AR (11:30)
How to Detect Horizontal Planes in the Real World (18:19)
How to Detect Touch on Real World 3D Objects (7:08)
How to Place Our Dice in 3D Using Touch (6:49)
How to Animate 3D Objects in AR (6:17)
How to Animate and Roll all the 3D Dice at Once (5:01)
How to Remove Our 3D Objects from the AR Scene (2:35)
[Optional Lesson] Refactoring Our Code for Better Readability (8:39)
Download the Completed App Project
Tip from Angela - Dealing with Limitations (5:22)
Feedback Time!
Section 28: Advanced ARKit
What We'll Make By the End of this Module (0:33)
Detecting the Start and End Points of Our Measurement (12:20)
Calculating the Distance Between Two 3D points (15:05)
Creating 3D Text in the AR Scene (7:08)
Resetting the Measurements (5:12)
Download the Completed App Project
Feedback Time!
Section 29: ARKit 2 and Live Tracking
What We'll Make - Pokemon 3D (4:36)
Adding Tracking Images (13:17)
How to Add Plane to Card (9:44)
Converting 3D Models to the New USDZ File Format (7:47)
Adding 3D Pokemon Modes to Card Tracking (11:11)
Tracking Multiple Pokemons (14:15)
Download the Completed Project
Feedback Time!
Section 30: ARKit 2 & Live Video
What We'll Make - A Magical Newspaper (1:18)
How to Source the Assets (4:01)
[Challenge] Detecting Images in AR (12:26)
Video Playback in AR (8:35)
Download the Completed App Project
Feedback Time!
Section 31: How to Submit Your App to the App Store
How to Publish Your App on the App Store (10:54)
Resources to Check Out When You're Ready to Publish
Useful Tools to Help You With App Submission (2:43)
Feedback Time!
Section 32: What's Next? How to Become a Pro iOS Developer
What Modules Do You Want to See?
Where to Go From Here? (12:23)
Monthly Student-Built App Showcase
Bonus Module: Ask Angela Anything
AAA 1 - How to Soak in Programming Concepts & much more (39:42)
AAA 2 - Schedule for Learning to Code & much more (39:08)
AAA 3 - How to Start Freelancing & much more (25:19)
Feedback Time!
Bonus Module: How to Make an App from Beginning to End
How to Make an App From Beginning to End [Full Talk] (51:01)
Tip from Angela - Dealing with Limitations
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock