How do you monitor Flutter app performance in production?
TL;DR: Firebase Performance Monitoring automatically tracks app start time, network requests, and screen rendering. Add custom traces for business-critical operations. Sentry also provides performance monitoring with transaction tracing. Alert on p95 latency regressions.
Full Answer
Production performance monitoring differs from DevTools profiling — you're measuring real user devices, real network conditions, real data. Firebase Performance gives you percentile breakdowns (p50, p75, p95, p99) across your entire user base.
Automatic Monitoring
- ▸App start time: time from process start to first frame
- ▸Network requests: latency, success rate, payload size for all HTTP calls
- ▸Screen rendering: slow/frozen frame rates per screen
Custom Traces
Wrap business operations in custom traces: 'question_load', 'quiz_submit', 'image_process'. See the p95 latency for each — if 5% of users take >3s to load a question, you have a problem.
Code Examples
// Firebase Console: shows p50/p75/p95 for 'load_questions' // Filter by category attribute: see which categories are slow // Alert: if p95 > 2000ms, fire a PagerDuty/Slack alert
Common Mistakes
- ✗Only monitoring in development (DevTools) but not production — real user conditions differ dramatically from dev
- ✗Not adding custom attributes to traces — can't segment 'why is this slow' without category/user context
Interview Tip
p95 latency (the slowest 5% of users) is the production metric that matters. p50 looks fine but p95 catches tail latency issues. Show you track percentiles, not just averages.