Course Highlights
  • You will create a portfolio of 15 apps to be able apply for junior developer jobs at a technology company
  • You will learn Xcode, UIKit and SwiftUI, ARKit, CoreML and CoreData.
  • You will learn by doing, where every lesson is incorporated into a real-world app project.
  • After the course, you will be able to build any app you want.
  • Start your own app based business
  • Become a digital nomad by working as a freelance iOS developer
  • Master creating Augmented Reality apps using Apple’s new ARKit
  • Create apps that use Machine Learning using Apple’s new CoreML
  • Master app design so you'll know how to wireframe, mockup and prototype your app idea
  • Master app marketing so you can publish your apps and generate downloads
Curriculum

14 Topics
Intro to the Course. What's coming up?
Download the Course Syllabus
The Giant List of Resources
How does an App Work?
How to Make an App
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
Pathfinder

11 Topics
The I am Rich App
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
How to Ace this Course

8 Topics
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

20 Topics
What You'll Make by the End of This Module
Cloning from GitHub and How to Download the L.A.B. Project Stubs
How to Design Your App
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
[Swift Deep Dive] Arrays
[Code Exercise] Arrays
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
Do You Want This?
Tip from Angela - Dealing with Distractions

9 Topics
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!

10 Topics
Why do we need Auto Layout?
Size Classes Explained
Setting Constraints and working with the Safe Area
How to use Alignment and Pinning
Working with Containers and Subviews
Stack Views
Auto Layout (Optional) Boss Challenge
Download the Completed Project
Calculator Challenge Solution and Walkthrough
Tip from Angela - How to Deal with Procrastination

12 Topics
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
Boss Challenge
Download the Completed App Project
Tip from Angela - Building a Programming Habit

19 Topics
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
[Coding Exercise] Switch
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

16 Topics
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

10 Topics
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

13 Topics
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

10 Topics
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

21 Topics
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
JSON Decoding
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

10 Topics
What You Will Make
Step 1: Clone the Starting Project
Step 2: UIPickerView Functionality
Introducing coinapi.io
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

30 Topics
What You'll Make by the End of this Module
Navigation Controller Stacks and Segues
Typing Animations Timers and For Loops
[Swift Deep Dive] Loops
Loops Coding Exercise
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
Registering New Users
Logging in Existing Users
Logging Out 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

3 Topics
Introduction to the Command Line
Command Line Shortcuts
Directory and File Manipulation Using the Command Line + Bonus

17 Topics
What is SwiftUI?
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

11 Topics
Introduction to Version Control and Git
Version Control Using Git and the Command Line
GitHub and Remote Repositories
GitHub Private Repos are now Free! ?
Gitignore
Cloning Repositories
Branching and Merging
Using Xcode for Source Control
Forking and Pull Requests
Optional Challenge
Tip from Angela - Spaced Repetition

46 Topics
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
UserDefaults Explained
[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
Core Data Fundamentals
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
Introduction to Realm
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
Adding Colour to Our App
[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!

13 Topics
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

9 Topics
Introduction to the Advanced Section
Advanced Swift Properties
A Quick Note About the Next Lesson
Getters
Setters
Computed Properties
Observed Properties
Advanced Properties Challenge
Tip from Angela - When Life Gives You Lemons

17 Topics
What We'll Make - Calculator
Download the Skeleton Project
Accumulating Numbers in the Calculator
Swift Access Levels
Swift Access Levels Quiz
Advanced Swift Optionals
Adding More Functionality to Our Calculator
Dealing with the Decimal Place
Refactoring with Computed Properties
Conforming to MVC
Swift Structs vs. Classes - The Theory
Swift Structs vs. Classes - In Practice
How to Turn Our Model into a Struct
Swift Tuples
Guard Let vs. If Let When to Use Which?
Download the Completed App Project
Tip from Angela - Find All the Hard Working People

12 Topics
Introduction to Machine Learning
Supervised Learning
Unsupervised Learning
Reinforcement Learning
What is CoreML?
What we'll be making
Download the Vision V3 Pre-Trained Machine Learning Model
How to Import the Image Recognition Model & Enable Camera Functionality
Getting Image Recognition Results Back from Our V3 Model
Hotdog or Not Hotdog?
Download the Completed App Project
Tip from Angela - Daily Routines

17 Topics
What we'll be making
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

6 Topics
Introduction to CreateML
How to Gather Data for Training
How to Train a Brand New Machine Learning Model
[Challenge] Build Your Own Machine Learning Model
Download the Completed Model
Tip from Angela - One Step at a Time

12 Topics
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
Making Batch Predictions
Updating the User Interface of Our App
Code Refactoring
Download the Completed App Project
Tip from Angela - Discipline Breeds Discipline

14 Topics
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

6 Topics
What We'll Make By the End of this Module
Detecting the Start and End Points of Our Measurement
Calculating the Distance Between Two 3D points
Creating 3D Text in the AR Scene
Resetting the Measurements
Download the Completed App Project

8 Topics
What We'll Make - Pokemon 3D
Adding Tracking Images
How to Add Plane to Card
Converting 3D Models to the New USDZ File Format
Adding 3D Pokemon Modes to Card Tracking
Tracking Multiple Pokemons
Download the Completed Project
Tip from Angela - Imposter Syndrome

6 Topics
What We'll Make - A Magical Newspaper
How to Source the Assets
[Challenge] Detecting Images in AR
Video Playback in AR
Download the Completed App Project
Tip from Angela - How to Become a Freelancer

4 Topics
How to Publish Your App on to the App Store
Resources to Check Out When You're Ready to Publish
Useful Tools to Help You with App Submissions
Tip from Angela - How to Build Your Own Products

6 Topics
Tip from Angela - How to Get a Job as a Developer
Get Monthly Tips and Tools to Level Up as a Developer
Where to Go From Here?
Monthly Student-Built App Showcase
What Modules Do You Want to See?
Resources

60 Topics
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?
Usability
Asking for Permissions
User Profiling
Form vs. Function
Consistency
Simplicity
Don't Make Me Think
Onboarding
Idiot Boxes
Further Reading on User Experience Design
Android vs. iOS Design
Navigation
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
Wireframing Resources
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
Prototyping with Keynote
Prototyping with Marvel
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

69 Topics
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
Building an Email List
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...
Cross Promotion
Social Referrals and Social Queuing
How to Make Social Media Work for You
Do I Need a PR Agency?
Not All Press is Created Equal
How to Craft Your Story
How to Craft Your Pitch
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?
"Only 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
My Complete ASO Workflow
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 Much Does it Cost?
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
White Hat Techniques
Black Hat Techniques
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

4 Topics
AAA 1 - How to Soak in Programming Concepts & much more
AAA 2 - Schedule for Learning to Code & much more
AAA 3 - How to Start Freelancing & much more
AAA 4 - The Live AMA

2 Topics
How to Make an App From Beginning to End
Bonus Lecture: Check out my other courses

  Write a Review

iOS & Swift - The Complete iOS App Development Bootcamp

Go to Paid Course