Open9
Flutter 環境構築関連のメモ
releasemodeでhttp接続できなかったのでその対処法
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 .... 割愛
- build_extensionsのkeyで作成元、valueで作成先を指定
- このままflutter pub run build_runner build --delete-conflicting-outputsを実行しても、partでgenerated/aを参照できないと怒られるので、partにgenerated/aをつけて上げる。
- これで2のコマンドを叩くと動作する。
反省
partの仕様を理解しないまま脳死コピペで進めてしまい、沼った際に対応に時間がかかってしまった。
Androidエミュレータを起動しているのに画面に表示されない問題を解消する
window.x = XX
window.y = XX
の2行を削除して、保存する。
再度エミュレーターを起動する。
こちらのベストアンサーが非常に分かりやすい。
実機の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'.
なぜかエラーが変わった。
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を叩いていた。
logをreleaseモードで一時的に使えるようにしたい。
タブレットで横向き固定にする
Android Studioをインストールした状態でabdコマンドが読み取れない。
以下参照して解消、端末はwindows
Pathを選ばずに新規作成していたため少々手こずった。
- Androidエミュレータ内に立てたサーバーにホストPCのpostmanからアクセスしたい。
- 今回やや特殊なケース
- APIサーバーを別モジュール化することを検討したが、リリースの際にこのモジュールが適応されるかのだろうか?
0.0.0.0とは何なのか?
IoT機器開発案件で、タブレット内でサーバーを作成し、テザリング設定をオンにしてハードと接続し、サーバー内にあるAPIを叩く要件があった。
http:127.0.0.1では無理だが、http:0.0.0.0だと可能になる。なぜなのか?以下参考にして調査