iOS 11 & Swift 4: From Beginner to Paid Professional™
4.7 (535 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,889 students enrolled
Wishlisted Wishlist

Please confirm that you want to add iOS 11 & Swift 4: From Beginner to Paid Professional™ to your Wishlist.

Add to Wishlist

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

Build iOS Apps & Learn iOS 11, Swift 4, ARKit (Augmented Reality), CoreML (Machine Learning)
4.7 (535 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,889 students enrolled
Last updated 8/2017
English
English
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
Includes:
  • 41 hours on-demand video
  • 1 Article
  • 116 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I 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
View Curriculum
Requirements
  • Must have a computer with OSX or macOS on it
Description

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
Students Who Viewed This Course Also Viewed
Curriculum For This Course
180 Lectures
41:00:12
+
Getting Started With Xcode 9 & iOS 11
5 Lectures 48:55
+
Learn to Code With Swift 4
15 Lectures 03:26:47
Variables, operators, and how computers work
16:48

Source code for the Swift lessons

Source Code
00:01

Strings in Swift
15:22

Working with numbers in Swift
19:53

Swift functions
22:39

Booleans & conditional logic in Swift
20:57

Constants & logical operators in Swift
10:27

Array data structure in Swift
13:06

Swift loops
18:59

Dictionary data structure in Swift
18:44

Object oriented programming in Swift
12:00

Inheritance & OOP in Swift
08:19

Polymorphism & OOP in Swift
08:22

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

Enumerations
19:47

Swift 4 Quiz
5 questions

Dev Tip: How to retain knowledge
01:23
+
Version Control With Git
10 Lectures 01:29:34

Terminal Basics - Changing directories
06:07

Terminal Basics - Creating directories & files
04:30

Terminal Basics - Copying & renaming files
08:57

Terminal Basics - Deleting files & directories
06:01

Git Basics
17:16

Setting up Github
04:36

Working with Local & Remote Repositories
11:14

Handling Git Merge Conflicts
16:52

Dev Tip: Focus on today
02:02
+
Core iOS 11: Auto Layout, Segues, and Professional Apps
18 Lectures 04:32:56
App: Swoosh 01 - Creating the welcome screen
25:18

App: Swoosh 02 - Working with frames
16:05

App: Swoosh 03 - Intro to auto layout (support multiple screen sizes)
26:41

App: Swoosh 04 - Working with stack views
26:38

App: Swoosh 05 - Intro to segues (changing screens)
09:39

App: Swoosh 06 - Refactoring in Xcode 9
09:39

App: Swoosh 07 - Debugging: setValue forUndefinedKey
03:45

App: Swoosh 08 - Programmatic segues
09:01

App: Swoosh 09 - IBActions (handling events) & data models
16:16

App: Swoosh 10 - Passing data between view controllers
11:45

App: Dev Profile 01 - Auto layout for iPhones
22:28

App: Dev Profile 02 - Auto layout for iPads (size classes)
19:59

App: Window Shopper 01 - Custom text fields
17:42

App: Window Shopper 02 - Input accessory views & IBDesignable
15:06

App: Window Shopper 03 - Unit testing our data
16:37

App: Window Shopper 04 - Calculation algorithm
13:06

App: Window Shopper 05 - Custom drawing with drawRect
12:26

Dev Tip: Don't ever do this one thing
00:45
+
iOS 11 Tables & Data
6 Lectures 01:43:20
App: Coder Swag 01 - Project creation & IBOutlets
22:32

App: Coder Swag 02 - Tableviews, delegate, and data source
33:16

App: Coder Swag 03 - Collection views (grid layouts)
12:34

App: Coder Swag 04 - Working with data models
13:39

App: Coder Swag 05 - Displaying data in collection view cells
20:02

Dev Tip: How to not get discouraged learning to code
01:17
+
Networking, APIs, REST, and Building a Slack Clone
33 Lectures 10:17:38

Set up your project with assets and cocoa pods.

App: Smack - Project Setup
25:46

Learn how to add a slide out menu using SWReveal

App: Smack - SWReveal
20:11

In this lesson we build out the ChannelVC UI

App: Smack - ChannelVC UI
24:39

In this lesson we build out the LoginVC UI

App: Smack - LoginVC UI
22:28

In this lesson we build out the CreateAccountVC UI

App: Smack - CreateAccountVC UI
18:46

Learn how web requests and APIs work

App: Smack - Web request and API
08:53

Learn how to host an API on Heroku

App: Smack - Hosting API
19:58

Locally Hosting API

App: Smack - Locally Hosting API
18:10

Learn how to create a web request in Xcode

App: Smack - Creating a web request in Xcode
28:13

Use web requests to register a user

App: Smack - Registering a User
15:46

Use web requests to login a user

App: Smack - Logging in a user
20:13

Use web requests to create a user on the API

App: Smack - Creating a user
26:13

Create an avatar picker using collection view

App: Smack - Avatar Picker Part 1
19:05

Create an avatar picker using collection view

App: Smack - Avatar Picker Part 2
20:13

Randomly generate avatar background color

App: Smack - Generate a Avatar BG Color
26:21

Update the UI based on logged in status

App: Smack - LoggedIn Interface
23:12

Create the profile view

App: Smack - Profile View
25:34

Use web requests and Alamofire to log in a user

App: Smack - Logging in users
23:23

Use web requests and Alamofire to retrieve chat channels

App: Smack - Getting channels
19:11

Display the fetched channels in the table view

App: Smack - Channels TableView
13:38

Create the Modal to add Channels

App: Smack - Add Channel VC
19:26

Use sockets to add a new channel

App: Smack - Sockets and Channels
26:11

Use notifications to refine the login flow logic

App: Smack - Refining Login Flow
19:10

Retrieve messages from the API

App: Smack - Fetching Messages
20:01

Send first message to the API with sockets

App: Smack - Sending first message
17:11

Display the retrieved chat messages

App: Smack - Displaying chat messages
17:56

Use sockets to send and receive messages

App: Smack - Sockets and Messages
18:37

Use sockets to know when others are typing

App: Smack - Typing Users
21:29

Use sockets to know there is an unread message

App: Smack - Unread Channels
18:07

Take this app further!

Where to go from here
07:36

Convert ISO8601 Dates

I'm Back!
07:43

Dev Tip: Depth over breadth
00:44
+
Maps & GPS
17 Lectures 03:19:17

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

Creating Xcode Project: Pixel City
04:25

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

Installing Alamofire / AlamofireImage Cocoapods
07:11

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

Building MapVC UI /Conforming to MKMapViewDelegate /Setting Delegate of mapView
14:55

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

Requesting Location Services in iOS 11 / Centering Map On User Location
18:03

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.

Adding UITapGestureRecognizer to Drop Custom Pins on MapView
15:09

Setting a Custom Map Annotation Color
04:33

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.

Animating Photos View / Programatically adding spinner and label subviews
19:43

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

Adding UILabel for Pull Up View / Adding UICollectionView Programmatically
16:51

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.

Getting API Key from Flickr / Using Flickr API URL Format
14:05

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

Using Alamofire to Download URLS
20:57

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

Using Alamofire to Download Images / Cancelling All Sessions
16:22

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.

Setting Up UICollectionView / Adding Images / Reloading UICollectionView
10:11

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.

Building PopVC / Presenting PopVC When UICollectionViewCell is Tapped
16:05

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.

Adding 3D Touch Peek & Pop to UICollectionView
14:46

Challenge
02:15

Dev Tip: Put yourself out there
02:02
+
iOS 11 In App Purchases & Google Ads (Admob)
7 Lectures 01:21:01
Setting up developer & iTunes accounts
10:02

Implementing Google AdMob
18:53

Fetching a list of products
14:59

Starting an in-app purchase
08:41

Testing in-app purchases
17:36

Restoring in-app purchases after app deletion
09:03

Dev Tip: How to create a successful app
01:47
+
Intro to Core Data
17 Lectures 03:05:05

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

Intro to App: GoalPost
02:35

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

Creating Xcode Project / Project Folders
03:41

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

Building GoalsVC
13:41

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

Building GoalCell
14:02

What is Core Data?
05:58

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.

Creating Goal Core Data Entity & Attributes
08:08

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

Displaying Static GoalCells in UITableView / Creating GoalType Enum
10:12

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

Building CreateGoalVC
15:12

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 UIViewController Extension
10:47

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

Creating a UIView / UIButton Extension
18:30

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

Building FinishGoalVC / Passing Data from CreateGoalVC
19:09

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.

Saving Goal Data to Persistent Store
12:39

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.

Fixing Dismissal of FinishGoalVC
06:40

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.

Fetching Data from Persistent Store / Filling UITableView with Fetched Data
16:13

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

Removing Objects from Persistent Store using UITableView Delete Action
11:15

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.

Setting Goal Progress for UITableViewCell
14:55

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

Challenge
01:28
+
Full Stack Development With Firebase
28 Lectures 06:41:10

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.

Intro to App: Breakpoint
03:21

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 Xcode Project / Setting Up Project Folders
05:04

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.

Creating Firebase Project
10:38

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.

Setting Up DataService / Creating Firebase Database Users
10:33

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

Building AuthVC and LoginVC in Interface Builder.
18:27

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.

Creating InsetTextField and ShadowView Subclasses
18:24

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

Setting up AuthService
13:04

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.

Presenting LoginVC from AppDelegate / Allowing Login with Email
21:50

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

Building FeedVC and GroupsVC in Interface Builder
16:20

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

Building MeVC and Adding to UITabBarController
09:45

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 CreatePostVC and Uploading Posts to Firebase
20:14

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.

Creating UIView Extension for Binding Views to Keyboard
14:49

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.

Writing the Message Model and Getting All Feed Messages from Firebase
21:01

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

Building FeedCell
09:38

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.

Converting UIDs into Emails and Reversing the Order of a TableView
20:15

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

Creating CreateGroupVC and Connecting @IBOutlets/Actions
15:02

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

Creating UserCell
15:39

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.

Searching for Email Accounts to Add to Group
18:42

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.

Adding Users to Group with didSelectRowAt indexPath
20:34

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

Creating Groups and Pushing Them to Firebase
15:32

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

Creating GroupCell
14:59

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.

Creating Group Model and Getting All Groups from Firebase
18:52

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

Building GroupFeedVC
18:00

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

Initializing Group Data for a Group and Presenting on GroupFeedVC
15:58

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.

Downloading All Message for a Group and Animating Upon New Message
24:00

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

Creating a UIViewController Extension for Presenting GroupFeedVC
07:29

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

Challenge
01:53

Dev Tip: Make A Schedule
01:07
2 More Sections
About the Instructor
Mark Price
4.5 Average rating
26,590 Reviews
159,104 Students
16 Courses
Unity 3D Android iOS 10 Swift 3 & React Teacher

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.

My passion is helping people reveal hidden talents and guide them into the world of startups and programming. I currently am teaching iOS 10, Apple TV & tvOS, React & Flux web development, Objective-C, Swift 3, Android, Javascript, Node, and Java. I also teach Unity 3D game development.

Devslopes by Mark Price
4.5 Average rating
26,060 Reviews
158,707 Students
15 Courses
Learn programming & app development

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:

  • First time developers
  • Entrepreneurs who want to build their own technology startup
  • Current developers looking to either advance their careers or learn new technologies.


By taking our courses, our students have been able to:

  • Get jobs as developers with amazing salaries
  • Launch (and even sell) their technology startups 
  • Get promotions and make substantial career changes


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.