Mobile Performance
Purpose
Plan and diagnose mobile performance: locate the real bottleneck (lists, re-renders, images/memory, startup, jank) via measurement and plan safe, behavior-preserving fixes on a representative build.
When to Use
- When a screen/list is janky, slow to start, or memory-heavy.
- Before a performance-motivated refactor.
- Not as blanket optimization without a measured bottleneck.
Inputs
- The slow scenario (screen, action, platform, build).
- Profiling data or a plan to obtain it.
Discovery Questions
- What is slow, under what action/scale, on which platform?
- Debug or release/production-like build?
- Is there a measurement, or must one be taken?
- Low-end device behavior?
Responsibilities
- Locate the bottleneck: list rendering (FlatList config, keys, memoized rows), re-renders, image/memory pressure, startup, or animation jank.
- Plan safe, targeted fixes preserving behavior.
- Validate on a representative build; capture before/after.
- Escalate structural fixes to
../../refactor-planning.
Required Workflow
- Reproduce + measure on a representative build.
- Trace the bottleneck to specific code.
- Plan minimal behavior-preserving fixes.
- Re-measure; capture before/after.
- Record findings + residual risks.
Decision Rules
- No optimization without a measured bottleneck.
- Prefer small measurable wins over rewrites.
- Judge from release-like conditions, not debug.
- Don't add heavy libraries (e.g. list libs) without measured justification.
Rules
- Preserve behavior; performance work is not a feature change.
- Measure before/after; quote numbers.
- Flag unrun measurements 'unverified until run'.
Anti-Patterns
- Premature memoization / blind micro-optimization.
- Judging performance from a debug build.
- Rewriting instead of fixing the measured hotspot.
- Adding a list/image library without data.
Validation Checklist
Definition of Done
A recorded mobile-performance report: measured bottleneck, safe fix plan (or applied fixes), before/after numbers from a representative build, and residual risks — aligned with ../../performance-review.
Related Skills
../../performance-review, ../../refactor-planning, mobile-state-management, mobile-vector-icons, mobile-camera-media, mobile-unit-testing
Related Knowledge
../../../knowledge/ (hot paths).
Related References
../../../references/mobile/screens/, ../../../references/mobile/state/ when populated.
Context Loading Guidance
- Requires: the slow scenario, measurement (or plan), the hot-path code.
- Does not require: unrelated screens, the full mobile skill set, unrelated references.
- May load:
../../refactor-planning if the fix is structural.
- Stop when: before/after is recorded (or measurement flagged unrun).
Token Efficiency Guidance
Read only the measured hot path; quote decisive metrics rather than full profiler dumps.
1---2name: mobile-performance3description: Use to plan and diagnose mobile performance — list rendering, re-renders, image/memory usage, startup, and jank — measured on a representative build. Prefer measured, safe fixes over rewrites. The mobile arm of performance-review.4---56# Mobile Performance78## Purpose910Plan and diagnose mobile performance: locate the real bottleneck (lists, re-renders, images/memory, startup, jank) via measurement and plan safe, behavior-preserving fixes on a representative build.1112## When to Use1314- When a screen/list is janky, slow to start, or memory-heavy.15- Before a performance-motivated refactor.16- Not as blanket optimization without a measured bottleneck.1718## Inputs1920- The slow scenario (screen, action, platform, build).21- Profiling data or a plan to obtain it.2223## Discovery Questions2425- What is slow, under what action/scale, on which platform?26- Debug or release/production-like build?27- Is there a measurement, or must one be taken?28- Low-end device behavior?2930## Responsibilities3132- Locate the bottleneck: **list rendering** (FlatList config, keys, memoized rows), **re-renders**, **image/memory** pressure, **startup**, or **animation jank**.33- Plan **safe, targeted fixes** preserving behavior.34- **Validate** on a representative build; capture before/after.35- Escalate structural fixes to `../../refactor-planning`.3637## Required Workflow38391. Reproduce + measure on a representative build.402. Trace the bottleneck to specific code.413. Plan minimal behavior-preserving fixes.424. Re-measure; capture before/after.435. Record findings + residual risks.4445## Decision Rules4647- No optimization without a measured bottleneck.48- Prefer small measurable wins over rewrites.49- Judge from release-like conditions, not debug.50- Don't add heavy libraries (e.g. list libs) without measured justification.5152## Rules5354- Preserve behavior; performance work is not a feature change.55- Measure before/after; quote numbers.56- Flag unrun measurements 'unverified until run'.5758## Anti-Patterns5960- Premature memoization / blind micro-optimization.61- Judging performance from a debug build.62- Rewriting instead of fixing the measured hotspot.63- Adding a list/image library without data.6465## Validation Checklist6667- [ ] Scenario reproduced + measured (representative build).68- [ ] Bottleneck traced to code.69- [ ] Fixes minimal + behavior-preserving.70- [ ] Re-measured; before/after captured.71- [ ] Residual risks noted.7273## Definition of Done7475A recorded mobile-performance report: measured bottleneck, safe fix plan (or applied fixes), before/after numbers from a representative build, and residual risks — aligned with `../../performance-review`.7677## Related Skills7879`../../performance-review`, `../../refactor-planning`, `mobile-state-management`, `mobile-vector-icons`, `mobile-camera-media`, `mobile-unit-testing`8081## Related Knowledge8283`../../../knowledge/` (hot paths).8485## Related References8687`../../../references/mobile/screens/`, `../../../references/mobile/state/` when populated.8889## Context Loading Guidance9091- **Requires:** the slow scenario, measurement (or plan), the hot-path code.92- **Does not require:** unrelated screens, the full mobile skill set, unrelated references.93- **May load:** `../../refactor-planning` if the fix is structural.94- **Stop when:** before/after is recorded (or measurement flagged unrun).9596## Token Efficiency Guidance9798Read only the measured hot path; quote decisive metrics rather than full profiler dumps.