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:
Who this course is for:
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:
Source code for the Swift lessons
In this lesson, you will learn about enumerations in Swift, how to use them, and how they can help you.
Set up your project with assets and cocoa pods.
Learn how to add a slide out menu using SWReveal
In this lesson we build out the ChannelVC UI
In this lesson we build out the LoginVC UI
In this lesson we build out the CreateAccountVC UI
Learn how web requests and APIs work
Learn how to host an API on Heroku
Locally Hosting API
Learn how to create a web request in Xcode
Use web requests to register a user
Use web requests to login a user
Use web requests to create a user on the API
Create an avatar picker using collection view
Create an avatar picker using collection view
Randomly generate avatar background color
Update the UI based on logged in status
Create the profile view
Use web requests and Alamofire to log in a user
Use web requests and Alamofire to retrieve chat channels
Display the fetched channels in the table view
Create the Modal to add Channels
Use sockets to add a new channel
Use notifications to refine the login flow logic
Retrieve messages from the API
Send first message to the API with sockets
Display the retrieved chat messages
Use sockets to send and receive messages
Use sockets to know when others are typing
Use sockets to know there is an unread message
Take this app further!
Convert ISO8601 Dates
In this lesson, you will create the Xcode project needed to build Pixel City. You will also create the folders needed for this project.
In this lesson, you download and install Alamofire and AlamofireImage – very popular and well-supported CocoaPods we will use for networking.
In this lesson, you will build the user interface of MapVC and enable it to work by setting the delegate and conforming to MKMapViewDelegate.
In this lesson, you will request location services bearing in mind the changes to iOS 11 location services.
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.
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.
In this lesson, you will add a UILabel to indicate image download progress and programmatically add a UICollectionView to the Pull Up View.
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.
In this lesson, you will download URLs for images using the Flickr API and Alamofire.
In this lesson, you will download images and populate an array with images using the Flickr API and AlamofireImage.
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.
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.
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.
In this video, you will be introduced to GoalPost – the Core Data goal setting app you'll be building in this section.
In this lesson, you will create the Xcode project used to build GoalPost. You will also set up project folders for organizational purposes.
In this lesson, you will build GoalsVC in Interface Builder. This is the home screen of GoalPost.
In this lesson, you will build GoalCell in Interface Builder and also create the code subclass to go with it.
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.
In this lesson, you will configure some static instances of GoalCell in order to confirm that out UITableView is working properly.
In this lesson, you will build out CreateGoalVC in Interface Builder. This ViewController is where the user describes their goal and sets it type.
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.
In this lesson, you will create an extension of both UIView and UIButton which will help with various UI enhancements.
In this lesson, you will build out FinishGoalVC in Interface Builder and pass data to it from CreateGoalVC.
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.
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.
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.
In the lesson, you will write a function to remove an object from the Persistent Store using a UITableViewRowAction set up for deletion.
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.
In this video, you will be given a challenge to extend GoalPost and add an undo feature.
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.
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.
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.
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.
In this lesson, you will build out AuthVC and LoginVC in Interface Builder.
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.
In this lesson, you will write AuthService – a singleton class responsible for registering and logging in users to Firebase.
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.
In this lesson, you will build FeedVC and GroupsVC in Interface Builder.
In this video, you will build MeVC – the profile screen – and add it as the third tab of our UITabBarController.
In this lesson, you will build CreatePostVC in Interface Builder, then write a function which will allow you to upload feed posts to Firebase.
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.
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.
In this lesson, you will build the interface for FeedCell in Interface Builder. Then, you will create the subclass code file and link them.
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.
In this lesson, you will build CreateGroupVC and connect the required @IBOutlets/Actions.
In this lesson, you will create UserCell in Interface Builder and and code, then load static data to verify that they work properly.
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.
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.
In this lesson, you will setup the 'DONE' button in the CreateGroupVC to push a group up to the groups child in Firebase.
In this lesson, you will create GroupCell in Interface Builder and and code, then load static data to verify that they work properly.
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.
In this lesson, you will build out GroupFeedVC in Interface Builder – the screen where your private group chat will live.
In this lesson, you will initialize group data when selecting a cell from GroupsVC, then present the data on the following UIViewController – GroupFeedVC.
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.
In this lesson, you will write a UIViewController extension to animate the presentation of GroupFeedVC similar to how a UINavigationController does.
In this lesson, you will be given a challenge to extend Breakpoint to include several new features. You rock!
I am a veteran mobile developer having built over 57 mobile apps for iOS and Android, and I've also build multiple Unity 3D games, including Call of Duty Ghosts mobile.
I also spend most of my days now as a professional engineering instructor - changing the lives of students throughout the world - helping them make amazing salaries as engineers.
Devslopes transforms beginner students into paid professionals through curated project based videos, interactive quizzes, and exercises. After completing each course, you will have a strong portfolio, coupled with the technical understanding to build your own custom applications.
Our target students are:
By taking our courses, our students have been able to:
We strive to teach students how to code through polished apps inspired by real world examples. We want our students to build projects that they are proud of, that look and operate just like apps they use in their everyday life.
We are passionate about helping people reveal their hidden talents and guiding them into the exciting world of startups and programming.