Open9

Flutter 環境構築関連のメモ

masato_is_a_ snakemasato_is_a_ snake

freezedで別フォルダ管理を行う。

build.yaml

targets:
  $default:
    builders:
      source_gen|combining_builder:
        options:
          build_extensions:
            '^lib/frontend/domain/model/{{}}.dart': 'lib/frontend/domain/model/generated/{{}}.g.dart'
      freezed:
        options:
          build_extensions:
            '^lib/frontend/domain/model/{{}}.dart': 'lib/frontend/domain/model/generated/{{}}.freezed.dart'

freezedファイル

import 'package:freezed_annotation/freezed_annotation.dart';
part 'generated/a.freezed.dart'; // generatedをつけるの大事!
part 'generated/a.g.dart';

@freezed
class A .... 割愛
  1. build_extensionsのkeyで作成元、valueで作成先を指定
  2. このままflutter pub run build_runner build --delete-conflicting-outputsを実行しても、partでgenerated/aを参照できないと怒られるので、partにgenerated/aをつけて上げる。
  3. これで2のコマンドを叩くと動作する。

反省

partの仕様を理解しないまま脳死コピペで進めてしまい、沼った際に対応に時間がかかってしまった。

Hidden comment
masato_is_a_ snakemasato_is_a_ snake

実機のreleaseモードでビルドを行うとエラーになる。

build.gradleファイルの設定を追記する

Launching lib\main.dart on タブレット名 in release mode...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:minifyReleaseWithR8'.

https://zenn.dev/nekocodex/articles/fcbaf68c0b593d

https://stackoverflow.com/questions/64459937/could-not-create-task-appminifyreleasewithr8-cannot-query-the-value-of-this

なぜかエラーが変わった。

 ClientException with SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = 192.168.11.6, port = 42472, uri=http://192.168.11.6:8080

存在しないAPIを叩いていた。

masato_is_a_ snakemasato_is_a_ snake

Android Studioをインストールした状態でabdコマンドが読み取れない。

以下参照して解消、端末はwindows
Pathを選ばずに新規作成していたため少々手こずった。

https://orefolder.jp/2017/03/platform-tools/#:~:text=「システムのプロパティ」ウィンドウの「環境変数」をクリック。

  • Androidエミュレータ内に立てたサーバーにホストPCのpostmanからアクセスしたい。
    • 今回やや特殊なケース
    • APIサーバーを別モジュール化することを検討したが、リリースの際にこのモジュールが適応されるかのだろうか?