>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Dart

ヘビーなIDEを開かずにエミュレータを起動する方法

SimUtil

Flutter、React Native、ネイティブスタックを使ってモバイルプラットフォーム向けに開発している場合、このルーティンに馴染みがあるかもしれません。古いPixelや新しいiPhoneでレイアウトを素早く確認したいとき、電力消費の激しいAndroid StudioやXcodeを開いたままにするか、emulator -avdxcrun simctl bootのコマンド構文を毎回思い出さなければならないかのどちらかです。

最近、simutilという小さなユーティリティを見つけました。テキストベースのユーザーインターフェース(TUI)を備えており、仮想デバイスと物理デバイスをすべて1つのターミナルウィンドウにまとめます。

Simutil Showcase

このツールできること

インターフェースは整理されたパネルに分かれています。iOSシミュレータ、Androidエミュレータ、接続された物理デバイスのリストを確認できます。ナビゲーションは矢印キーで行い、マウスは不要です。

このツールが時間を節約できる実用的なシナリオは次のとおりです:

  • ワンクリック起動。デバイスを選択してEnterを押すだけで、バックグラウンドで起動します。
  • Android起動モード選択。Spaceを押すとメニューが開き、通常起動、コールドブート、音声なし起動、音声なしコールドスタートを選択できます。
  • ワイヤレスADB接続。物理スマートフォンをIP、6桁のペアリングコード、ターミナル内のQRコードで接続できます。
  • 組み込みLogcatビューア。選択したAndroidデバイスからシステムログを読み取り、その場でフィルタリングでき、ユーティリティから離れる必要はありません。
  • クイックXcodeキャッシュクリーンアップ。macOSでは、xキーを押すとDerivedDataフォルダのサイズが表示され、削除を提案します。

Simutil Showcase Image

YAMLによるカスタムプラグイン

興味深い詳細として、著者はすべての外部ツールをバイナリにハードコードせず、configによるプラグインシステムを作成しました。

初回起動時に、~/.simutil/settings.yamlファイルが作成されます。この中で任意のコンソールユーティリティの呼び出しを記述し、ホットキーにバインドできます。たとえば、Android画面ミラーリング用のscrcpyとの готовый 統合は次のようになります:

theme: dark
last_selected_device_id: ~

plugins:
  - id: scrcpy
    label: scrcpy
    description: Screen mirroring and control for Android
    availability:
      command: scrcpy
      args: [--version]
    commands:
      - id: mirror
        label: Screen Mirror
        command: scrcpy
        args: [-s, "{device.id}"]
        platforms: [android]
        requires_running: true
        mode: detached
        shortcut: s

実行中のデバイスでsを押すと、scrcpyウィンドウが開きます。configは{device.id}{device.name}などの置換変数をサポートしているため、Maestroテスト実行や任意のカスタムbashスクリプトを簡単に追加できます。設定ファイルを編集するには、インターフェース内でeを押すだけです。

技術的な詳細

このプロジェクトはDartで書かれています。ターミナルインターフェース構築にはNoctermライブラリが使用されており、その構文はFlutterでおなじみのウィジェットベースのアプローチに得非常によく似ています。

プラットフォームについては:simutil自体はmacOS、Linux、Windowsで動作します。しかし、回避できないOSの制限があります。iOSシミュレータは、Appleのシステムユーティリティ(simctldevicectlなど)に依存しているため、macOS exclusvelyでのみ動作します。LinuxとWindowsでは、Android、Logcat、ワイヤレスADBの操作のみに焦点が当てられています。

インストールとセットアップ

simutilはいくつかの方法でインストールできます。

macOSおよびLinuxでのHomebrew経由:

brew tap dungngminh/simutil
brew install simutil

универсальный インストールスクリプトを使用する場合:

curl -fsSL https://raw.githubusercontent.com/dungngminh/simutil/main/install.sh | bash

WindowsでのPowerShell経由:

powershell -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/dungngminh/simutil/main/install.ps1 | iex"

Dart SDKがすでにインストール済みの場合は:

dart pub global activate simutil

インストール後、次のコマンドを実行します:

simutil

誰が役立つのか

このツールは、VS Code、Zed、Neovimなどの軽量エディタを好み、重い開発環境を単にエミュレータマネージャのために開きたくない人々にアピールします。基本的なテストニーズと、数回のキー操作でのデバイス間の切り替えをカバーしています。

関連プロジェクト