Library

Course: iOS 11 & Swift 4: From Beginner to Paid Professional™

iOS 11 & Swift 4: From Beginner to Paid Professional™

  • Life Time Access
  • Certificate on Completion
  • Access on Android and iOS App
About this Course

Welcome to the world's most comprehensive course on iOS development. This course is designed like an in-person coding bootcamp to give you the most amount of content and help with the least amount of cost.

NO PRIOR CODING EXPERIENCE REQUIRED

Here are some of the things you'll be able to do after taking this course:

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

Who this course is for:

  • People who want to build apps!
  • Those who want to create their own startup
  • Those looking to get a full time job as a developer
  • Business owners
  • Students & teenagers
  • People who want to make money building apps

If you are absolutely new to programming you should start at the beginning of the course and go to the end.

I've designed this course to take you down a guided learning path. Lectures are not broken out by specific topics. You build apps and then learn a ton of principles within those apps. So don't skip around!

If you already know Swift then you can skip the Swift section since the changes between Swift 3 and Swift 4 are minor.

If you've never programmed before, make sure you DO take the Swift lessons. We'll teach you core foundational principles so you can build complex apps.

If you are a student of iOS 10: From Beginner to Paid Professional then feel free to start taking this iOS 11 course.

Keep in mind that this iOS 11 course has a bunch of new apps. So there is a HUGE benefit to ALSO go through the iOS 10 course - or you'll miss out on awesome content. 

Don't forget to join the free live community where you can get free help anytime from other students.

Here are a few things you'll learn:

  • Swift 4
  • Xcode 9
  • Interface Builder
  • Firebase
  • Build a Slack Clone
  • Maps & GPS
  • Core Data
  • ARKit & Augmented Reality
  • CoreML & Machine Learning
  • Tables & Data
  • APIs, HTTP, and Networking
  • App Design
  • Storyboards & Segues

And a lot more...

Who is the target audience?

  • If you are an absolute beginner to coding take this course
  • If you are an absolute beginner to iOS or mobile development then take this course
Basic knowledge
  • Must have a computer with OSX or macOS on it
What you will learn
  • Build iOS 11 & Swift 4 apps
  • Work as an iOS contractor
  • Apply to jr. iOS development jobs
  • Submit iOS apps to the Apple App Store
Curriculum
Number of Lecture: 186
Total Duration: 43:17:45
Getting Started With Xcode 9 & iOS 11
  • iOS 11 Course Overview  
  • Install Xcode 9  
  • Xcode 9 Beta 4 Update  
  • App: Hustle - Your first iOS 11 App  
Learn to Code With Swift 4
  • Variables, operators, and how computers work  
  • Source Code  
  • Strings in Swift  
  • Working with numbers in Swift  
  • Swift functions  
  • Booleans & conditional logic in Swift  
  • Constants & logical operators in Swift  
  • Array data structure in Swift  
  • Swift loops  
  • Dictionary data structure in Swift  
  • Object oriented programming in Swift  
  • Inheritance & OOP in Swift  
  • Polymorphism & OOP in Swift  
  • Optionals  

    In this lesson, you will learn about optionals – one of the things that makes Swift really special. Optionals help to handle the absence of a value.

  • Enumerations  

    In this lesson, you will learn about enumerations in Swift, how to use them, and how they can help you.

  • Extensions: Part 1  

    In this lesson, you will create a Swift Playground to learn the basics of extensions – from their syntax to their basic use.

  • Extensions: Part 2  

    In this lesson, you will learn how you could use extensions in a real iOS app.

  • Intro to Protocols/Delegates - Numbers Example  

    In this lesson, you will learn the basics of protocols in Swift. You will learn one use case for protocols and extend the capabilities of several Swift types to utilize it's power.

  • Intro to Protocols/Delegates Part 2 - Question Generator  

    In this lesson, you will continue learning about protocols and how they can be used within classes and structures.

  • Protocols/Delegates - Building Color Magic App UI  

    In this lesson, you will build the UI for an app called Color Magic which will utilize the delegate method for transferring data between ViewControllers.

  • Protocols/Delegates - Using Mutating Functions in Types  

    In this lesson, you will create an app that toggles a light on and off using a protocol and an enumeration. The enumeration will utilize a mutating function to modify the switch status.

  • Protocols/Delegates - Using the Delegate Method in Color Magic App  

    In this lesson, you will utilize the delegate method (protocols) to pass color and name data between ViewControllers.

  • Swift 4 Quiz  
Version Control With Git
  • 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  
  • Dev Tip: Focus on today  
Core iOS 11: Auto Layout, Segues, and Professional Apps
  • App: Swoosh 01 - Creating the welcome screen  
  • App: Swoosh 02 - Working with frames  
  • App: Swoosh 03 - Intro to auto layout (support multiple screen sizes)  
  • App: Swoosh 04 - Working with stack views  
  • App: Swoosh 05 - Intro to segues (changing screens)  
  • App: Swoosh 06 - Refactoring in Xcode 9  
  • App: Swoosh 07 - Debugging: setValue forUndefinedKey  
  • App: Swoosh 08 - Programmatic segues  
  • App: Swoosh 09 - IBActions (handling events) & data models  
  • App: Swoosh 10 - Passing data between view controllers  
  • App: Dev Profile 02 - Auto layout for iPads (size classes)  
  • App: Dev Profile 01 - Auto layout for iPhones  
  • App: Window Shopper 01 - Custom text fields  
  • App: Window Shopper 02 - Input accessory views & IBDesignable  
  • App: Window Shopper 03 - Unit testing our data  
  • App: Window Shopper 04 - Calculation algorithm  
  • App: Window Shopper 05 - Custom drawing with drawRect  
  • Dev Tip: Don't ever do this one thing  
iOS 11 Tables & Data
  • App: Coder Swag 01 - Project creation & IBOutlets  
  • App: Coder Swag 02 - Tableviews, delegate, and data source  
  • App: Coder Swag 03 - Collection views (grid layouts)  
  • App: Coder Swag 04 - Working with data models  
  • App: Coder Swag 05 - Displaying data in collection view cells  
  • Dev Tip: How to not get discouraged learning to code  
Networking, APIs, REST, and Building a Slack Clone
  • Intro to Chat App  
  • App: Smack - Project Setup  

    Set up your project with assets and cocoa pods.

  • App: Smack - SWReveal  

    Learn how to add a slide out menu using SWReveal

  • App: Smack - ChannelVC UI  

    In this lesson we build out the ChannelVC UI

  • App: Smack - LoginVC UI  

    In this lesson we build out the LoginVC UI

  • App: Smack - CreateAccountVC UI  

    In this lesson we build out the CreateAccountVC UI

  • App: Smack - Web request and API  

    Learn how web requests and APIs work

  • App: Smack - Hosting API  

    Learn how to host an API on Heroku

  • App: Smack - Locally Hosting API  

    Locally Hosting API

  • App: Smack - Creating a web request in Xcode  
  • App: Smack - Registering a User  

    Use web requests to register a user

  • App: Smack - Logging in a user  

    Use web requests to login a user

  • App: Smack - Creating a user  

    Use web requests to create a user on the API

  • App: Smack - Avatar Picker Part 1  

    Create an avatar picker using collection view

  • App: Smack - Avatar Picker Part 2  

    Create an avatar picker using collection view

  • App: Smack - Generate a Avatar BG Color  

    Randomly generate avatar background color

  • App: Smack - LoggedIn Interface  

    Update the UI based on logged in status

  • App: Smack - Profile View  

    Create the profile view

  • App: Smack - Logging in users  

    Use web requests and Alamofire to log in a user

  • App: Smack - Getting channels  

    Use web requests and Alamofire to retrieve chat channels

  • App: Smack - Channels TableView  

    Display the fetched channels in the table view

  • App: Smack - Add Channel VC  

    Create the Modal to add Channels

  • App: Smack - Sockets and Channels  

    Use sockets to add a new channel

  • App: Smack - Refining Login Flow  

    Use notifications to refine the login flow logic

  • App: Smack - Fetching Messages  

    Retrieve messages from the API

  • App: Smack - Sending first message  

    Send first message to the API with sockets

  • App: Smack - Displaying chat messages  

    Display the retrieved chat messages

  • App: Smack - Sockets and Messages  

    Use sockets to send and receive messages

  • App: Smack - Typing Users  

    Use sockets to know when others are typing

  • App: Smack - Unread Channels  

    Use sockets to know there is an unread message

  • Where to go from here  

    Take this app further!

  • I'm Back!  

    Convert ISO8601 Dates

  • Dev Tip: Depth over breadth  
Maps & GPS
  • Intro to App: Pixel City  
  • Creating Xcode Project: Pixel City  

    In this lesson, you will create the Xcode project needed to build Pixel City. You will also create the folders needed for this project.

  • Installing Alamofire / AlamofireImage Cocoapods  

    In this lesson, you download and install Alamofire and AlamofireImage – very popular and well-supported CocoaPods we will use for networking.

  • Building MapVC UI /Conforming to MKMapViewDelegate /Setting Delegate of mapView  

    In this lesson, you will build the user interface of MapVC and enable it to work by setting the delegate and conforming to MKMapViewDelegate.

  • Requesting Location Services in iOS 11 / Centering Map On User Location  

    In this lesson, you will request location services bearing in mind the changes to iOS 11 location services.

  • Adding UITapGestureRecognizer to Drop Custom Pins on MapView  

    In this lesson, you will use a UITapGestureRecognizer to drop pins on the map where you tap. You will also customize the appearance of these pins.

  • Setting a Custom Map Annotation Color  
  • Animating Photos View / Programmatically adding spinner and label subviews  

    In this lesson, you will animate a UIView up which will eventually display a grid of photos downloaded from a location you choose. You will programatically add a UIActivityIndicatorView and UILabel to show download progress.

  • Adding UILabel for Pull Up View / Adding UICollectionView Programmatically  

    In this lesson, you will add a UILabel to indicate image download progress and programmatically add a UICollectionView to the Pull Up View.

  • Getting API Key from Flickr / Using Flickr API URL Format  

    In this lesson, you will access the Flickr API, request an API key, and observe the URL formatting Flickr uses so that you know how to navigate their API properly. Then, you will write a custom function that enables you to create a custom URL.

  • Using Alamofire to Download URLS  

    In this lesson, you will download URLs for images using the Flickr API and Alamofire.

  • Using Alamofire to Download Images / Cancelling All Sessions  

    In this lesson, you will download images and populate an array with images using the Flickr API and AlamofireImage.

  • Setting Up UICollectionView / Adding Images / Reloading UICollectionView  

    In this lesson, you will set up UICollectionView to create cells with images using imagesArray. You will also reload the data of the UICollectionView so that it shows all images once they’ve finished downloading.

  • Building PopVC / Presenting PopVC When UICollectionViewCell is Tapped  

    In this lesson, you will build PopVC which is a UIViewController that will display images. You will also set up UICollectionView to present PopVC whenever a cell is tapped.

  • Adding 3D Touch Peek & Pop to UICollectionView  

    In this lesson, you will add 3D Touch functionality to UICollectionView. When you press lightly on a cell, you will be able to Peek at the content. A firmer press will Pop it onto the next UIViewController.

  • Challenge  
  • Dev Tip: Put yourself out there  
iOS 11 In App Purchases & Google Ads (Admob)
  • Setting up developer & iTunes accounts  
  • Implementing Google AdMob  
  • Fetching a list of products  
  • Starting an in-app purchase  
  • Testing in-app purchases  
  • Restoring in-app purchases after app deletion  
  • Dev Tip: How to create a successful app  
Intro to Core Data
  • Intro to App: GoalPost  

    In this video, you will be introduced to GoalPost – the Core Data goal setting app you'll be building in this section.

  • Creating Xcode Project / Project Folders  

    In this lesson, you will create the Xcode project used to build GoalPost. You will also set up project folders for organizational purposes.

  • Building GoalsVC  

    In this lesson, you will build GoalsVC in Interface Builder. This is the home screen of GoalPost.

  • Building GoalCell  

    In this lesson, you will build GoalCell in Interface Builder and also create the code subclass to go with it.

  • What is Core Data?  
  • Creating Goal Core Data Entity & Attributes  

    In this lesson, you will create the Core Data entity called Goal. You will also set up several attributes for that entity. Think of this like a model class and it's properties.

  • Displaying Static GoalCells in UITableView / Creating GoalType Enum  

    In this lesson, you will configure some static instances of GoalCell in order to confirm that out UITableView is working properly.

  • Building CreateGoalVC  

    In this lesson, you will build out CreateGoalVC in Interface Builder. This ViewController is where the user describes their goal and sets it type.

  • Creating a UIViewController Extension  

    In this lesson, you will create an extension of UIViewController that will allow you to customize the presentation of UIViewController instances. You will cause the animation to resemble a UINavigationController animation.

  • Creating a UIView / UIButton Extension  

    In this lesson, you will create an extension of both UIView and UIButton which will help with various UI enhancements.

  • Building FinishGoalVC / Passing Data from CreateGoalVC  

    In this lesson, you will build out FinishGoalVC in Interface Builder and pass data to it from CreateGoalVC.

  • Saving Goal Data to Persistent Store  

    In this lesson, you will write a function to save data to the Persistent Store using Core Data. You will save data from FinishGoalVC into the Persistent Store.

  • Fixing Dismissal of FinishGoalVC  

    In this lesson, you will write another function in the UIViewController extension that will allow for the proper dismissal of FinishGoalVC. It will dismiss the current UIViewController and present the other simultaneously to avoid a stack of too many ViewControllers.

  • Fetching Data from Persistent Store / Filling UITableView with Fetched Data  

    In this lesson, you will fetch data from the Persistent Store by using an NSFetchRequest. You will save the results in an array of Goal and display it in the UITableView.

  • Removing Objects from Persistent Store using UITableView Delete Action  

    In the lesson, you will write a function to remove an object from the Persistent Store using a UITableViewRowAction set up for deletion.

  • Setting Goal Progress for UITableViewCell  

    In this lesson, you will write a function to update the goalProgess attribute of the Goal entity. You will enable the UITableViewCells for goals to be updated with a UITableViewRowAction set to update the goalProgress attribute.

  • Core Data - Challenge  

    In this video, you will be given a challenge to extend GoalPost and add an undo feature.

Full Stack Development With Firebase
  • Intro to App: Breakpoint  

    In this video, you will be introduced to Breakpoint – the coder-centric social media app you will be building in this section. It features a public feed, group messaging, and a real-time Firebase backend.

  • Creating Xcode Project / Setting Up Project Folders  

    In this lesson, you will create the Xcode project for Breakpoint and set up some organizational folders for the Model, View, and Controller layers as well as folders for Extensions and Services.

  • Creating Firebase Project  

    In this video, you will create a new project in the Firebase Console. Then, you will download a .plist file containing valuable Firebase data. You will install the Firebase CocoaPods to give our Xcode project the ability to communicate with Firebase.

  • Setting Up DataService / Creating Firebase Database Users  

    In this lesson, you will create a singleton class called DataService which will allow you to interface with our Firebase Database. You will write a function allowing you to create users and add them to the Database as well.

  • Building AuthVC and LoginVC in Interface Builder  

    In this lesson, you will build out AuthVC and LoginVC in Interface Builder.

  • Creating InsetTextField and ShadowView Subclasses  

    In this lesson, you will create the InsetTextField and ShadowView subclasses which you will use to set custom appearance for several UI elements in AuthVC and LoginVC.

  • Setting up AuthService  

    In this lesson, you will write AuthService – a singleton class responsible for registering and logging in users to Firebase.

  • Building FeedVC and GroupsVC in Interface Builder  

    In this lesson, you will build FeedVC and GroupsVC in Interface Builder.

  • Presenting LoginVC from AppDelegate / Allowing Login with Email  

    In this lesson, you will set up the AppDelegate to monitor for changes to the currently authenticated user and present LoginVC if the user is ever logged out. You will also authenticate users with their email and upload them to Firebase.

  • Building MeVC and Adding to UITabBarController  

    In this video, you will build MeVC – the profile screen – and add it as the third tab of our UITabBarController.

  • Creating CreatePostVC and Uploading Posts to Firebase  

    In this lesson, you will build CreatePostVC in Interface Builder, then write a function which will allow you to upload feed posts to Firebase.

  • Creating UIView Extension for Binding Views to Keyboard  

    In this lesson, you will create an extension of UIView that will let you bind any UIKit element that inherits from UIView to the keyboard so that when the keyboard slides up, so does the element you choose.

  • Building FeedCell  

    In this lesson, you will build the interface for FeedCell in Interface Builder. Then, you will create the subclass code file and link them.

  • Writing the Message Model and Getting All Feed Messages from Firebase  

    In this lesson, you will write out the Message model layer, considering everything a message should contain and at the end you will write a function that downloads all messages from Firebase.

  • Converting UIDs into Emails and Reversing the Order of a TableView  

    In this lesson, you will write a function that converts a user's UID into their registered email for use in Breakpoint. You will also learn a ridiculously simple way to reverse the order of UITableView.

  • Creating CreateGroupVC and Connecting @IBOutlets/Actions  

    In this lesson, you will build CreateGroupVC and connect the required @IBOutlets/Actions.

  • Creating UserCell  

    In this lesson, you will create UserCell in Interface Builder and and code, then load static data to verify that they work properly.

  • Searching for Email Accounts to Add to Group  

    In this lesson, you will write a function that will search through email accounts for users in our app and return those that match the search query.

  • Adding Users to Group with didSelectRowAt indexPath  

    In this lesson, you will use the UITableView delegate method didSelectRowAt indexPath to show and hide a checkmark when the cell is tapped. You will also add users to a temporary array used when pushing the group to Firebase.

  • Creating Groups and pushing them to Firebase  

    In this lesson, you will setup the 'DONE' button in the CreateGroupVC to push a group up to the groups child in Firebase.

  • Creating GroupCell  

    In this lesson, you will create GroupCell in Interface Builder and and code, then load static data to verify that they work properly.

  • Creating Group Model and Getting All Groups from Firebase  

    In this lesson, you will create a model layer called Group, which will be used to create instances of our groups from Firebase. You will write a function that will pull down all group data from Firebase.

  • Building GroupFeedVC  

    In this lesson, you will build out GroupFeedVC in Interface Builder – the screen where your private group chat will live.

  • Initializing Group Data for a Group and Presenting on GroupFeedVC  

    In this lesson, you will initialize group data when selecting a cell from GroupsVC, then present the data on the following UIViewController – GroupFeedVC.

  • Downloading All Message for a Group and Animating Upon New Message  

    In this lesson, you will write a function to download all group messages and utilize a UIScrollAnimation to allow the UITableView to scroll nicely to the bottom when a new message is sent.

  • Creating a UIViewController Extension for Presenting GroupFeedVC  

    In this lesson, you will write a UIViewController extension to animate the presentation of GroupFeedVC similar to how a UINavigationController does.

  • Full Stack Development with Firebase - Challenge  

    In this lesson, you will be given a challenge to extend Breakpoint to include several new features. You rock!

  • Dev Tip: Make A Schedule  
Intro to iOS 11 Machine Learning With CoreML
  • Intro to app  
  • Intro to CoreML  

    In this lesson, you will be introduced to Core ML – one of Apple’s newestframeworks for integrating Machine Learning into iOS apps. You will learn what topics will be covered in thissection.

  • What is machine learning?  

    In this lesson, you will briefly learn about machine learning – what it is, how it’sused, and why it matters.

  • Creating Xcode 9 project  

    In this lesson, you will create your Xcode project and set up some organizationalgroups so we can begin building Vision.

  • Building UI & custom classes  

    In this lesson, you will build the UI of the Vision app and write several custom viewsubclasses to customize view appearance

  • AVFoundation & AVCaptureSession to use the camera  

    In this lesson, you will utilize AVFoundation to display a screen-sized camera view

  • Tap gestures to take snapshot on item  

    In this lesson, you will add a UITapGestureRecognizer to the camera view to enablecapturing images and pass those images to a UIImageView.

  • Core ML Xcode 9 Beta 4 Update / Fix Preview Photo Crash  

    In this lesson, you will learn how to properly save the preview photo after the removal of availablePreviewPhotoPixelFormatTypes in Xcode 9 Beta 4.

  • Adding UI controls for flash control  

    In this lesson, you will write an enum that will help the user of this app in turning thecamera flash on or off.

  • Training your app to speak what it sees  

    In this lesson, you will create an instance of AVSpeechSynthesizer which will readout the classifications from our app in natural language.

  • Downloading CoreML models  

    In this lesson, you will download and setup SqueezeNet, a CoreML model provided by Apple and use it to classify objects in an image.

  • Dev Tip: What kind of apps should I build?  
ARKit & SceneKit
  • App: RampUp - Intro to ARKit App  
  • App: RampUp - Resources & important ARKit info  
  • App: RampUp - Project creation  
  • App: RampUp - SceneKit, 3D models & materials  
  • App: RampUp - Ramp picker popover  
  • App: RampUp - 3D models in SceneKit for popover  
  • App: RampUp - 3D models in SceneKit for popover part 2  
  • App: RampUp - Detecting taps on 3D objects  
  • App: RampUp - Placing ramps in ARKit  
  • App: RampUp - Moving objects in 3D space in augmented reality  
  • ARKit - where to go next  
  • Dev Tip: How to get your first paying job  
Reviews (0)