FlutterアプリのInAppWebViewがiOSシミュレータでSafariのWebインスペクタに表示されない問題とその対処法

問題の概要

Flutter + InAppWebViewで構築したiOSアプリをデバッグしようとしたところ、
Safariのメニュー「開発」→「シミュレータ」に以下のような表示がされ、対象アプリが確認できませんでした。

調査可能なアプリケーションがありません

つまり、Webインスペクタを使用したデバッグが行えない状態です。

解決策

InAppWebViewの設定において isInspectable: true を指定することで、Webインスペクタによるデバッグが可能になりました。

以下はその実装例です。

InAppWebView(
  initialUrlRequest: URLRequest(url: WebUri('https://example.com')),
  initialSettings: InAppWebViewSettings(
    isInspectable: true, // Safari Web Inspectorを有効にする設定
  ),
)

このプロパティを有効にすることで、Safariの「開発」メニューからアプリが正しく表示され、WebインスペクタでDOMやコンソールの確認が可能になります。

根本的な原因

InAppWebView公式ドキュメント によると、iOS 16.4以降ではセキュリティ上の変更により、Webインスペクタ機能がデフォルトで無効化されています。

そのため、従来は不要だった isInspectable: true の指定が、iOS 16.4以降ではWebインスペクタを利用するために必要となりました。

pip install uv と brew install uv の違いを整理する

はじめに

Pythonプロジェクトのパッケージ管理や仮想環境構築を効率化するツールとして注目されているuv。
私自身、ある日このツールを導入しようとしたところ、次の2つのインストール方法で迷いました。

  • pip install uv
  • brew install uv

どちらが適しているのか分からなかったため、調査した内容を整理して共有します。

uvとは?

uvはRust製の高速なPythonツールチェーンマネージャで、以下のような特徴を持ちます。

  • pip、virtualenv、pip-tools等を統合的に高速化
  • 仮想環境の自動生成・依存関係の解決
  • pyproject.tomlベースのモダンなPythonプロジェクトと親和性あり

インストール方法の比較

方法1:pip install uv

特徴

  • Pythonのパッケージとしてインストール
  • 仮想環境やシステムPythonに依存
  • 実行は python -m uv になることもある

メリット

  • 環境ごとに柔軟に導入可能
  • 既存のPythonプロジェクトに統合しやすい

デメリット

  • ビルド環境にRustが必要な場合がある
  • PATH設定により直接実行できない可能性も

方法2:brew install uv

特徴

  • Homebrewでインストールするネイティブバイナリ
  • システム全体でuvコマンドが使える
  • $PATH に自動で追加される

メリット

  • 一度のインストールでどこでも使用可能
  • 実行速度が安定して高速

デメリット

  • HomebrewのFormulaが最新でない場合がある
  • Python仮想環境との一体感はやや薄い

使い分け指針

利用シーン 推奨方法 理由
プロジェクト横断で共通利用 brew install uv バイナリを全体共有できる
一時的な検証・検討目的 pip install uv 環境依存で影響範囲が限定的
CI/CD環境などで再現性重視 pip install uv またはビルド済バイナリ 柔軟性・再現性に優れる

結論:どちらを選ぶべきか?

あなたの状況 おすすめ
Macユーザー + Homebrew使用者 brew install uv
Python仮想環境ごとの試験導入 pip install uv
自動化やスクリプト内で使いたい pip install uv(柔軟)

どちらも正解ですが、目的や使い方に応じて適切に使い分けるのがポイントです。

最後に

「uvを導入してみたいけど、どちらの方法がベストなのか分からない」
そんな方の参考になれば幸いです。

Firebase AnalyticsのlogEventイベントをDebugViewでリアルタイム確認する方法

Firebase Analytics の logEvent を使用して送信したイベントデータをリアルタイムで確認するには、Firebase Console の「DebugView」機能を使用します。

DebugView は、開発中やデバッグ時に送信されたイベントを即時に可視化できるため、イベント設計や挙動の検証に役立ちます。

各プラットフォームごとのデバッグモードの有効化手順は以下のとおりです。

Web アプリの場合

  1. Google Analytics Debugger という Chrome 拡張機能をインストールします。
  2. 拡張機能を有効にした状態で Web アプリにアクセスします。

Android アプリの場合

  1. Android 端末にアプリをインストールした状態で、以下のコマンドを実行します。
    adb shell setprop debug.firebase.analytics.app <your.app.package.name>
    

    <your.app.package.name>は、以下のようにbuild.gradle (Module: app)ファイルのapplicationIdの値を指定します。

    android {
       defaultConfig {
           applicationId "your.app.package.name"  // ← この値がパッケージ名です
       }
    }
    
  2. 上記コマンド実行後、対象のアプリを起動します。

デバッグモードの無効化(Android)

デバッグモードを無効にするには、以下のコマンドを実行します。

adb shell setprop debug.firebase.analytics.app .none.

iOS アプリの場合

  1. Xcode で対象アプリのターゲットを選択します。
  2. メニューから「Product」→「Scheme」→「Edit Scheme…」を選択します。
  3. 左側メニューの「Run」→「Arguments」タブを開きます。
  4. 「Arguments Passed On Launch」に以下のフラグを追加します。
    -FIRDebugEnabled
    
  5. 上記設定を保存し、アプリをビルドして実機で起動します。

参考

Dockerを使ってローカルにPHPをインストールせずにLaravelプロジェクトを構築・実行する方法

Laravel開発では、通常ローカルマシンにPHP、Composer、Laravelインストーラーなどをインストールして環境を構築します。
しかし、Dockerを活用すれば、これらをローカルに一切インストールせずに、Laravelプロジェクトの作成と実行が可能です。

本記事では、その具体的な手順と、ローカル非依存型の開発環境がもたらす実践的メリットについて解説します。

1. DockerでLaravelプロジェクトの初期セットアップ

1-1. Laravelプロジェクトの作成(Composer)

docker run -it --rm \
  --user "$(id -u):$(id -g)" \
  -v "$(pwd):/app" \
  -w /app \
  laravelsail/php84-composer:latest \
  composer create-project laravel/laravel my-app

このコマンドにより、現在のディレクトリに my-app フォルダが作成され、Laravelの初期ファイルが生成されます。

1-2. プロジェクトディレクトリへ移動

cd my-app

2. Laravel Sailの導入と開発サーバの起動

2-1. Laravel Sail のインストール(Docker 経由)

docker run -it --rm \
  --user "$(id -u):$(id -g)" \
  -v "$(pwd):/app" \
  -w /app \
  -e COMPOSER_HOME=/tmp/composer \
  laravelsail/php84-composer:latest \
  php artisan sail:install

2-2. 開発サーバの起動

./vendor/bin/sail up -d

これにより、Laravelプロジェクトの開発環境がバックグラウンドで起動します。
初回起動時にはDockerイメージのダウンロードとビルドが行われるため、数分かかる場合があります。

3. 開発環境の初期設定(おまけ)

Docker上のLaravel開発環境をより実用的に整備するための初期設定です。

3-1. .envファイルの確認・初期設定

APP_NAME=Laravel
APP_URL=http://localhost

3-2. セッションテーブルのマイグレーション作成と実行

./vendor/bin/sail artisan session:table
./vendor/bin/sail artisan migrate

3-3. アプリケーションキーの生成

./vendor/bin/sail artisan key:generate

3-4. 最初のページをブラウザで確認

http://localhost

4. DockerによるLaravel開発のメリット

Dockerを活用することで、以下のような利点が得られます。

  • ローカル環境のクリーン化
    開発用の依存パッケージをホストOSに直接インストールしないため、他プロジェクトとの競合を回避できます。

  • 本番環境との整合性
    Dockerで同一環境を構築することで、本番やCIと同様の設定で開発が可能になります。

  • PHPバージョンの柔軟な切り替え
    PHP 8.1、8.2、8.3などの異なるバージョンのDockerイメージを利用することで、容易に切り替えられます。

  • チーム間の環境統一
    コンテナを使用することで、OSの違いに依存せず、同一の手順で開発環境を再現可能です。

  • セキュリティリスクの低減
    ホストマシンにPHPやWebサーバを直接インストールしないため、常駐サービスや脆弱性の混入を抑制できます。

5. まとめ

DockerベースでLaravel開発環境を構築する手法は、可搬性・分離性・再現性のいずれにも優れています。
特にチーム開発やCI/CDとの統合においては、環境の一貫性を維持しながら柔軟な開発体制を実現できる点が大きなメリットです。