Users like responsive apps, be a good neighbor on multitasking on iPad (hah), efficient apps save battery power.
Know the technologies and then pick the best one. (was that really necessary?)
Use Instruments.app, code-level instrumentation
Xcode debugger, Instruments (Allocations, Leaks)
Use CFAbsoluteTimeGetCurrent()
and subtract end from start.
60fps son
How you react to user input. 100ms is the threshold for user perception), make sure you test on the oldest supported hardware (fuck the A5)
Don’t tweak performance related code without measuring
- Reproduce
- Profile
- Measure
- Make code change based on hypothesis
When you have a blocking call replace it with non-blocking or use GCD
Reclaiming memory takes time, sudden high-memory demand impacts responsiveness. The more efficient you are in the background the less aggressively your process will be killed.
- send appropriately sized and formatted responses
- send resized images
- Use app context to update bi-directional shared state
- When impossible to resize on the server, use the iPhone to resize/process content etc… (Use
WCSession
)
- Performance is a feature
- Efficient apps are nice
- Learn about everything then make right choices (/s)
- Optimize downloads