home / skills / secondsky / claude-skills / mobile-app-debugging
This skill helps you diagnose mobile app issues across iOS, Android, and React Native, guiding debugging steps and best practices.
npx playbooks add skill secondsky/claude-skills --skill mobile-app-debuggingReview the files below or copy the command above to add this skill to your agents.
---
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)
```swift
// 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)
```kotlin
// 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
```javascript
// 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
```javascript
// 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 |
This skill provides practical debugging techniques for iOS, Android, and cross-platform mobile apps. It focuses on crashes, memory leaks, performance bottlenecks, network issues, and native-bridge errors for frameworks like React Native. The content is aimed at developers who need concrete steps and tooling guidance to triage and fix production and development problems quickly.
The skill walks through platform-specific tools and commands: Xcode and LLDB tips for iOS, Android Studio and Logcat approaches for Android, and JavaScript debugging methods for React Native. It includes memory and performance profiling workflows, network request interception patterns, and a testing checklist to reproduce issues on real devices. Use the procedures to identify root causes, reproduce bugs reliably, and validate fixes against performance targets.
How do I capture a native crash stack for iOS?
Run the app from Xcode, reproduce the crash, then use LLDB commands like bt to get a backtrace and po to inspect objects. Symbolicate crash logs if needed.
What’s the quickest way to find memory leaks on Android?
Use Android Studio Memory Profiler to record allocations and heap dumps, then inspect objects retained and investigate large or growing dominating references.
How can I measure React Native frame drops?
Open the Performance Monitor (shake device > Show Perf Monitor) and target 60 FPS with less than 16ms per frame; correlate spikes with JS work and native layout passes.