Grab the chance to earn a scholarship!

Study a desired course for free & get money
404 Lessons

What Will You Learn?

  • Submit apps to the app store
  • Understand programming & basic algorithms
  • Work fluently with Swift 4 & iOS 12
  • Apply to jr iOS development jobs
  • Work as an iOS contractor


Section 1: Getting Started with iOS 12
Course overview
MUST WATCH Installing Xcode & understanding Xcode versions
How to get Xcode in dark theme mode
Building your very first iOS app
Building the Hustle App: Graphics, UI, and Sound
Section 2: Introduction to Programming & Swift 4 Basics
Variables, operators, & how computers work
Strings in Swift 4
Functions in Swift 4
Numbers 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
Section 3: Git & Version Control
Git & Version Control: The fun way
Terminal Basics - Changing directories
Terminal Basics - Copying & renaming files
Terminal Basics - Creating directories & files
Terminal Basics - Deleting files & directories
Git Basics
Setting up Github
Working with Local & Remote Repositories
Handling Git Merge Conflicts
Section 4: Swoosh App- Intro to Interface Builder & Auto Layout in Xcode 10
Swoosh - Creating the welcome screen
-Swoosh - Working with frames
Swoosh - Intro to auto layout (26:21)
Swoosh - Working with stack views
Swoosh - Intro to segues (9:16)
Swoosh - Refactoring in Xcode 9
Swoosh - Debugging setValue forUndefinedKey
Swoosh - Programmatic segues
Swoosh - IBActions & data models (15:56)
Swoosh - Passing data between view controllers
Section 5: Profile App- Digging Deeper With Auto Layout
Auto Layout for iPhones
Auto Layout for iPads & size classes
Section 6: Window Shopper App- Your First Fully Functional iOS 12 App
Input accessory view and IBDesignable
Creating custom text fields
Creating simple unit tests
Writing logic for calculations
Custom drawing in iOS 12 with drawRect
Section 7: Computers & Code- Crash Course in Computer Science for Beginners
How Computers Work
Understanding Binary
Heap vs. Stack
iOS Binary App – Building UI _ UX
iOS Binary App – Creating BinaryDecimal Class
iOS Binary App – Finishing Up
iOS Binary App – Challenge
How Code Works
Variables & Storage Capacity
Understanding Hexadecimal
Section 8: Coder Swag App- Tables & Data in iOS 12
Project creation & IBOutlets
Tableviews, delegate, and data source
Collection views (12:16)
Working with data models
Displaying data in collection view cells
Section 9: Intro to Model View Controller
MVC in Theory
Creating Xcode Project
Setting Up Project Groups for MVC _ Examining ViewController Controller Layer
Creating AppleProduct Model Layer
Creating CustomPrettyView View Layer
Connecting View to Controller
Securing Model Layer
Challenge - MVC
Section 10: XYZ App - Working with iOS Accelerometer
XYZ - Intro to App
XYZ - Creating Project
XYZ - CoreMotion and CMMotionManager Explained
XYZ - Receiving Accelerometer Updates
XYZ - Handling Accelerometer Data
Listy - Intro to App
Listy - Building UI
Listy - Creating ParallaxCell Subclass
Listy - Configuring ImageArray and Populating UITableView
Listy - Writing Parallax Function to Apply to UIImageView
Listy - Accelerometer Challenge
Section 11: Splitter App- Working With UISplitViewController
Splitter: Intro to App
Splitter: Creating Project & Dummy Data
Splitter: Setting Up MasterVC
Splitter: Building Image Presentation VC
Splitter: Passing Images To ImagePresentationVC
Splitter: Challenge
Section 12: Slack App- Creating a Slack App & Working With APIs
Smack: Intro to Chat App
Smack: Project Setup
ChannelVC UI
LoginVC UI
CreateAccountVC UI
Webrequests and APIs
Hosting API
Local Hosting API
Creating a web request in Xcode
Registering a User
Logging in a user
Avatar Picker Part 1
Avatar Picker Part 2
LoggedIn Interface
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!
Section 13: Pixel City App- Mastering Maps in iOS 12
Intro to App: Pixel City
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 Image
Setting Up UICollectionView
Presenting PopVC When UICollectionViewCell is Tapped
Adding 3D Touch Peek & Pop to UICollectionView
Section 14: Goal Post App- Data Persistence in iOS 12 With Core Data
GoalPost: Intro to App
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
Section 15: Treads App- Data Persistence With Realm
Intro to Realm and Treads App
Swift 4 update
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
Section 16: Breakpoint App- Building a Full Stack App With Firebase
Breakpoint: Intro to App
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 and Getting All Feed Messages from Firebase
Converting UIDs into Emails and Reversing the Order of a TableView
Creating CreateGroupVC and Connecting @IBOutlets-Actions
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 All Message for a Group and Animating Upon New Message
Creating a UIViewController Extension for Presenting GroupFeedVC
Section 17: RNDM App- Using the NEW Firebase Cloud Firestore
Intro to Firestore
Firestore Project Setup
What is Firestore
AddThoughtVC UI Setup
Making your first database entry!
MainVC UI Setup
Fetching data from Firestore
Sorting and Filtering
Updating individual documents
Intro to Firestore Authentication
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
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
Project Setup
Google Login Part 1
Google Login Part 2
Facebook Login
Twitter Login
Section 18: 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
Intro to Subscriptions
Subscriptions: Exploring the starter project
Subscriptions: How To Set Up App in iTunes Connect
Setting up auto-renewing subscription tier (10:52)
Buying an auto-renewing subscription
Saving to UserDefaults & Handling Failure & Deferral
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
Subscriptions : Challenge
Section 19: 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
Section 20: 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
Section 21: Working With iMessege And Sticker Packs for iOS 12
Intro to App – Sticker Packs
Intro to Sticker Packs
Creating Sticker Pack Project in Xcode
Sticker Art Resources _ Websites
Adding Static Stickers _ Testing
Adding APNG & GIF Stickers _ Testing
Creating iMessage App Icons
Creating Static Stickers with Sketch 3
Creating Animated Stickers from Sprite Sheet
Section 22: Shortcut App- Working With 3D Touch on iOS
Setting up the UI
Intro to App - Quick Action
Creating the Quick Action
Handle the Quick Action
Quick Actions with TabBar
Section 23: LegDay App- Working With iOS SiriKit
Intro to SiriKit
Intro to App – LEGDAY
Intro to SiriKit
Building WorkoutVC _ Wiring Up
Enabling Siri Access _ Requesting Permissions
Creating a SiriKit Intents App Extension _ Configuring For Workout
Configuring Results in AppDelegate with DataService
Handling _ Presenting SiriKit Results in WorkoutVC
Challenge – LEGDAY
Section 24: 24- Screenie App- Using ReplayKit in iOS
Intro to ReplayKit
ntro to App – Screenie
Building UI
Creating RPScreen Recorder instance
Configuring UISegmentedControl to switch images
Starting a screen recording
Stopping, editing, & saving a screen recording
Screenie: Challenge
Section 25: RampUp App- Intro to ARKit
RampUp - Intro to ARKit App
RampUp - Resources & important ARKit info
RampUp - Project creation
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
ARKit - where to go next
Section 26: 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
Downloading CoreML models
Core ML Xcode 9 Beta 4 Update - Fix Preview Photo Crash
Adding UI controls for flash control
Training your app to speak what it sees
Section 27: Animal App- Using iOS 12 New CoreML Models
Intro to App – AnimalClassifier
DIY Core ML Model with Create ML
Building & Connecting User Interface
Setup Camera_Photo Selection
Create & Process Classification Request
Update Labels with Classifications
Section 28: 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 2
Protocols & delegates in Swift 4 part 1
Protocols & delegates in Swift 4 part 3
Protocols & delegates in Swift 4 part 4
Protocols & delegates in Swift 4 part 5
Swift transformations
Section 29: 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
Section 30: Advanced Swift 4 Design Patterns- Protocol Oriented Programming
Intro to protocol oriented programming
Writing your first protocols
Creating protocol extensions
Generics and protocols
Section 31: 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
Creating and Subscribing to Observables
Observables – Disposing
Challenge_ Observables
Publish Subject
Behavior Subject
Replay Subject
Challenge – Subjects
Transformations – .map
ransformations – .flatMap
Transformations – .filter
Transformations: .zip
Challenge – Transformations
Intro to App – Namer
Creating Xcode Project _ Installing RxSwift & RxCocoa
Building Namer UI _ Connecting @IBOutlets
Using RxCocoa to Observe _ Subscribe to UITextField Data
Adding Rx Capabilities to Submit Button
Passing Values Between UIViewController Instances Using RxSwift
Intro to Versi App
Creating Xcode Project
Installing CocoaPods
Setting Up UITabBarController _ Adding Project Assets
Building TrendingFeedVC
Building Custom View Subclasses
Building Repo Model Layer
Building TrendingRepoCell Subclass _ Loading Dummy Data
Creating DownloadService Singleton
Downloading Trending Repos Data
Downloading Additional Required Repo Data
Fixing Broken 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 Files in SFSafariViewController
Section 32: Advanced- Unit Testing in iOS 12
What is Unit Testing?
Unit testing in Swift
What makes a good unit test?
Testing Data Models (17:56)
Testing Data Models (11:21)
Testing features & functions
Testing asynchronous code
Testing endpoints & mock data
Testing performance & benchmarking
Testing & MVVM
Section 33: Advanced- UI Testing in iOS 12
What is UI Testing
UI Testing best practices
Testing Navigation
UI testing in Swift – Basic example
Testing views & alerts
Resetting & verifying app state
Testing bug fixes
Testing data in text fields
Testing UI after an asynchronous call




BitDegree platform reviews

Our students say Excellent
9.5 out of 10
trustpilot logo 1 trustpilot logo