mobile-app-debugging

secondsky's avatarfrom secondsky

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.

⭐9stars🔀0forks📁View on GitHub🕐Updated Jan 1, 2026

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.
namemobile-app-debugging
descriptionMobile 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