mobile trained

identify the platform and the layer before touching code, and let the device, not the simulator or the build log, accept the UI.

mental model

Identify framework and layer first: general mobile, React Native/Expo components, React Native profiling, Capacitor safe areas, device logs, or Swift. For rendered acceptance, use device.

examples

Three local tool probes:

swift --version
agent-device react-devtools --help
xcrun devicectl device --help

The last help output did not list a log subcommand. These are tool probes, not a device run.

best practices

Use the existing app architecture and confirm installed SDK versions before following a versioned rule. Profile the target interaction before making performance changes. Test visible layout and user flows on the target device; install, launch, and logs prove narrower facts. React Native performance, Capacitor SystemBars.

strengths

Native logs expose execution failures; safe-area CSS and Capacitor SystemBars cover edge-to-edge layout; React DevTools reveals component render causes; Swift's compiler checks isolation and ownership. Apple logging, Android Logcat.

weaknesses / pain points

Simulator performance differs from physical devices. Generic mobile advice cannot establish an app's actual UI, plugin compatibility, signing, or store approval. Store SDK targets change; check current platform rules at release. App Store requirement, Google Play requirement.

gotchas

Swift 6.4 is released, but this machine's selected Apple Swift toolchain is 6.3. Do not use 6.4 syntax without checking the project's Xcode selection. devicectl device log stream is absent from local help; use Console or Xcode for physical-device logs. Swift 6.4 release.

known bugs

Capacitor 8 documents incorrect CSS env(safe-area-inset-*) values in Android WebView versions below 140; the core SystemBars plugin injects --safe-area-inset-* fallbacks by default. This is an upstream Chromium issue, not a Capacitor bug. Capacitor workaround, Chromium issue.

troubleshooting

When React DevTools shows no data, run status, then wait --connected; an empty tree without an attached app is not success. When content sits under the system bars, inspect the installed Capacitor version, apply one inset at the owning content boundary, then verify on a device.

practiced cases

  • agent-device 0.21.14 exposes the documented React DevTools profile commands, xcrun 72 help lists no device log subcommand, and the local Apple Swift toolchain is 6.3 while Swift 6.4 is released. No app was launched or visually tested, so these probes carry no product acceptance claim.

Read the mobile skill.

search pages

go to any page