Download the slides here.


The exercise is to take the starter project that performs some long running tasks on the main thread and unblock the UI by using various different approaches:

  1. Create a non-blocking version of the app that updates the progress label correctly using GCD
  2. Improve the performance of the app by submitting each operation as an individual block, ensure that the “Completed” message is still displayed correctly
  3. Refactor the code to use GCD groups to determine when all tasks have completed
  4. Increase the operation count from 20 to 1000 and add buttons to start and cancel operations (hint: use NSOperationQueue)

Start the assignment here.


If you have feedback on this tutorial or find any mistakes, please open issues on the GitHub Repository or comment below.

Summer academy

An iOS Development Summer Course

Design, code and launch your own app. Locations in San Francisco and Asia

Find your location

Product College

A computer science college

Graduate into a successful career as a founder or software engineer.

Learn more

Cookies on Make School's website

We have placed cookies on your device to ensure that we give you the best experience on our website.

This site uses cookies to deliver our services. By using our site, you acknowledge that you have read and understand our Cookie Policy, Privacy Policy, and our Terms of Service. Your use of Make School’s Products and Services is subject to these policies and terms.

Please note that Make School no longer supports Internet Explorer

We recommend upgrading to a modern web browser. Learn more