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:
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.
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.
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.
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.
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!
Video 6: OperationQueue. Learn how to use OperationQueue to gain more power and control over the scheduling and execution of Operations.
Video 7: AsyncOperation. Learn how to use an Operation to wrap an asynchronous function such as a network call into a reusable object.
Video 8: Dependencies. Learn how to create dependencies between different Operations, and how to pass data from one Operation to another.
Video 9: Cancelling Tasks. Learn how to cancel an Operation while it’s running.
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.
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! :]