mobile-performance-tuning
Implements guild-plan.md §6.1 (mobile · performance-tuning) under §6.4 engineering principles: measure first, optimize second; any speed-up without a before/after number is folklore.
What you do
Pick the right instrument (Instruments / Xcode Organizer, Android Studio Profiler / Perfetto, Flipper, React Native Performance Monitor), capture a baseline on a real low-end device, ship the smallest fix that moves the metric, and confirm with a post-fix capture.
- Define the target metric up front: cold start (time-to-first-frame), scroll jank (p95 frame time), memory peak, steady-state CPU, battery per session.
- Test on real representative hardware — simulators hide thermal, GPU, and IO behavior.
- Reduce startup work: lazy-init SDKs, move heavy work off the main thread, trim launch-time DI.
- Scroll fixes: cell reuse, fixed row heights, off-screen prefetch, image decode off main.
- Memory: track retained heap over time, kill caches that never evict.
- Report before/after with the same device, OS, build flavor, and scenario — otherwise the comparison is noise.
Output shape
A short report:
- Instrument plan — which tool, what device, what scenario, what metric.
- Baseline — captured traces / numbers with screenshots of the flame graph or trace.
- Fix list — ordered, each with estimated impact and cost.
- Post-fix metrics — same scenario, delta from baseline.
- Regression guard — an automated perf test or a CI check to prevent bitrot.
Anti-patterns
- Optimizing without measuring — random speculative changes without a baseline.
- Micro-benchmarks on a high-end device when users are on a Moto G — unrepresentative.
- Ignoring low-end devices entirely — median user, not p1 reviewer hardware.
- Fixing cold start while making warm start worse — track all scenarios you care about.
- Releasing perf wins with no regression test — the next feature undoes them silently.
- Optimizing the wrong layer — e.g. JS fixes when the bottleneck is native image decode.
Handoff
Return the report path and the list of code changes (if any) to the invoking mobile specialist. Fix implementation typically chains to mobile-ios-swift, mobile-android-kotlin, or mobile-react-native. If the cause is server-side, handoff goes to the backend group. This skill does not dispatch.
Source: lookatitude/guild — distributed by TomeVault.
1---2name: lookatitude-guild-mobile-performance-tuning3description: mobile-performance-tuning4---56# mobile-performance-tuning78Implements `guild-plan.md §6.1` (mobile · performance-tuning) under `§6.4` engineering principles: measure first, optimize second; any speed-up without a before/after number is folklore.910## What you do1112Pick the right instrument (Instruments / Xcode Organizer, Android Studio Profiler / Perfetto, Flipper, React Native Performance Monitor), capture a baseline on a real low-end device, ship the smallest fix that moves the metric, and confirm with a post-fix capture.1314- Define the target metric up front: cold start (time-to-first-frame), scroll jank (p95 frame time), memory peak, steady-state CPU, battery per session.15- Test on real representative hardware — simulators hide thermal, GPU, and IO behavior.16- Reduce startup work: lazy-init SDKs, move heavy work off the main thread, trim launch-time DI.17- Scroll fixes: cell reuse, fixed row heights, off-screen prefetch, image decode off main.18- Memory: track retained heap over time, kill caches that never evict.19- Report before/after with the same device, OS, build flavor, and scenario — otherwise the comparison is noise.2021## Output shape2223A short report:24251. **Instrument plan** — which tool, what device, what scenario, what metric.262. **Baseline** — captured traces / numbers with screenshots of the flame graph or trace.273. **Fix list** — ordered, each with estimated impact and cost.284. **Post-fix metrics** — same scenario, delta from baseline.295. **Regression guard** — an automated perf test or a CI check to prevent bitrot.3031## Anti-patterns3233- Optimizing without measuring — random speculative changes without a baseline.34- Micro-benchmarks on a high-end device when users are on a Moto G — unrepresentative.35- Ignoring low-end devices entirely — median user, not p1 reviewer hardware.36- Fixing cold start while making warm start worse — track all scenarios you care about.37- Releasing perf wins with no regression test — the next feature undoes them silently.38- Optimizing the wrong layer — e.g. JS fixes when the bottleneck is native image decode.3940## Handoff4142Return the report path and the list of code changes (if any) to the invoking `mobile` specialist. Fix implementation typically chains to `mobile-ios-swift`, `mobile-android-kotlin`, or `mobile-react-native`. If the cause is server-side, handoff goes to the backend group. This skill does not dispatch.4344---45> Source: [lookatitude/guild](https://github.com/lookatitude/guild) — distributed by [TomeVault](https://tomevault.io).46<!-- tomevault:4.0:skill_md:2026-05-22 -->