Skip to content

feat(project): Run on Device — one click from code to the embedded emulator - #68

Merged
dev-josias merged 2 commits into
mainfrom
feat/run-on-device
Jul 2, 2026
Merged

feat(project): Run on Device — one click from code to the embedded emulator#68
dev-josias merged 2 commits into
mainfrom
feat/run-on-device

Conversation

@dev-josias

Copy link
Copy Markdown
Contributor

The mobile core loop's RUN step, without Android Studio/Xcode: the status-bar project badge is now clickable (▶ glyph) and a new Run on Device palette command builds + launches the detected app in a live, interactive terminal (RunAndDebug → flutter's hot-reload keys work).

Command matrix (run_on_device_command, unit-tested)

Stack Android iOS
Flutter flutter run -d <serial> flutter run -d <udid>
React Native npx react-native run-android npx react-native run-ios --udid <udid>
Expo (is_expo probe) npx expo run:android npx expo run:ios

The target platform follows the device you're viewing (panel.active_device); no device defaults to Android and lets the tool's own picker surface in the terminal. cwd = workspace; the tab is titled Run · <stack> · <platform>. Non-mobile workspaces get an info message (badge is hidden anyway).

Live-verified on macOS (screenshots in session)

Opened a scratch RN workspace → status bar showed React Native ▶ → click → a Run · React Native · iOS terminal opened running npx in the workspace (interactive prompt visible) — targeting iOS because the booted iPhone 16 sim was the active device: the precedence chain (badge → detection → active device → command → terminal) proven end to end.

8 project tests green; cargo fmt --all; clippy clean.

…ulator

The mobile core loop's RUN step, without Android Studio/Xcode: the status-bar
project badge (now clickable, with a play glyph) and a new 'Run on Device'
workbench command build + launch the detected app in a live terminal via
RunAndDebug — interactive, so flutter's hot-reload keys work.

run_on_device_command composes the right invocation per stack and the device
the user is viewing (panel.active_device): flutter run -d <serial|udid>;
npx react-native run-android / run-ios --udid <udid>; Expo apps (is_expo probe
on package.json) go through npx expo run:android|run:ios. No device defaults
to Android and lets the tool's own picker/errors surface in the terminal. cwd
is the workspace; the terminal tab is titled 'Run · <stack> · <platform>'.
Non-mobile workspaces get an info message from the palette command (the badge
is hidden anyway). Command matrix + expo probe unit-tested.
@dev-josias
dev-josias merged commit 0a32c85 into main Jul 2, 2026
7 checks passed
@dev-josias
dev-josias deleted the feat/run-on-device branch July 2, 2026 17:17
dev-josias added a commit that referenced this pull request Jul 2, 2026
Bump 0.3.1 -> 0.3.2 (Cargo.toml workspace / umide.spec / Info.plist +
Cargo.lock), flip the docs badge, add the v0.3.2 changelog entry, and refresh
the README + landing feature lists and CLAUDE.md status.

Ships: the Device Logs panel (#66/#67 — native logcat + iOS unified log live in
the bottom dock, with the critical non-UTF-8 stream-death fix), Run on Device
(#68 — status-bar badge runs the detected RN/Flutter/Expo app on the viewed
device), and AI project-context injection (#65).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant