>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Dart

Jak przestać uruchamiać ciężkie IDE tylko po to, żeby uruchomić jeden emulator

SimUtil

Jeśli tworzysz aplikacje mobilne przy użyciu Flutter, React Native lub natywnego stosu technologicznego, prawdopodobnie znasz tę rutynową czynność. Chcesz szybko sprawdzić układ na starym Pixelu lub nowym iPhonie. W tym celu albo trzymasz otwarte prądożerne Android Studio i Xcode, albo musisz za każdym razem pamiętać składnię poleceń dla emulator -avd i xcrun simctl boot.

Ostatnio natknąłem się na simutil. To małe narzędzie z interfejsem tekstowym (TUI), które gromadzi wszystkie Twoje urządzenia wirtualne i fizyczne w jednym oknie terminala.

Simutil Showcase

Co potrafi to narzędzie

Interfejs jest podzielony na przejrzyste panele. Możesz zobaczyć listę symulatorów iOS, emulatorów Androida i podłączonych urządzeń fizycznych. Nawigacja odbywa się za pomocą klawiszy strzałek, bez potrzeby używania myszy.

Oto praktyczne scenariusze, w których narzędzie oszczędza czas:

  • Uruchomienie jednym kliknięciem. Wybierz urządzenie, naciśnij Enter, a uruchomi się w tle.
  • Wybór trybu uruchomienia Androida. Naciśnięcie Spacji otwiera menu: normalne uruchomienie, Cold Boot, uruchomienie bez dźwięku lub zimny start bez dźwięku od razu.
  • Bezprzewodowe połączenie ADB. Narzędzie może łączyć fizyczne smartfony przez IP, sześciocyfrowy kod parowania lub przez kod QR bezpośrednio w terminalu.
  • Wbudowana przeglądarka Logcat. Możesz czytać logi systemowe z wybranego urządzenia Android i filtrować je w locie bez opuszczania narzędzia.
  • Szybkie czyszczenie cache Xcode. Na macOS naciśnięcie klawisza x pokaże rozmiar folderu DerivedData i zaproponuje jego usunięcie.

Simutil Showcase Image

Wtyczki niestandardowe przez YAML

Interesujący szczegół: autor nie wpisał na twardo wszystkich możliwych zewnętrznych narzędzi w binarny plik wykonywalny, lecz stworzył system wtyczek poprzez konfigurację.

Przy pierwszym uruchomieniu tworzony jest plik ~/.simutil/settings.yaml. Możesz w nim opisać wywołania dowolnych narzędzi konsolowych, wiążąc je ze skrótami klawiszowymi. Na przykład tak wygląda gotowa integracja ze scrcpy do lustrzanego wyświetlania ekranu Androida:

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

Naciśnij s na działającym urządzeniu — otworzy się okno scrcpy. Konfiguracja obsługuje zmienne podstawienia, takie jak {device.id} i {device.name}, więc możesz łatwo dodać uruchomienia testów Maestro lub dowolne niestandardowe skrypty bash. Aby edytować plik ustawień, po prostu naciśnij e w interfejsie.

Szczegóły techniczne

Projekt jest napisany w Dart. Biblioteka Nocterm służy do budowania interfejsu terminala, a jej składnia jest bardzo podobna do znanego podejścia opartego na widżetach we Flutter.

Jeśli chodzi o platformy: simutil działa na macOS, Linuksie i Windows. Ale są ograniczenia systemowe, których nie można uniknąć. Symulatory iOS działają wyłącznie na macOS, ponieważ zależą od narzędzi systemowych Apple (simctl i devicectl). Na Linuksie i Windows narzędzie koncentruje się wyłącznie na pracy z Androidem, Logcat i bezprzewodowym ADB.

Instalacja i konfiguracja

Simutil można zainstalować na kilka sposobów.

Przez Homebrew na macOS i Linuksie:

brew tap dungngminh/simutil
brew install simutil

Za pomocą uniwersalnego skryptu instalacyjnego:

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

Dla Windows przez PowerShell:

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

Jeśli masz już zainstalowany Dart SDK:

dart pub global activate simutil

Po instalacji uruchom polecenie:

simutil

Dla kogo to będzie przydatne

Narzędzie spodoba się tym, którzy preferują lekkie edytory, takie jak VS Code, Zed czy Neovim, i nie chcą otwierać ciężkich środowisk programistycznych tylko po to, żeby zarządzać emulatorami. Zaspokaja podstawowe potrzeby testowania i przełączania się między urządzeniami za pomocą kilku naciśnięć klawiszy.

Powiązane projekty