mcpField
T
test-with-simulator

test-with-simulator

github.com/even-realitiesテスト・品質79135 回インストール1 週間前に更新
リポジトリ

test-with-simulator について

Even Hubアプリ開発者向けに、evenhub-simulatorを使ったテスト方法を説明します。キーボードやマウスでジェスチャーを入力し、画面や音声を確認できますが、実機テストの代わりにはなりません。

主な機能

  1. 01キーボードとマウスをジェスチャーに割り当て
  2. 02表示効果と音声入力の設定
  3. 03ディスプレイのスクリーンショット出力
  4. 04Webインスペクターでのデバッグ

活用シーン

  1. 01アプリのレイアウトと操作ロジックの反復開発
  2. 02音声入力処理のテスト
  3. 03実機検証が必要な機能の特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/even-realities/everything-evenhub --skill test-with-simulator

インストール後、Claude Code で/test-with-simulatorを入力して読み込まれたか確認します。

詳細

シミュレーターはハードウェアテストを補完するものであり、置き換えるものではありません。

インストール

npm install -g @evenrealities/evenhub-simulator

バージョン:v0.7.1。クロスプラットフォーム対応:macOS、Linux、Windows。

基本的な使い方

evenhub-simulator http://localhost:5173
evenhub-simulator -g http://localhost:5173           # with glow effect
evenhub-simulator -b spring http://localhost:5173    # with spring bounce
evenhub-simulator -c ./my-config.toml http://localhost:5173  # custom config

CLI リファレンス

オプション説明
-c, --config <path>設定ファイルのパス
-g, --glowメガネのディスプレイでグロー効果を有効にします
--no-glowグロー効果を無効にします(設定を上書きします)
-b, --bounce <type>バウンスアニメーション:default または spring
--list-audio-input-devices利用可能な音声入力デバイスを一覧表示します
--aid <device>特定の音声入力デバイスを選択します
--no-aidデフォルトの音声デバイスを使用します(設定を上書きします)
--print-config-pathデフォルトの設定ファイルのパスを表示して終了します
--automation-port <port>このポートで自動化 HTTP サーバーを起動します(例:9898)
--completions <shell>シェル補完を生成します:bash、elvish、fish、powershell、zsh
-V, --versionバージョンを表示します
-h, --helpヘルプを表示します

設定ファイルのパス

プラットフォーム場所
macOS~/Library/Application Support/
Linux$XDG_CONFIG_HOME または ~/.config/
Windows{FOLDERID_RoamingAppData}

evenhub-simulator --print-config-path を使うと、正確なパスを確認できます。

シミュレーターの入力

キーボードとマウスの入力は、メガネのジェスチャーに対応付けられています。

入力メガネでの操作
上上にスワイプ/上にスクロール
下下にスワイプ/下にスクロール
クリックシングルタップ
ダブルクリックダブルタップ

音声テスト

  • サンプルレート:16000 Hz
  • 形式:符号付き 16 ビットリトルエンディアン PCM
  • イベントごとのデータ:100ms(3200 バイト/1600 サンプル)
  • デバイスの一覧表示:--list-audio-input-devices
  • デバイスの選択:--aid <device-id>
  • 音声データは event.audioEvent.audioPcm(Uint8Array)経由で届きます

スクリーンショット

シミュレーターのディスプレイをクリックすると、作業ディレクトリに RGBA PNG がエクスポートされます。ファイル名にはタイムスタンプが使われます。ファイルパスは標準出力とメガネの Web インスペクターのコンソールに表示されます。

デバッグのヒント

  • 生ペイロードのエラー:RUST_LOG=debug evenhub-simulator <url> — 生ペイロードの解析エラーをログに記録します
  • Web インスペクター:シミュレーターは WebView をホストします。コンソール、ネットワーク、DOM の検査にはブラウザーの開発者ツールを使用してください
  • eventSource:シミュレーターでは 1(TOUCH_EVENT_FROM_GLASSES_R)に固定されています
  • onDeviceStatusChanged:出力されません — シミュレーターではプロファイルが固定されています

シミュレーターとハードウェアの違い

機能シミュレーター実際のメガネ
onDeviceStatusChanged出力されません(固定)ステータスがリアルタイムで更新されます
eventSource1 に固定されています実際の入力ソース(左腕/右腕、リング)
imuData常に null有効な場合は実際の IMU x/y/z データ
フォントのレンダリング近似表示ファームウェアの LVGL フォント
リストのスクロールハードウェアと異なる場合がありますネイティブのファームウェアによるスクロール
画像メモリ制限は適用されませんハードウェアのメモリ制限が適用されます
エラー処理エッジケースでは異なる場合がありますハードウェアの動作

開発への影響

  • レイアウトとロジック — シミュレーターでの反復作業に適しています
  • リストスクロールの UX — リリース前にハードウェアで確認してください
  • 画像メモリの制限 — コードでサイズ制限を適用してください。シミュレーターでは違反を検出できません
  • デバイスステータスのフロー — ハードウェアでのみテストしてください。シミュレーターでは onDeviceStatusChanged は発生しません
  • IMU 機能 — シミュレーターではテストできません。imuData は常に null です
  • 複数の入力ソース — シミュレーターが出力するのは右腕のタッチのみです(eventSource = 1)

一般的なワークフロー

npm run dev                                    # Start dev server
evenhub-simulator -g http://localhost:5173     # Launch simulator
# Interact via keyboard/mouse
# Click display to take screenshots
# Iterate on code — auto-reloads
# Validate on real hardware before deploy

シェル補完

evenhub-simulator --completions zsh > ~/.zsh/completions/_evenhub-simulator
evenhub-simulator --completions bash > /etc/bash_completion.d/evenhub-simulator
evenhub-simulator --completions fish > ~/.config/fish/completions/evenhub-simulator.fish

タスク

$ARGUMENTS

コメント