304: Island of Shortcuts

Topics covered
Popular Clips
Questions from this episode
- Asked by 8 people
- Asked by 5 people
- Asked by 4 people
- Asked by 3 people
- Asked by 2 people
- Asked by 1 person
- Asked by 1 person
- Asked by 1 person
- Asked by 1 person
- Asked by 1 person
- Asked by 1 person
Episode Highlights
Debugging
faced significant challenges while debugging Overcast, particularly with a bug causing the app to crash during playback. He initially suspected the watch transcode engine but later discovered the issue was related to streaming mode, where the app would enter an infinite loop if a download was interrupted 1. Marco reached out on Twitter for help, which led to identifying and fixing the bug in the test flight beta 2. He explains the complexity of debugging without reproduction steps, emphasizing the importance of community feedback in resolving such issues 3.
When you would go to press play after that it would resume playback, but the part of the file that wasn't downloaded, overcast, would basically get into an infinite loop in a background thread.
---
This infinite loop caused the app to use excessive CPU resources, leading to its termination by iOS.
Performance
Performance issues in Overcast were primarily linked to CPU usage spikes, which managed to address using Apple's network link conditioner tool. This utility allowed him to simulate slow network conditions, helping him reproduce the problem and identify the root cause 4. By profiling the app with Xcode's instruments, Marco discovered that a render method was being called excessively, leading to high CPU usage 5. This insight was crucial for optimizing the app's performance and preventing future crashes.
I was able to slow down my connection to 3g speeds, which would give it enough time to get the app suspended into the background without the file being fully downloaded.
---
These tools and techniques were instrumental in resolving the performance bottlenecks in Overcast.














