This course demonstrates practical techniques for adding concurrency to your iOS apps in order to increase responsiveness and more fully utilize the iPhone and iPad hardware. You'll build a solid foundation for using the concurrency APIs by learning how to create and use blocks in Objective-C. You'll learn to use a number of the functions in Apple's Grand Central Dispatch API and how to send code blocks to dispatch queues for both synchronous and concurrent execution. You'll also learn how to use operation queues and how they differ from dispatch queues and when you might choose one over the other. The last module will focus on how to create your own NSOperation subclasses to encapsulate tasks to be executed on operation queues. Performing work concurrently doesn't have to be hard and the APIs provided by Apple have made it easier than ever to take advantage of modern multi-core processors. This course will show you how.