# Linux での利用方法

## 概要

Sora Flutter SDK で Linux アプリケーションを実装する際の動作環境、ネイティブ依存、ビルド方法について説明します。
対応バージョンは Ubuntu 24.04 (x86_64) です。
Sora への接続やメディアデバイスの操作といったプラットフォーム共通の Dart API については、他ページをご確認ください。

## 動作環境

- Ubuntu 24.04 (x86_64)
- Flutter 3.44.0 以上
- Sora 2025.2.0 以降
- clang / cmake / ninja-build / pkg-config
- GTK 3 開発パッケージ
- PulseAudio 開発パッケージ
- libjpeg-turbo 開発パッケージ

ビルドに必要なシステムパッケージをインストールします。

```bash
sudo apt-get install -y clang cmake ninja-build pkg-config \
  libgtk-3-dev liblzma-dev libpulse-dev libjpeg-dev
```

## 依存関係

Sora Flutter SDK はネイティブ依存として次のライブラリを必要とします。

- `libwebrtc-c` (WebRTC の C API ラッパー)
- `webrtc` (WebRTC ネイティブライブラリ)

依存取得の設定は `scripts/native_deps.json` で管理しています。
これらの依存は CMake の configure 時に自動でダウンロード・展開されるため、利用者が手動で用意する必要はありません。

CMake を経由せずに手動で取得する場合のみ、`sora-flutter-sdk` のルートで次を実行します。

```bash
dart pub get
dart run scripts/fetch_native_deps.dart linux_ubuntu_24_04_x86_64
```

## ビルド

アプリケーションのディレクトリで依存関係を取得し、アプリケーションをビルドします。

```bash
flutter pub get
flutter build linux --debug
flutter build linux --release
```

## 備考

- 音声デバイスは PulseAudio 経由で入出力を処理します
- カメラキャプチャは V4L2 経由で動作します
- リモート映像は libyuv で I420 から RGBA に変換し、ピクセルバッファ経由で Flutter Texture に描画します
