21.3 · MetricKit, Organizer and a performance culture
Lab numbers tell you what is possible. Field numbers tell you what your users actually get on old phones, full storage and bad networks, and they are the ones a release is judged by.
Mental model. The lab finds and fixes; the field decides whether it mattered. A team needs both, and a way to stop regressions before they ship.
From real devices
What MetricKit delivers and how it differs from a crash reporter.
- What does MetricKit give you in production, how do you subscribe, and what is the difference between metric and diagnostic payloads?
MetricKit collects on-device metrics from real users and delivers them to your app. You adopt MXMetricManagerSubscriber, register with…
Keeping it fast
Budgets, gates and rollout guardrails.
- How do you build a performance culture on a team: budgets, regression gates, ownership and release guardrails?
Performance gets worse by a thousand small changes that each looked harmless, so the answer is process that catches them early, not heroics late. Start with…
More in Performance & energy
- 21.1 · Measure first: the method, the metrics and the noise
- 21.2 · Instruments templates, signposts and XCTMetric
- 21.4 · SwiftUI invalidation and long lists
- 21.5 · The costs that show up in profiles: collections, strings, formatters, JSON, images and disk
- 21.6 · Energy: CPU wake-ups, timers, radios, location and thermal state
- 21.7 · App size: thinning, on-demand resources and the binary
- 21.8 · Writing benchmarks you can believe: the optimiser, build settings and growth tests
- 21.9 · Memory you can count: allocations, dirty versus clean pages and decoded images
- 21.10 · The main thread in code: hang watchdogs, actor hops and quality of service
- 21.11 · Launch: lazy initialisation and measuring from process start
- 21.12 · Counting wake-ups: why polling costs energy even when the work is tiny