- Device discovery — Android (adb) + iOS simulator (xcrun simctl)
- Per-device deploy buttons — "Update" and "First Deploy"
- Live log streaming — adb logcat + xcrun simctl log stream
- Log filter — App / All / per-device
- Log text filter — free-text, comma-separated terms
- Deploy output terminal — inline per device card
- Elixir Logger → dashboard (Mob.AndroidLogger handler, mob_nif:log/2)
- Dashboard QR code — LAN URL for opening dashboard on phone
- Multiple Android devices simultaneously
- Requires:
MainActivity.javareadsmob_dist_portintent extra (already sent by mob_dev) - Requires: dynamic node name per device (e.g.
mob_demo_android_2@127.0.0.1)
- Requires:
- Multiple iOS simulators simultaneously
- Requires:
mob_beam.mreads node name fromSIMCTL_CHILD_MOB_NODE_SUFFIXenv var - Port assignment already works (mob_dev assigns by index)
- Requires:
- Physical iOS devices
- Requires:
iproxyUSB tunnel setup (libimobiledevice) - Discovery stub (
list_physical/0) already exists inMobDev.Discovery.IOS
- Requires:
- Android: QR code →
adb connect MAC_IP:5555(wireless debugging)- Android 11+: use
adb pairfor one-time pairing
- Android 11+: use
- iOS physical: QR code → iproxy tunnel setup
- Note: different QR content per platform for this flow
mix mob.watch— auto-deploy on file save (already planned in mob_dev)- Hot-reload without restart —
nl(Module)already works via IEx; add button in dashboard - Node inspector — show running processes, memory, message queues via RPC
- Dark/light theme toggle
- Persistent log filter preference (localStorage)
- Timestamps toggle (show/hide)
- Log level color legend