iOS Development: Threading and Grand Central Dispatch
40mIntermediate2020-07-22
Authors

Grace Njoroge
iOS developer specializing in Swift, Firebase and agile methodologies
Course details
Users expect their iOS apps to be fast and responsive. Grand Central Dispatch (GCD)—a Swift framework that allows you to execute code concurrently on multicore hardware—can help you ensure that your app meets these expectations. In this course, instructor Grace Njoroge helps you get up and running with GCD, explaining how to put code or tasks on threads to speed up your iOS app and make it more responsive to users. She covers asynchronous and synchronous execution, deadlocks, how multithreading keeps apps from stalling while handling heavy operations, how to work with queues, and how GCD factors into all of these topics. Along the way, she shares scenarios that lend a real-world context to these concepts.
Skills covered
XcodeSwiftiOS DevelopmentiOSMobile DevelopmentAppleProgramming LanguagesSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - iOS development - Grand Central Dispatch
- 02 - What you should know
1. Evolution of GCD
- 03 - Traditional threading
- 04 - What is Grand Central Dispatch
- 05 - Adding multithreading
- 06 - Challenge - Optimizing the collection view
- 07 - Solution - Optimizing the collection view
2. Working with Queues
- 08 - What are queues
- 09 - The main queue
- 10 - The global queue
- 11 - Developing a custom queue
- 12 - Challenge - Download images in a collection view
- 13 - Solution - Download images in a collection view
3. Asychronous vs. Synchronous Execution
- 14 - What are async and sync programming
- 15 - Dispatching asynchronously
- 16 - Dispatching synchronously
- 17 - Challenge - Load images in a collection view
- 18 - Solution - Load images in a collection view
4. Concurrency vs. Parallelism
- 19 - What are deadlocks
- 20 - Avoiding deadlocks using dispatch async
- 21 - Challenge - Resolving a deadlock
- 22 - Solution - Resolving a deadlock
Conclusion
- 23 - Digging deeper into GCD's API