mobile-app-debugging
Mobile app debugging for iOS, Android, cross-platform frameworks. Use for crashes, memory leaks, performance issues, network problems, or encountering Xcode instruments, Android Profiler, React Native debugger, native bridge errors.
When & Why to Use This Skill
This Claude skill provides comprehensive technical guidance for debugging mobile applications across iOS, Android, and cross-platform frameworks like React Native. It helps developers identify and resolve critical issues such as memory leaks, performance bottlenecks, network failures, and platform-specific crashes using advanced tools like Xcode Instruments and Android Profiler to ensure high-performance mobile experiences.
Use Cases
- Case 1: Resolving iOS application crashes and memory management issues using LLDB commands, breakpoints, and Xcode's Memory Graph Debugger.
- Case 2: Diagnosing Android performance bottlenecks, ANR (App Not Responding) errors, and layout issues using Logcat filtering and Android Studio Profiler.
- Case 3: Debugging React Native applications by monitoring the native bridge, inspecting JS console logs, and optimizing frame rates to meet the 60 FPS target.
- Case 4: Intercepting and analyzing network traffic to troubleshoot API connectivity issues or data synchronization problems within mobile environments.
- Case 5: Executing pre-release quality assurance checklists, including physical device testing, 3G network simulation, and memory load testing to ensure app stability.
| name | mobile-app-debugging |
|---|---|
| description | Mobile app debugging for iOS, Android, cross-platform frameworks. Use for crashes, memory leaks, performance issues, network problems, or encountering Xcode instruments, Android Profiler, React Native debugger, native bridge errors. |
Mobile App Debugging
Debug mobile applications across iOS, Android, and cross-platform frameworks.
iOS Debugging (Xcode)
// Breakpoint with condition
// Right-click breakpoint > Edit > Condition: userId == "123"
// LLDB commands
po variable // Print object
p expression // Evaluate expression
bt // Backtrace
Memory Debugging
- Use Memory Graph Debugger to find retain cycles
- Enable Zombie Objects for use-after-free bugs
- Profile with Instruments > Leaks
Android Debugging (Android Studio)
// Logcat filtering
Log.d("TAG", "Debug message")
Log.e("TAG", "Error", exception)
// Filter: tag:MyApp level:error
Common Issues
- ANR: Check main thread blocking
- OOM: Profile with Memory Profiler
- Layout issues: Use Layout Inspector
React Native
// Remote debugging
// Shake device > Debug JS Remotely
// Console logging
console.log('Debug:', variable);
console.warn('Warning');
console.error('Error');
// Performance Monitor
// Shake > Show Perf Monitor
// Target: 60 FPS, <16ms per frame
Network Debugging
// Intercept requests
XMLHttpRequest.prototype._send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function() {
console.log('Request:', this._url);
this._send.apply(this, arguments);
};
Debug Checklist
- Test on physical devices (not just simulators)
- Test on older device models
- Simulate slow 3G network
- Test offline mode
- Check memory under load
- Test rotation and safe areas
- Verify 60 FPS target
Performance Targets
| Metric | Target |
|---|---|
| Frame rate | 60 FPS (16ms/frame) |
| Memory | <100MB |
| App launch | <2 seconds |