Course Purchase Includes:

Each purchase comes with a 10 day money-back guarantee.

  • 80 hours of content

  • Unlimited access

  • Devslopes Certificate of Completion

  • Access to code forums

Build Professional Apps

You are going to build over 15 apps. Not only will you build apps, but you'll learn best development practices and build the type of apps you might build in a full time job.

New iOS 12 Features

In addition to learning core iOS concepts we'll cover some of the hot new iOS features such as ARKit, CoreML, and SiriKit

Code Help

You'll get access to our code forums where you can post questions and get help from teachers and the community. This is also a great place to meet other developers!

Guided Learning

The course is designed to take you from absolute beginner to advanced levels. If you are an experienced programmer the lessons are designed in a way to help you get up and running fast.

Certification

After you complete this course and all of the quizzes you will receive a Devslopes Certification that will prove to the world you completed this intense training course.

Course Curriculum

Sections, lessons, and free previews

  • 1

    Getting Started With iOS 12

  • 2

    Intro to Programming & Swift 4 Basics

    • Variables, operators, & how computers work

    • Strings in Swift 4

    • Booleans & conditional logic in Swift 4

    • Constants & logical operators in Swift 4

    • Arrays in Swift 4

    • Loops in Swift 4

    • Dictionaries in Swift 4

    • Object oriented programming in Swift 4

    • Inheritance in Swift 4

    • Polymorphism in Swift 4

    • Optionals in Swift 4

    • Swift basics source code

    • Swift 4 Quiz

  • 3

    Git & Version Control

    • Git & Version Control: The fun way

    • Terminal Basics: Changing directories

    • Terminal Basics: Creating directories & files

    • Terminal Basics: Copying & renaming files

    • Terminal Basics: Deleting files & directories

    • Git Basics

    • Setting up Github

    • Working with Local & remote repositories

    • Handling git merge conflicts

  • 4

    Swoosh App: Intro to Interface Builder & Auto Layout in Xcode 10

    • Creating the welcome screen assets

    • Creating the welcome screen

    • Working with frames

    • Intro to Auto Layout

    • Working with UIStackView

    • Intro to segues (Changing screens in iOS)

    • Refactoring in Xcode

    • Debugging setValue forUndefinedKey

    • Programmatic segues

    • IBActions & data models

    • Passing data between view controllers

  • 5

    Profile App: Digging Deeper With Auto Layout

    • Profile App source code

    • Auto Layout for iPhones

    • Auto Layout for iPads & size classes

  • 6

    Window Shopper App: Your First Fully Functional iOS 12 App

    • Creating custom text fields

    • Input accessory view and IBDesignable

    • Creating simple unit tests

    • Writing logic for calculations

    • Custom drawing in iOS 12 with drawRect

    • Window Shopper source code

  • 7

    Coder Swag App: Tables & Data in iOS 12

    • Coder Swag Assets

    • Project creation & IBOutlets

    • UITableView, delegate, and data source

    • Creating a UICollectionView

    • Creating the data models

    • Working with UITableViewCell

    • Coder Swag final source

  • 8

    Intro to Model View Controller

    • MVC in Theory

    • MVC assets

    • Creating the Xcode project

    • Managing groups (folders) for MVC

    • Creating data models

    • Creating the views

    • Connecting the views and data with view controllers

    • Securing the model layer

    • Challenge

  • 9

    XYZ & Listy App: Working with iOS Accelerometer

    • XYZ: Intro to app

    • XYZ assets

    • XYZ: Creating project

    • XYZ: CoreMotion & CMMotionManager explained

    • XYZ: Receiving accelerometer updates

    • XYZ: Handling accelerometer data

    • Listy: Intro to app

    • Listy: Building UI

    • Listy: Creating ParallaxCell Subclass

    • Listy: Configuring ImageArray & Populating UITableView

    • Listy: Writing parallax function to apply to UIImageView

    • Listy: Accelerometer challenge

    • Listy final source

  • 10

    Splitter App: Working With UISplitViewController

    • Splitter: Intro to App

    • Splitter assets

    • Splitter: Creating Project & Dummy Data

    • Splitter: Setting Up MasterVC

    • Splitter: Building ImagePresentationVC

    • Splitter: Passing Images To ImagePresentationVC

    • Splitter: Challenge

  • 11

    Slack App: Creating a Slack App & Working With APIs

    • Smack: Intro to Chat App

    • Smack app all source code

    • Smack: Project Setup

    • SWReveal

    • ChannelVC UI

    • LoginVC UI

    • CreateAccountVC UI

    • Web request and API

    • Hosting API

    • Locally Hosting API

    • Creating a web request in Xcode

    • Registering a User

    • Logging in a user

    • Creating a user

    • Avatar Picker Part 1

    • Avatar Picker Part 2

    • Generate a Avatar BG Color

    • Profile View

    • Logging in users

    • Getting channels

    • Channels TableView

    • Add Channel VC

    • Sockets and Channels

    • Refining Login Flow

    • Fetching Messages

    • Sending first message

    • Displaying chat messages

    • Sockets and Messages

    • Typing Users

    • Unread Channels

    • Where to go from here

    • I'm Back!

  • 12

    Pixel City App: Mastering Maps in iOS 12

    • Intro to App: Pixel City

    • Pixel City all course code

    • Creating Xcode Project: Pixel City

    • Installing Alamofire & AlamofireImage CocoaPods

    • Building MapVC UI

    • Requesting Location Services

    • Drop Custom Pins on MapView

    • Setting a Custom Map Annotation Color

    • Animating Photos View

    • Adding UILabel for Pull Up View

    • Getting API Key from Flickr

    • Using Alamofire to Download URLS

    • Using Alamofire to Download Images

    • UICollectionView

    • Building PopVC

    • Adding 3D Touch Peek & Pop to UICollectionView

    • Challenge

  • 13

    Goal Post App: Data Persistence in iOS 12 With Core Data

    • GoalPost: Intro to App

    • Goal Post assets

    • GoalPost: Creating Xcode Project

    • Building GoalsVC

    • Building GoalCell

    • What is Core Data?

    • Creating goal core data entity & attributes

    • Displaying static GoalCells in UITableView

    • Building CreateGoalVC

    • Creating a UIViewController extension

    • Creating a UIView & UIButton extension

    • Building FinishGoalVC & passing data

    • Saving goal data to persistent store

    • Fixing dismissal of FinishGoalVC

    • Fetching data from persistent store

    • Removing objects from persistent store

    • Setting goal progress for UITableViewCell

    • GoalPost: Challenge

    • GoalPost all source code

  • 14

    Treads App: Data Persistence With Realm

    • Intro to Realm and Treads App

    • Swift 4 update

    • Treads app assets

    • Initial project setup

    • Create the run log UI

    • Last storyboard UI

    • Map view setup

    • Create custom slider switch

    • Track Location

    • Converting meters to miles

    • Convert seconds to readable string

    • Calculate Average Pace

    • Pause, Resume Functionality

    • First Realm Model

    • Write & Fetch

    • Display Run History

    • Last Run View

    • Create a locations list for poly-line overlay

    • Realm Configuration

    • Get the poly-line rendering on the map view

    • Center Map on poly-line or user location

    • Fetch Realm Object by ID

    • Treads app final source

  • 15

    Breakpoint App: Building a Full Stack App With Firebase

    • Breakpoint: Intro to App

    • Breakpoint Assets

    • Breakpoint: Creating Xcode project

    • Creating Firebase project

    • Setting up DataService

    • Building AuthVC & LoginVC in interface builder

    • Creating InsetTextField & ShadowView Subclasses

    • Setting up AuthService

    • Presenting LoginVC from AppDelegate

    • Building FeedVC and GroupsVC in interface builder

    • Building MeVC and adding to UITabBarController

    • Creating CreatePostVC & uploading posts to firebase

    • Creating UIView extension for binding views to keyboard

    • Building FeedCell

    • Writing the message model

    • Converting UIDs into emails

    • Creating CreateGroupVC

    • Creating UserCell

    • Searching for email accounts to add to group

    • Adding users to group with didSelectRowAt indexPath

    • Creating groups and pushing them to firebase

    • Creating GroupCell

    • Creating group model and getting all groups from Firebase

    • Building GroupFeedVC

    • Initializing group data for a group and presenting on GroupFeedVC

    • Downloading and animating messages

    • Presenting GroupFeedVC

    • Breakpoint: Challenge

    • Breakpoint all source code

  • 16

    RNDM App: Using the NEW Firebase Cloud Firestore

    • Intro to Firestore

    • Firestore part 1 assets

    • Firestore project setup

    • What is Firestore

    • Firestore: AddThoughtVC UI Setup

    • Firestore: Making your first database entry!

    • Firestore: MainVC UI Setup

    • Fetching data from Firestore

    • Firestore: Sorting and Filtering

    • Firestore: Updating individual documents

    • Intro to Firestore Authentication

    • Firestore part 2 assets

    • Login Flow UI Setup

    • Firestore: Create User

    • Firestore: Login User

    • Firestore: CommentsVC UI Set up

    • Firestore: CommentClass and TableView

    • Firestore Transactions

    • Firestore: Displaying comments

    • Firestore: Security Rules

    • Intro to Firestore Security Rules

    • Firestore part 3 assets

    • Security rules: Project setup

    • Security rules: Implementing protocols

    • Deleting a comment

    • Updating comments

    • Comments advanced security rules

    • Deleting a thought

    • Thought security rules

    • Where to go from here?

    • Social Logins

    • Social Logins: Project Setup

    • Google Login Part 1

    • Google Login Part 2

    • Facebook Login

    • Twitter Login

  • 17

    FoodZilla App: Mastering iOS In-App Purchases

    • IAP's: Creating Xcode Project

    • IAP's: Creating App on iTunes Connect

    • IAP's: Setting up consumable IAP Tier

    • IAP's: Building StorefrontVC

    • IAP's: Building DetailVC

    • IAP's: Configuring UICollectionView

    • IAP's: Passing values to DetailVC

    • IAP's: Create IAPService Singleton

    • Consumables: Making consumable purchases

    • Consumables: Sending purchase notifications

    • Non-Consumables: Non-Consumable IAP Tier

    • Non-Consumables: Making Non-Consumable Purchases

    • Restoring In-App Purchases

    • Consumables final source

    • Intro to Subscriptions

    • Subscription assets

    • Subscriptions: Exploring the starter project

    • Subscriptions: How To Set Up App in iTunes Connect

    • Setting up auto-renewing subscription tier (iTunes Connect)

    • Buying an auto-renewing subscription

    • Subscriptions: Saving to UserDefaults

    • Subscriptions: Preventing theft/fraud with iTunes receipt validation

    • Saving expiration date to UserDefaults & checking for active subscription

    • Checking for valid/active subscription & handling Expiration – Part 1

    • Checking for valid/active subscription & handling Expiration – Part 2

    • Troubleshooting subscription issues

    • Challenge - Subscriptions

    • Subscriptions final source

  • 18

    Touchy Feely App: Working With iOS Touch ID and Face ID

    • SecureNotes : Intro to app

    • Creating Xcode Project

    • Building NoteVC

    • Creating Note Model, LockStatus Enum, & Dummy Data

    • Building NoteCell & Subclass

    • Building NoteDetailVC

    • Passing Note Data to NoteDetailVC

    • Writing helper functions & updating NoteCell Subclass

    • Authenticating with Touch ID / Face ID & updating information

    • SecureNotes: Challenge

    • Touch ID final source

  • 19

    Scribe App: Working With iOS Speech Recognition

    • Scribe: Project intro & setting up the UI

    • Scribe: Button design and loading animation

    • Scribe: Adding logic to our speech button

    • Scribe: Finishing the app

  • 20

    Working With iMessege And Sticker Packs for iOS 12

    • Intro to App – Sticker Packs

    • Intro to Sticker Packs

    • Sticker pack assets

    • Creating Sticker Pack Project in Xcode

    • Sticker Art Resources & Websites

    • Adding Static Stickers

    • Adding PNG & GIF Stickers

    • Creating iMessage app icons

    • Creating static stickers with Sketch 3

    • Creating Animated Stickers from Sprite Sheet

    • Sticker pack final source

  • 21

    Shortcut App: Working With 3D Touch on iOS

    • Intro to App - Quick Action

    • 3D touch assets

    • Setting up the UI

    • Creating the Quick Action

    • Handle the Quick Action

    • Quick Actions with TabBar

  • 22

    LegDay App: Working With iOS SiriKit

    • LEGDAY: Intro to App

    • Intro to SiriKit

    • SiriKit assets

    • Building WorkoutVC

    • Enabling Siri access

    • Creating a SiriKit intents app extension

    • Configuring results in AppDelegate with DataService

    • Handling & presenting SiriKit results in WorkoutVC

    • LEGDAY: Challenge

  • 23

    Screenie App: Using ReplayKit in iOS

    • Screenie: Intro to app

    • ReplayKit assets

    • Building UI

    • Creating RPScreenRecorder instance

    • Configuring UISegmentedControl to switch images

    • Starting a screen recording

    • Stopping, editing, & saving a screen recording

    • Screenie: Challenge

  • 24

    RampUp App: Intro to ARKit

    • RampUp: Intro to ARKit App

    • Rampup assets

    • RampUp: Resources & important ARKit info

    • RampUp: Project creation

    • Rampup Models

    • RampUp: SceneKit, 3D models & materials

    • RampUp: Ramp picker popover

    • RampUp: 3D models in SceneKit for popover

    • RampUp: 3D models in SceneKit for popover - Part 2

    • RampUp: Detecting taps on 3D objects

    • RampUp: Placing ramps in ARKit

    • RampUp: Moving objects in 3D space in augmented reality

    • Rampup final source

    • ARKit: where to go next

  • 25

    Vision App: iOS CoreML Basics

    • CoreML: Intro to app

    • Intro to Core ML

    • What is machine learning?

    • Creating Xcode project

    • Building UI & custom view subclasses

    • AVFoundation & AVCaptureSession to use the camera

    • Tap gestures to take snapshot on item

    • Core ML Xcode 9 Beta 4 update

    • Downloading CoreML models

    • Adding UI controls for flash control

    • Training your app to speak what it sees

    • CoreML all source

  • 26

    Animal App: Using iOS 12 New CoreML Models

    • Intro to App – AnimalClassifier

    • AnimalClassifier Source

    • DIY Core ML Model with Create ML

    • Building & Connecting User Interface

    • Setup Camera/Photo Selection

    • Create & Process Classification Request

    • Update Labels with Classifications

  • 27

    Mobile Product Design

    • What is UX UI

    • 3 Questions Before Designing

    • TOPTEN: Homescreen

    • TOPTEN: Article Page

    • Intro to microinteractions

    • TOPTEN: Designing a microinteraction

    • Rapid prototyping

    • Bringing our app to life with Invision

    • Using symbols

    • Audio Tangle: Feed screen

    • Audio Tangle: Feed enhancement for marketplace

    • Audio Tangle: Post a job

    • Audio Tangle: Saved tab

    • Audio Tangle: Saved tab continued

    • Audio Tangle: Wrapping it all up

    • Minimum Viable Product

    • Building an MVP - Weightmate

    • Savr: Triggers and actions

    • Savr: Reward & Investment

    • Social networks & marketplace advice

    • Viral coefficient

  • 28

    Computers & Code: Crash Course in Computer Science for Beginners

    • How computers work

    • How Computer Work source code

    • Understanding binary

    • Computer Code assets

    • The heap vs the stack

    • Working with binary in iOS part 1

    • Working with binary in iOS part 2

    • Working with binary in iOS part 3

    • Challenge: Convert multiple numbers to binary

    • How code works

    • Variables & storage capacity

    • Understanding hexadecimal

  • 29

    Advanced Swift 4

    • Enumerations in Swift 4

    • Extensions in Swift 4 part 1

    • Extensions in Swift 4 part 2

    • Protocols & delegates in Swift 4 part 1

    • Protocols & delegates in Swift 4 part 2

    • Protocols & delegates in Swift 4 part 3

    • Protocols & delegates in Swift 4 part 4

    • Protocols & delegates in Swift 4 part 5

    • Swift transformations

    • Advanced Swift source code

  • 30

    Vision Framework

    • Intro to App – FaceFinder

    • Creating project & building UI

    • Creating project & building UI

    • Setting up UIImageView programmatically

    • Creating Face Detection Request & Handler

    • Adding & Tweaking Face Detection Frame

    • Face Finder source code

  • 31

    Advanced: Data Structures & Algorithms In Swift 4

    • Recursive functions in Swift 4

    • The stack data structure in Swift 4

    • The heap data structure in Swift 4 part 1

    • The heap data structure in Swift 4 part 2

    • The tree data structure in Swift 4

    • Data Structures all source

  • 32

    Advanced Swift 4 Design Patterns: Protocol Oriented Programming

    • Intro to protocol oriented programming

    • Writing your first protocols

    • Creating protocol extensions

    • Generics & protocols

    • POP final source

  • 33

    Advanced Swift 4 Design Patterns: Reactive Programming With RxSwift

    • Intro to RxSwift

    • What is Rx? Why Rx?

    • How to install RxSwift into an Xcode playground

    • RsSwift all source

    • Creating and Subscribing to Observables

    • Observables: Disposing

    • Challenge: Observables

    • PublishSubject

    • BehaviorSubject

    • ReplaySubject

    • Variables

    • Challenge: Subjects

    • Transformations: .map

    • Transformations: .flatMap

    • Transformations: .filter

    • Transformations: .zip

    • Challenge: Transformations

    • Intro to app: Namer

    • Installing RxSwift & RxCocoa

    • Building Namer UI

    • Using RxCocoa to Observe

    • Adding Rx capabilities to submit button

    • Passing values using RxSwift

    • Intro to Versi app

    • Creating Xcode project

    • Installing CocoaPods

    • Setting up UITabBarController

    • Building TrendingFeedVC

    • Building custom view subclasses

    • Building Repo model layer

    • Building TrendingRepoCell subclass

    • Creating DownloadService singleton

    • Downloading trending repos data

    • Downloading additional required repo data

    • Refactoring DownloadService functions

    • Filling TrendingFeedVC with real API data

    • Building SearchVC

    • Building SearchCell

    • Setting up SearchVC the RxSwift way

    • Using RxSwift To Drive UITableView with Search Results

    • Loading Github README.md Files

  • 34

    Advanced: Unit Testing in iOS 12

    • What is Unit Testing?

    • What makes a good unit test?

    • Unit testing in Swift

    • Unit Testing data models source

    • Testing Data Models (Part 1)

    • Testing Data Models (Part 2)

    • Testing features & functions

    • Unit Testing asynchronous source

    • Testing asynchronous code

    • Testing endpoints & mock data

    • Testing performance & benchmarking

    • Testing & MVVM

  • 35

    Advanced: UI Testing in iOS 12

    • What is UI Testing?

    • UI Testing best practices

    • UI Testing source

    • UI testing in Swift – Basic example

    • Testing navigation

    • Testing views & alerts

    • Resetting & verifying app state

    • Testing bug fixes

    • Testing data in text fields

    • Testing UI after an asynchronous call