Updated Course: iOS Concurrency with GCD & Operations

Audrey Tam

X_post-Feature-Conc-GCD-NSO

Today I’m happy to announce my newly updated course on raywenderlich.com: iOS Concurrency with GCD & Operations!

Concurrency is a fancy way of saying “running more than one task at the same time”. Concurrency is used quite frequently on iOS devices so you can run tasks in the background (like downloading or processing data) while you keep your user interface responsive.

GCD (or Grand Central Dispatch) and Operations (formerly called NSOperation) are the APIs you use in iOS to manage concurrent tasks (as opposed to working with threads directly).

This is a course for intermediate iOS developers who are looking to master using GCD and Operation to run concurrent tasks in their apps. It’s particularly beneficial for folks who have used GCD and Operations a bit but want to take their knowledge to a deeper level.

It’s also fully up-to-date with Swift 3, Xcode 8, and iOS 10!

Here’s an overview of what’s inside:

Introduction

Video 1: Introduction. You’ll get overview of what concurrency is, the difference between GCD and Operations and when to use each, and take a tour of some classic challenges with concurrency, such as race conditions, priority inversion, and deadlock.

2-Terminology

Video 2: Terminology. You’ll learn the terms you’ll be using in the rest of the series, such as synch vs. asynchronous, serial queue vs. concurrent queue, and you’ll learn how to dispatch your first tasks to GCD queues in a Swift playground.

3-SimpleUseCases

Video 3: Simple Use Cases. Next you’ll take a look at some simple GCD use cases, such as running a chain of tasks, a collection of independent but similar tasks, and how to make synchronous tasks asynchronous.

4-DispatchGroups

Video 4: Dispatch Groups. Learn the power of GCD dispatch groups, which allow you to respond to the completion of a collection of GCD tasks.

5-TiltShiftOperation

Video 5: Operations. Next you’ll go to a higher level of abstraction and use how to use Operation, is a class that allows you to wrap up a unit of work, into a package you can execute at some time in the future. Along the way, you’ll create a cool tilt-shift image filtering operation!

6-OperationQueues

Video 6: OperationQueue. Learn how to use OperationQueue to gain more power and control over the scheduling and execution of Operations.

7-AsyncOperations

Video 7: AsyncOperation. Learn how to use an Operation to wrap an asynchronous function such as a network call into a reusable object.

8-Dependencies

Video 8: Dependencies. Learn how to create dependencies between different Operations, and how to pass data from one Operation to another.

9-Cancellation

Video 9: Cancelling Tasks. Learn how to cancel an Operation while it’s running.

10-OperationsInPractice

Video 10: Operations in Practice. Pull together all the concurrency knowledge you’ve learned so far in this series to improve the scrolling performance of a table view in a realistic app.

11-GeneralAdvice

Video 11: Concurrency Solutions. Learn how to create thread-safe objects to prevent inconsistent state, and how to avoid other concurrency problems.

Where To Go From Here?

Want to check out the course? You can watch the introduction for free!

The rest of the course is for raywenderlich.com subscribers only. Here’s how you can get access:

  • If you are a raywenderlich.com subscriber: The entire course is complete and available today You can check out the first part here.
  • If you are not subscribed yet: What are you waiting for – subscribe now to get access to our updated iOS Concurrency course and our entire catalog of over 500 videos.

We hope you enjoy, and stay tuned for more new Swift 3 courses and updates to come! :]

Audrey Tam

Audrey Tam retired at the end of 2012 from a 25-year career as a computer science academic. Her teaching included Pascal, C/C++, Java, Java web services, web app development in php and mysql, user interface design and evaluation, and iOS programming. Before moving to Australia, she worked on Fortran and PL/1 simulation software at IBM's development lab in Silicon Valley. Audrey now teaches short courses in iOS app development to non-programmers, and attends nearly all Melbourne Cocoaheads monthly meetings.

Other Items of Interest

Save time.
Learn more with our video courses.

raywenderlich.com Weekly

Sign up to receive the latest tutorials from raywenderlich.com each week, and receive a free epic-length tutorial as a bonus!

Advertise with Us!

PragmaConf 2016 Come check out Alt U

Our Books

Our Team

Video Team

... 19 total!

Swift Team

... 15 total!

iOS Team

... 33 total!

Android Team

... 15 total!

macOS Team

... 10 total!

Apple Game Frameworks Team

... 11 total!

Unity Team

... 11 total!

Articles Team

... 12 total!

Resident Authors Team

... 15 total!