Files
DroidScope/TODO.md
T
achmad d42786d0c7 docs: replace PLAN.md with README, add CLAUDE.md, DEVELOPMENT.md, TODO
PLAN.md (AI requirements doc) converted to README.md (human-facing
project overview with feature status table). CLAUDE.md added for
Claude Code with commands, architecture, and key conventions.
DEVELOPMENT.md covers first-time setup, per-component build commands,
hot-reload guidance, and ADB bundling notes. TODO.md tracks
implementation status across all phases.
2026-05-06 14:52:01 +07:00

4.9 KiB

DroidScope — TODO

Legend

  • [x] Done
  • [ ] Not started
  • [~] In progress

Infrastructure

  • Project scaffold (Wails + Go + React/TS + Kotlin SDK)
  • Monorepo structure (desktop/, backend-go/, frontend-react/, android-sdk/)
  • Go workspace (go.work)
  • Shared event protocol (Go structs + TypeScript types)
  • Dev script (scripts/dev.sh) — builds backend, desktop, regenerates bindings, type-checks, then starts
  • Build script (scripts/build.sh)
  • Development guide (DEVELOPMENT.md)
  • Bundle ADB binary infrastructure (desktop/internal/adbembed/)
  • ADB discovery at runtime (embedded → ANDROID_HOME → PATH fallback)
  • Download ADB binaries for distribution (scripts/download-adb.sh ready, run once)
  • CI/CD pipeline

Phase 1 — MVP

Device Management

  • ADB wrapper (backend-go/adb/)
  • List connected devices (1s poll)
  • Device connect / disconnect
  • Wireless ADB support
  • Device reconnect handling
  • Emulator support
  • Static device info (model, Android version, ABI, manufacturer, screen, build fingerprint)
  • Live device stats — 1s poll (available RAM, battery level/status, thermal status, available storage, IP)
  • Frontend: device list panel with real-time updates
  • Frontend: wireless connect dialog
  • Frontend: disconnect action
  • Frontend: device info panel — static fields fetched once, live fields pulsing every second
  • Frontend: RAM usage progress bar (live)
  • Frontend: split layout — device list + info detail side by side
  • Frontend: selected device (info view) vs profiled device (monitoring target) — separate concepts
  • Frontend: Profile / Stop profiling toggle per device card
  • Frontend: active profiling indicator bar in device list
  • Frontend: auto-clear selected + profiled device when device disconnects or goes offline

Logcat

  • [~] Backend stub (backend-go/logcat/stream.go)
  • Real-time logcat streaming via ADB
  • Structured log parsing (priority, tag, PID, message)
  • Wails event push to frontend
  • Frontend: log table with virtualized rendering
  • Frontend: filter by tag
  • Frontend: filter by priority (V/D/I/W/E/A)
  • Frontend: search
  • Frontend: export logs

Network Inspector

  • Android SDK: OkHttp interceptor
  • Backend: receive + store network events
  • Frontend: request list
  • Frontend: request detail (headers, body, timing)
  • Frontend: response detail (status, headers, body, size)
  • Frontend: JSON formatting
  • Frontend: cURL export
  • Frontend: filter / search

Shared Preferences Inspector

  • Backend: pull + parse SharedPreferences XML via ADB
  • Backend: write-back support
  • Frontend: key/value table
  • Frontend: inline editing (String, Int, Long, Float, Boolean, StringSet)
  • Frontend: live update polling

SQLite Browser

  • Backend: pull database file via ADB
  • Backend: query execution
  • Frontend: table list
  • Frontend: table data viewer (paginated)
  • Frontend: SQL query editor
  • Frontend: query history
  • Frontend: export

File Browser

  • Backend: adb shell ls traversal
  • Backend: file download (adb pull)
  • Backend: file upload (adb push)
  • Backend: file delete
  • Frontend: file tree / list
  • Frontend: text / JSON / image preview

Runtime Configuration

  • Android SDK: base URL override hook
  • Android SDK: feature flag toggle
  • Backend: send config command to device
  • Frontend: URL override input
  • Frontend: feature flag toggles
  • Frontend: deep link launcher

Phase 2

  • FPS monitoring (backend + frontend chart)
  • Memory monitoring (heap, GC events)
  • StrictMode violation monitoring
  • Thread monitoring + ANR risk

Phase 3

  • Memory leak detection (Activity/Fragment)
  • Compose recomposition tooling
  • Advanced tracing
  • Flamegraphs

Android SDK

  • Project skeleton (android-sdk/)
  • DroidScope.init() / shutdown() entry point
  • WebSocket transport to desktop
  • Network interceptor (OkHttp)
  • SharedPreferences observer
  • Logcat forwarder (SDK-side filtering)
  • FPS collector (Choreographer)
  • Memory collector (Debug.MemoryInfo)
  • StrictMode collector
  • Compose recomposition collector

Frontend Shell

  • Sidebar navigation
  • Dark theme
  • Selected device vs profiled device — two independent concepts in store
  • useActiveDevice hook — reads profiledDeviceId; isMonitoring = false pauses all feature panels
  • NoDeviceSelected shared component — guides user to Profile a device
  • Per-device data cache (deviceCache) — retained on device switch, never cleared automatically
  • Persistent profiled device indicator in sidebar or top bar
  • Multi-tab panel support
  • Keyboard shortcuts
  • Global search
  • Settings page