DEV Community

Cover image for I Built a macOS ADB GUI Tool with Tauri v2 + Rust — Here's What I Actually Implemented
hiyoyo
hiyoyo

Posted on

I Built a macOS ADB GUI Tool with Tauri v2 + Rust — Here's What I Actually Implemented

All tests run on an 8-year-old MacBook Air.


After getting tired of googling ADB commands every time I needed one, I built HiyokoADB — a macOS GUI tool for Android developers. Here's a breakdown of what I actually shipped.

Stack

Rust + Tauri v2 + React — same stack I use across all my Hiyoko tools. Lightweight, fast, and runs fine on older hardware.

What I Built

1. Custom Command CRUD

The core feature. In the Custom tab, you can register any ADB command with a label, then run it with one click.

  • Storage: localStorage — commands persist across sessions without a database
  • Operations: Add via label + command input, delete via trash icon
  • Use case: Stop copy-pasting from Stack Overflow. Register once, run forever.

2. Preset Commands

A full set of commonly used ADB commands, organized by category:

  • Network: WiFi On/Off, Airplane Mode Toggle
  • Display: Keep Screen On, Screen Off, Animation Speed x0 (instant UI)
  • Input: Unlock Screen, Home Button, Back Button
  • System Debug: GPU Rendering ON/OFF, Check ADB State, Reset WM/Density
  • Settings (Direct): Developer Options, Accessibility, Battery Optimization, Notification Settings

The Settings category uses adb shell am start to open Android settings screens directly from your Mac — no need to dig through your phone.

3. Color-coded Result Log

Every command execution outputs to the Result Log at the bottom:

  • YellowExecuting: adb ... (the command being run)
  • White/Gray — stdout (normal output)
  • Red — stderr (errors)

Reused and adapted from my HiyokoKit codebase, so this was mostly a copy-paste job.

4. Batch Mode (Multi-device)

Toggle "Batch Mode" in the sidebar and the same command fires to all connected devices simultaneously. Useful if you're testing across multiple Android devices.

5. Tools Tab — Advanced Input

Beyond simple button commands, the Tools tab handles precision input:

  • Swipe: Set start point, end point, and duration in milliseconds
  • Long Press: Coordinate + hold duration
  • Text Input: Send strings directly from your Mac keyboard to the device
  • Coordinate Converter: Convert scrcpy window coordinates to ADB tap coordinates automatically

6. System Utilities

  • Resolution + DPI change (with reset button)
  • GPU rendering toggle
  • ADB state check

What I Reused from HiyokoKit

Honest answer: a lot. The USB device detection, ADB command execution layer, and color log display were all adapted from my existing HiyokoKit codebase. The new work was:

  • Custom command CRUD with localStorage
  • Coordinate converter logic
  • Batch mode implementation
  • Sequence runner (register multiple commands, execute in order)

Building on existing code meant shipping faster. The whole thing came together in roughly one day.

Closing

HiyokoADB is still a work in progress, but the core is solid. If you're an Android developer on macOS who's tired of typing ADB commands, give it a look.

Progress updates on X: @hiyoyok

Built with Rust + Tauri v2 + React. macOS only.

Top comments (0)