Advanced Swift 2 Application Development
4.1 (5 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.
44 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Advanced Swift 2 Application Development to your Wishlist.

Add to Wishlist

Advanced Swift 2 Application Development

Learn to develop powerful iOS and WatchOS applications by harnessing the full potential of Swift 2
4.1 (5 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.
44 students enrolled
Created by Packt Publishing
Last updated 5/2016
Curiosity Sale
Current price: $10 Original price: $95 Discount: 89% off
30-Day Money-Back Guarantee
  • 3 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Set up, install, and integrate third-party libraries using Cocoapods
  • Programmatically create views and view controllers and animate them at both, a view and a layer level
  • Implement structured Core Data classes and contexts to enable stable data management
  • Add CoreLocation and MapKit into your application to enable advanced application geo features
  • Integrate a WatchOS application into your project and share classes between targets
  • Send data programmatically between both iOS and WatchOS applications using CoreData, App Groups, and Watch Connectivity
  • Build robust and comprehensive tests using XCTest and the UI Testing suite
  • Create provisioning profiles and distribution certificates, and get to know the requirements to submit your application
View Curriculum
  • You will get the most out of this course if you have at least a beginner to mid-level understanding of development practices.
  • This course provides simple, clear, and easy-to-follow instructions and explanations around the iOS and WatchOS technology stack along with hands-on practical screen casting experience. Tools and advice are given at each stage, so that you are able to learn not just the practical elements, but also the “why” behind each task to enable rapid learning.

The number of smartphone users is increasing every single day, and as more and more of them are looking for new and interesting ways to improve their lives through mobile applications, the need for a language that will deploy on all platforms has become a necessity. This is where Swift 2 steps in, a beautifully crafted and evolving language released by Apple and used across iOS, WatchOS, tvOS, and MacOS native applications. Swift brings additional functionality and stability to your applications, allowing you to create new and exciting ideas with ease. 

This step-by-step guide will help you craft beautiful, well-structured, and stable applications and help you bring innovation to life. As soon as we begin, we'll take a look at what it takes to integrate third-party libraries into our project using CocoaPods, see what the pros and cons are, and get to know how we can set our criteria on suitable libraries.

Throughout the course, we will delve deep into topics such as animation on views and layers, powering strongly data driven and location-driven applications using CoreData and MapKit, integrating our application with WatchOS, and sharing code and data between each application. Finally, we will test our application using Unit Tests and UI Tests, then walk through the process of submitting it to the App Store.

This course truly covers a vast range of topics, providing a hands-on guide throughout each subject area, and ensuring you have the right tools and knowledge to create an advanced-level application. By the end of this course, you will be able to develop iOS applications using Swift 2 and work with some of the more advanced developer frameworks.

About The Author

Paul Napier is an iOS and Android developer working at one of the largest television networks in Australia. His development background covers over a decade working through a wide area of the development stack. Though his passion lies in all things mobile and in working to encourage great project structure, code cleanliness, and the development processes.

He holds a degree in Russian and Business Studies from the University of Leeds, and his background includes sales, iOS, tvOS and Android development, as well as business analysis and social network engineering. 

Who is the target audience?
  • If you are looking to hone your skills in the Swift programming language, this video course will help you achieve your goals.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
35 Lectures
Setting the Scene and Using CocoaPods for Dependency Management
6 Lectures 22:04

This video describes the overview of the entire course.

Preview 04:10

Before we start on the course, we need to review the current code base. 

Reviewing the Project Code

Before we can begin integrating pods into our project, we need to install CocoaPods. 

Installing CocoaPods

Now that we have installed CocoaPods, we need to determine the pods we want to install and review its suitability. 

Reviewing Pods

We have decided on a pod we want to include, so now we want to install it in our project. 

Creating a Podfile to Manage Dependencies

The pod has been installed, so now it is time to use it. 

Using SDWebImage for Lazy Image Loading
Using Animations to Bring Your App to Life
4 Lectures 19:12

We need to add an animation that will present a view and then fade out to reveal our main screen. 

Preview 05:57

CALayers are an important component in the land of iOS, and we need to see how they fit into our world. 

Working with CALayer

Animating layers is different from animating views, so we will discover how this is done. 

Animating with CABasicAnimation

We want to animate our logo, so we will create the letter D using a CAShapeLayer. 

Creating Our Logo in CAShapeLayer
Using Core Data to Persist Your Data
7 Lectures 39:59

In order to take advantage of better data persistence and working with the preferred methodology, we should make use of Core Data. 

Preview 08:58

In order to work with the data, we must first create Entities and Attributes, as well as an associated NSManagedObject. 

Creating Entities and Attributes in the Core Data Editor

Now that we have our Entities, we should know how to save our data in the database. 

Saving Data

Having saved some data in our database, the next thing we want to do is retrieve it. 

Retrieving Data Using NSFetchedResultsController

We need a way to uniquely identify data for updating and duplication checking. 

Updating Data

Sometimes, we need to remove data from the database, so we will make use of Core Data’s inbuilt functionality to do this. 

Deleting Data

Changing the schema without migrating properly will cause your users to crash. 

Updating the Database
Implementing Core Location and MapKit
4 Lectures 25:02

We want to be able to work with our user’s location to provide great location-based services. 

Preview 04:40

In order to display our user’s information, we need to create a MapView. 

Creating a MapView and Centering on Their Position

In order to present the information in the MapView, we will need to generate annotations. 

Creating Map Annotations to Display Your Data

There are many delegate methods we would want to work with, but one of the most important is selecting the annotation. 

Working with MapView Delegate Methods
Creating a WatchOS 2 Application
6 Lectures 31:11

Before we can start creating a Watch application that will be paired to our iOS application, we need to add a WatchOS target to our project. 

Preview 02:52

The watch Interface builder has many similarities to iOS but many differences as well. So we want to create a table view to display our dreams. 

Working with the Interface Builder

In order to make use of Core Data in both targets, we need to use the App Groups entitlement. 

Making Use of App Groups

We want to send messages across from iOS and Watch OS applications, and we can do this with WCSession. 

Working with WCSession

As with the iOS app, we can navigate across multiple controllers and pass data between them. 

Navigating Through the App

A complication is a new way for users to get snapshots of data for your watch app on their device screen and get immediate access to your app. 

Implementing a Complication
Testing Your Application
5 Lectures 17:50

The quality of our code is only as good as the quality of our tests, so let’s add some unit tests to validate our code base. 

Preview 03:13

There is often repetitive code that we will want to implement before and after each test. Fortunately, XCTestCase provides a way to do this. 

Setting Up and Tearing Down Tests

We will need a way to validate the results we receive on each test. 

Using XCAssert to Validate Code

When we write our tests, we don’t always know whether we are writing breadth or depth in testing. Code coverage reports allow us to see how much of our code is being tested. 

Looking at Code Coverage Reports

Unit tests are good, but we also want to validate that our UI is working as expected, so we need to introduce UI Tests. 

Using Xcode to Record UI Tests
Preparing an App for Submission
3 Lectures 09:56

In order to be able to upload our application, we must first sign it with a Distribution certificate and provisioning profiles. 

Preview 05:03

Before we can upload our binary, we must create a new application in iTunesConnect. 

Setting Up the App in iTunes Connect

Now that we have everything we need set up, we want to create an archive and upload it to iTunesConnect. 

Archiving the App and Uploading It to iTunes Connect
About the Instructor
Packt Publishing
3.9 Average rating
7,349 Reviews
52,599 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.