Flutterには、画面表示やボタンなどの基本機能が標準で用意されています。一方、3Dモデルの表示、HTTP通信、端末内へのファイル保存といった専門的な機能は、外部パッケージを利用することで効率よく実装できます。

この章では、パッケージを管理するpubspec.yamlの役割を理解し、3Dモデルビューアーに必要なパッケージをプロジェクトへ追加します。

3.1 pubspec.yamlの役割

pubspec.yamlは、Flutterプロジェクト全体の設定を管理するファイルです。アプリ名、バージョン、対応するDart SDK、外部パッケージ、画像やフォントなどのアセット情報を記述します。

YAML形式では、行の先頭にある空白がデータの階層を表します。そのため、インデントがずれると、内容が正しくてもエラーになることがあります。通常は半角スペース2文字で階層をそろえ、タブ文字は使用しません。

今回のプロジェクトでは、Dart SDK 3.11以上4.0未満を利用する設定になっています。fileciteturn0file0L7-L8

environment:
  sdk: '>=3.11.0 <4.0.0'

3.2 必要なパッケージを追加する

このアプリでは、次の3つの外部パッケージを使用します。

flutter_3d_controllerは、GLBやGLTFなどの3DモデルをFlutterの画面内に表示するためのパッケージです。モデルの回転、拡大・縮小、カメラ位置の変更などを扱います。

httpは、インターネット上のデータやファイルを取得するためのパッケージです。今回の完成プログラムでは将来のダウンロード処理に備えて登録されています。

path_providerは、アプリが端末内へファイルを保存するときに、適切な保存先を取得するためのパッケージです。モデルを端末内へ保存し、再利用する機能を実装するときに使用します。

添付プログラムでは、次のバージョンが指定されています。fileciteturn0file0L10-L16

dependencies:
  flutter:
    sdk: flutter

  flutter_3d_controller: ^2.3.0
  http: ^1.6.0
  path_provider: ^2.1.5

バージョン番号の前にある^は、互換性が保たれる範囲で新しいバージョンを利用できる指定です。ただし、将来の更新によって動作やAPIが変わる可能性があります。教材を進める間は、添付プログラムと同じバージョンを使用します。

3.3 依存パッケージを取得する

pubspec.yamlへパッケージ名を書いただけでは、まだプロジェクト内で使用できません。ターミナルでプロジェクトの最上位フォルダへ移動し、次のコマンドを実行します。

flutter pub get

このコマンドは、pubspec.yamlを読み取り、必要なパッケージと、それらが内部で利用している関連パッケージを取得します。

取得された正確なバージョン情報は、pubspec.lockへ記録されます。このファイルによって、別の開発環境でも同じ構成を再現しやすくなります。通常は内容を直接編集せず、Flutterのコマンドに管理を任せます。