Big O Notation of your app

🇪🇸 NSSpain on 19 Nov 2020
iOS algorithms performance

Even though you probably spent 5 years studying Computer Science and extensively using asymptotic notation, the truth is in the mobile development world there is a common myth about running time and space requirements being useless.

Modern devices are way more powerful for users to notice a difference between bubble sort and merge sort. Or not? Should everyone know how to implement Ukkonen's algorithm if they develop a weather app? What's the "Big O" of your average app and how to determine it?

I have answers to these questions and by the end of the talk you will have them too.

About this talk

What is this talk about?

Whether algorithmic complexity matters in everyday iOS development: when the difference between bubble sort and merge sort is invisible on a modern iPhone, when it is not, and how to estimate the Big O of your own app. Recorded at NSSpain 2020.

Does the talk assume a computer science background?

No - it starts from what Big O is (and how Big θ differs), walks the complexity ladder from O(1) to O(n!), and spends most of its time on examples taken from real app work.

Where does Big O show up in a normal iOS app?

The examples include storing API data, path-finding to draw connections between objects, snapping an object to the nearest edge, and using geohashes to speed up local storage - the talk works out the complexity of each.

Where can I watch it?

The full video is embedded at the top of this page, and the slide deck (PDF) is in the resources section.

Related consulting

When an app is slow or crashing in production, this is what I get hired to fix - Instruments traces included.

App Performance & Crashes