Intro to the Course. What's coming up? 
 
Download the Course Syllabus 
 
The Giant List of Resources 
 
How to Get All the Free Stuff 
 
Download your Massive Bundle of Assets 
 
Download the 12 Rules to Learn to Code eBook PDF 
 
How to Make the Most of the Bootcamp 
 
How to Get Help When You're Stuck 
 
Can I use Windows to develop iOS apps? (and other FAQs) 
 
Developing for iOS - Tools and Materials 
 
Getting set up with Xcode 
 
A Note About the Next Lesson 
 
Let's Create a Brand New Xcode Project 
 
A Walkthrough of the Xcode Development Environment 
 
Let's Design the User Interface! 
 
Let's Incorporate Some Image Assets 
 
How to Design and Add an App Icon 
 
A Note About the Next Lesson 
 
Run Your App on Your iPhone or Simulator 
 
Join the Student Community 
 
What You'll Make by the End of This Module 
 
Cloning from GitHub and How to Download the L.A.B. Project Stubs 
 
Let's Link Our Design to Our Code 
 
Responding to User Interactions with IBActions 
 
Bug Hint ?Thread 1: signal SIGABRT and "Not Key Value Coding Compliant" 
 
[Swift Deep Dive] Naming Conventions Commenting and String Interpolation 
 
Storing Data using Variables and Arrays 
 
[Swift Deep Dive] Variables 
 
[Coding Exercise] Variables 
 
How to Randomise the Dice Images 
 
?How to Solve the Error: "Maximum number of apps for free development reached" 
 
[Swift Deep Dive] Constants the Range Operator and Randomisation 
 
[Code Exercise] Constants 
 
[Code Exercise] Randomisation 
 
Download the Completed App Project 
 
Tip from Angela - Dealing with Distractions 
 
What You'll Make by the End of this Module 
 
Setting up the Xylophone Project 
 
The 5 Step Approach to Solve Any Programming Problem 
 
[Swift Deep Dive] Functions and Scope 
 
[Coding Exercise] Functions Part 1 
 
Linking Multiple Buttons to the Same IBAction 
 
[Swift Deep Dive] Functions with Inputs and Type Inference 
 
[Coding Exercise] Functions Part 2 
 
Playing Different Xylophone Sounds 
 
Download the Completed App Project 
 
Tip from Angela - Building a Programming Habit 
 
What You'll Make by the End of this Module 
 
Setting up the Egg Timer Project and Linking the Storyboard and ViewController 
 
[Swift Deep Dive] If-Else Control Flow 
 
[Coding Exercise] IF/ELSE 
 
[Swift Deep Dive] Switch Statements 
 
Conditional Statements Challenge Solution 
 
[Swift Deep Dive] Dictionaries 
 
[Coding Exercise] Dictionaries 
 
[Swift Deep Dive] Defining and Unwrapping Optionals 
 
[Coding Exercise] Optionals 
 
Dictionary Challenge Solution 
 
Implementing a Countdown Timer Challenge 
 
Egg Timer Challenge Solution 
 
Showing the Timer to the User with a Progress View 
 
Calculating the Progress Percentage 
 
Using the 5 Step Approach to Debug our App 
 
Download the Completed App Project 
 
Tip from Angela - Set Your Expectations 
 
What You'll Make by the End of this Module 
 
Setting up the Quizzler Project and Showing the Questions 
 
Checking Answers using 2-Dimensional Arrays 
 
[Swift Deep Dive] Structures Methods and Properties 
 
[Coding Exercise] Structures 
 
Creating a Question Struct 
 
Giving the User Feedback and working with a ProgressView 
 
Understand the MVC Design Pattern 
 
Implementing MVC and Understanding Parameter Names 
 
[Swift Deep Dive] Functions with Outputs and Return Types 
 
[Coding Exercise] Functions Part 3 
 
Refactoring to Implement the MVC Design Pattern 
 
[Swift Deep Dive] Immutability 
 
Using Mutating Functions to Track the Score 
 
Download the Completed App Project 
 
Tip from Angela - The 20 Minute Method 
 
What You'll Make by the End of this Module 
 
Learn How to Use a UISlider 
 
Using the UISliders to Calculate the BMI 
 
[Swift Deep Dive] Classes and Inheritance 
 
[Swift Deep Dive] Structs v.s. Classes 
 
How to Use the Docs in Xcode and Create a Custom UIViewController Class 
 
How to Create a UI Programatically and Pass Data between ViewControllers 
 
Segues and Navigation for Multi-Screen Apps 
 
Adopting MVC by Creating a CalculatorBrain 
 
[Swift Deep Dive] Optional Binding Chaining and the Nil Coalescing Operator 
 
Use Optionals in Practice and Add the Finishing Touches with Colour Literals 
 
Download the Completed App Project 
 
Tip from Angela - Learning Before you Eat 
 
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 
 
What You'll Make by the End of This Module 
 
Dark Mode and Working with Vector Assets 
 
Learn to use the UITextField 
 
[Swift Deep Dive] Protocols 
 
The Delegate Design Pattern 
 
An Example of Protocols and Delegates in Practice 
 
Understanding the OpenWeather API and URL Parameters 
 
Use the URLSession for Networking 
 
[Swift Deep Dive] Closures 
 
Create a WeatherModel and Understand Computed Properties 
 
Typealiases and a Protocols and Delegate Challenge 
 
[Swift Deep Dive] Internal and External Parameter Names 
 
Method Naming Conventions and Error Handling 
 
Updating the UI by Using the DispatchQueue 
 
[Swift Deep Dive] Extensions and Default Implementations for Protocols 
 
Using Extensions to Refactor the ViewController 
 
Using CoreLocation to get Location Data 
 
What is a Property List (.plist)? 
 
Download the Completed App Project 
 
Tip from Angela - Mixing Knowledge 
 
What You'll Make by the End of this Module 
 
Navigation Controller Stacks and Segues 
 
Typing Animations Timers and For Loops 
 
Fibonacci Solution Code File 
 
Introduction to 3rd Party Libaries 
 
Cocoapods Installation Instructions 
 
How to Install a Pod to your Project 
 
Potential Problems with Pod Installation 
 
How to use the CLTypingLabel Pod 
 
How to Choose your Package Manager 
 
Adding Firebase to your Project 
 
Logging in Existing Users 
 
Using a Constants File and Understanding the static Keyword 
 
How to use a UITableView and Create a Message Model 
 
Customising Cells in a TableView using a .xib File 
 
[Swift Deep Dive] Casting as? as! as is and understanding Any 
 
Database setup and Saving Data to Firestore 
 
Retrieving Data from Firestore 
 
Listening for Updates on Firestore 
 
How to Sort Data retrieved from Firestore 
 
How to Manage the Keyboard and use the Swift Package Manager 
 
Finishing Touches: UI and UX Improvements 
 
The ViewController Lifecycle Explained 
 
The App Lifecycle Methods Explained 
 
Download the Completed App Project 
 
Tip from Angela - Sleep is My Secret Weapon 
 
How to Build a SwiftUI App from Scratch 
 
Download the Completed I am Rich SwiftUI Project 
 
How to Create Complex Designs and Layouts using SwiftUI 
 
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 
 
SwiftUI Dicee Part 2 - Building in Functionality and Managing State 
 
Download the Completed Dicee SwiftUI Project 
 
H4X0R News Part 1 - Understanding the List and Identifiable Protocol 
 
H4X0R News Part 2 - Networking in SwiftUI 
 
H4X0R News Part 3 - The Observer Design Pattern 
 
H4X0R News Part 4 - Using UIKit Components with SwiftUI 
 
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 
 
Tip from Angela - How to Solidify Your Knowledge 
 
The Clear App Clone that You'll Build by the End of this Module 
 
Subclassing a UITableViewController 
 
TableView Delegate Methods and Accessories 
 
Creating a Textfield Inside UIAlert to Add New Items 
 
Why Do We Need Persistent Local Data Storage? 
 
Persistent Local Data Storage Using UserDefaults 
 
[Advanced Swift] The Swift Singleton Object 
 
A Quick Note About the Next Lesson 
 
Creating a Custom Data Model 
 
[Advanced Swift] The Swift Ternary Operator 
 
Restructuring Our App with MVC 
 
The Concept of iOS Sandboxing 
 
Encoding Data with NSCoder 
 
Decoding Data with NSCoder 
 
Introduction to Databases 
 
How to Set up and Configure Core Data 
 
How to Save Data with Core Data (Create in CRUD) 
 
How to View Your SQLite Database Backend for Core Data 
 
Reading Data from Core Data (Read in CRUD) 
 
Updating Data with Core Data (Update in CRUD) 
 
Removing Data from Core Data (Delete in CRUD) 
 
How to Implement a UISearchBar and Querying with Core Data 
 
How to Go Back to the Original List? 
 
How to Create Relationship Graphs in Core Data 
 
[Solution to Challenge] Setting Up CategoryViewController 
 
Adding the Delegate Method 
 
How to Save Data Using Realm (Create in CRUD) 
 
Fetching Data from Realm (Read in CRUD) 
 
Updating Data with Realm (Update in CRUD) 
 
Removing Data from Realm (Delete in CRUD) 
 
A Quick Note About the Next Lesson 
 
Querying Data Using Realm 
 
Review of How Our App Uses Realm for Data Persistence 
 
Making Our Cells Swipeable 
 
Inheriting from SwipeTableViewController 
 
[Solution to Challenge] Inheriting from SwipeTableViewController 
 
[Solution to Challenge] Persisting the Colour Property 
 
Creating Gradient Flow Cells 
 
A Quick Note About the Next Lesson 
 
Updating the UI of the Navigation Bar 
 
The Completed App Project 
 
Tip from Angela - Location Location Location! 
 
What You'll Need to Implement In-App Purchases 
 
Download the Skeleton Project 
 
Check out the Skeleton Project 
 
Setup Your In-App Purchase on App Store Connect 
 
Create an Inspirational Quotes App 
 
Detecting When a User Wants to Make a Purchase 
 
Implementing the In-App Purchase with Apple StoreKit 
 
A Quick Note About the Next Lesson 
 
Create Sandbox Users on the App Store to Test In-App Purchases for Free 
 
Giving Users Access to Purchased Content 
 
Restoring In-App Purchases 
 
Download the Completed App Project 
 
Tip from Angela - Use Accountability in your Favour 
 
What We'll Make - Calculator 
 
Download the Skeleton Project 
 
Accumulating Numbers in the Calculator 
 
Adding More Functionality to Our Calculator 
 
Dealing with the Decimal Place 
 
Refactoring with Computed Properties 
 
Swift Structs vs. Classes - The Theory 
 
Swift Structs vs. Classes - In Practice 
 
How to Turn Our Model into a Struct 
 
Guard Let vs. If Let When to Use Which? 
 
Download the Completed App Project 
 
Tip from Angela - Find All the Hard Working People 
 
Installing CoremlTools using Python PIP 
 
Converting a Caffe Model into MLModel 
 
[Challenge] - Set up a UIImagePickerController 
 
[Solution] - Setting up a UIImagePickerController 
 
[Challenge] Getting Classifications from Our Model 
 
[Solution] Getting Classifications from our Model 
 
[Challenge] Adding Cocoapods to Our Project 
 
[Solution] Adding Cocoapods to Our Project 
 
[Challenge] Making HTTP GET requests to Wikipedia using Alamofire and REST 
 
[Solution] Making HTTP GET requests to Wikipedia using Alamofire and REST 
 
[Challenge] Parsing the JSON Result using SwiftyJSON 
 
[Solution] Parsing the JSON Result using SwiftyJSON 
 
Displaying Images From a URL using SDWebImage 
 
[Optional Lesson] Creating the App Icon From Scratch and Styling the App 
 
Download the Completed App Project 
 
Tip from Angela - Deep Work 
 
What We'll Make - Twitter Sentiment Analysis 
 
Using CreateML for Natural Language Processing 
 
How to Sign Up as a Twitter Developer 
 
Setting Up the Swifter Framework 
 
How to Fetch Live Twitter Data 
 
Performing Sentiment Classification 
 
Parsing Tweet Data in JSON 
 
Updating the User Interface of Our App 
 
Download the Completed App Project 
 
Tip from Angela - Discipline Breeds Discipline 
 
Introduction to Augmented Reality and ARKit 
 
How to Setup and Configure Your Project for AR 
 
How to Create a 3D Object in Augmented Reality 
 
Bring the Moon into Your Living Room Using AR 
 
How to Find and Import 3D Models for AR 
 
How to Detect Horizontal Planes in the Real World 
 
How to Detect Touch on Real World 3D Objects 
 
How to Place Our Dice in 3D Using Touch 
 
How to Animate 3D Objects in AR 
 
How to Animate and Roll all the 3D Dice at Once 
 
How to Remove Our 3D Objects from the AR Scene 
 
[Optional Lesson] Refactoring Our Code for Better Readability 
 
Download the Completed App Project 
 
Tip from Angela - Dealing with Limitations 
 
Introduction to App Design 
 
Why Design is Important for an App Entrepreneur 
 
Designer vs. Non-Designer Thinking 
 
Understanding the Mood of Your Colour Palette 
 
How to Combine Colours to Create Colour Palettes 
 
Tools for Designing with Colour 
 
Further Reading on Designing with Colour 
 
Introduction to Typography 
 
The Serif Type Family - Origins and Use 
 
The Sans-Serif Type Family - Origins and Use 
 
How Typography Determines Readability 
 
How to Combine Fonts Like a Pro 
 
Further Reading on Typography 
 
What is User Interface (UI) Design? 
 
The Tour Guide Approach to UI Design 
 
The Importance of Alignment 
 
What is Good Practice in Interaction Design 
 
Colour in User Interface Design 
 
The Many Ways of Designing Text Overlays 
 
How to Be an Attention Architect 
 
Further Reading on User Interface Design 
 
What is User Experience (UX) Design? 
 
Further Reading on User Experience Design 
 
The Devil is in the Details 
 
Differences in Icon Design 
 
Flat Design vs. Material Design 
 
Differences in Establishing Visual Hierarchy 
 
iOS and Android Design Guidelines 
 
Step1 - Design Patterns and Colour Palettes 
 
Where to Find Design Patterns and Colour Palettes 
 
Step 2 - How to Create a User Flow Diagram 
 
Step 3 - How to Create Wireframes 
 
Step 4 - How to Create Professional Mockups 
 
Tools for Creating Mockups 
 
How to Use Sketch to Create Mockups 
 
[Optional] Watch me Create a Mock up Using Sketch 
 
How to Use Canva to Create Mockups 
 
Your Turn to Create Your Own Mockups 
 
Tools and Resources for Creating Mockups 
 
Step 5 - How to Create an Animated App Prototype 
 
Tools and Resources for Creating Prototypes 
 
Your Turn to Create a Prototype 
 
Where to Find Free-For-Commercial-Use Image Assets 
 
Where to Find Free-For-Commercial-Use Icons 
 
How to Keep Designing and Improving 
 
Tip from Angela - Step Up to Challenges 
 
The Importance of App Marketing 
 
The Fallacy of Build it and They Will Come 
 
The Importance of Idea Validation 
 
1. The Simplest Way of Validating Your Idea - The Starbucks Method 
 
2. Using Google Trends to Estimate the Size of Your Market 
 
3. The Landing Page Validation Method 
 
How to Create a Landing Page Website in Less than an Hour 
 
4. Creating a Minimum Viable Product 
 
5. Using Crowd-funding to Validate and Fund Your Idea 
 
How to Monetise Your App on iOS vs. Android 
 
When You Should Create a Paid App 
 
When to use In-App Advertisements 
 
How You Thought About These Alternative Monetisation Models? 
 
How to Get an App icon Designed without Breaking the Bank 
 
Split Testing for Super Success 
 
What Makes a Good App Icon? 
 
The Dos and Don'ts of Making App Screenshots 
 
Tools for Building Screenshots 
 
Your First 1000 Customers 
 
The All Important Landing Page 
 
Blogging Your Way to Success 
 
Content Marketing for App Downloads 
 
How to Successfully Launch on Product Hunt 
 
How to Launch on Beta List 
 
How to Launch on Hacker News 
 
If At First You Don't Succeed... 
 
Social Referrals and Social Queuing 
 
How to Make Social Media Work for You 
 
Not All Press is Created Equal 
 
How to Figure Out Which Journalists to Pitch 
 
How to Find Anyone's Email Address 
 
How to Pitch a Journalist 
 
Just-Add-Water Journalist Pitch Email 
 
Establishing a Relationship with a Journalist 
 
What if You Still Can't Get Anyone to Write About You? 
 
Final Tips on Getting Press 
 
How to Get Featured on the App Store? 
 
Work with the Corporate Mindset 
 
Native vs. Cross-Platform Apps 
 
Tips and Tricks for Getting Featured 
 
What is App Store Optimisation (ASO)? 
 
Top Tips to Optimise Your App Store Listing 
 
Using Apple Search Ads as a Research Tool 
 
Early vs. Late Game Strategies 
 
Differences Between Google Play and Apple App Store 
 
When to use Paid Advertising or App Marketing 
 
Always Test Before You Advertise 
 
Which Platform to Advertise On? 
 
How to Setup Your Facebook Ad 
 
Use Your Competitors' Ad Budget 
 
Where Can I Find More Customers? 
 
One Weird Trick to Get More Money from Apple 
 
How to Get More 5 Star Ratings and Reviews 
 
Use This Free Tools to Monitor Your App Reviews 
 
How to use App Analytics to Increase User Retention 
 
A 5 Second Way of Building a Web Page for Your iOS App 
 
How to Use Bootstrap to Build Your App Showcase Website 
 
It's Time to Work Out Your Marketing Strategy 
 
Tip from Angela - Decision Fatigue