Flutter Apprentice11章〜14章で分からなかったことをまとめる
の続編
Chapter15 Saving Data With SQLite
Chapter16 Platform Specific App Assets
Chapter17 Build & Release an Android App
Chapter18 Build & Release an iOS App
を読んだので分からなかったことをまとめる
Dart
・ヒアドキュメント
”’でヒアドキュメントが使える
・asnyc*
async*にすると戻り値がstreamになる
https://qiita.com/shindex/items/1ec40cc224aedcf31946
・yield*
yield returns values from an Iterable or a Stream.
yield* is used to recursively call its Iterable or Stream function.
https://stackoverflow.com/questions/57492517/difference-between-yield-and-yield-in-dart
・mapの中でasyncした場合
最後にawait Future.waitでラップすれば良い
https://blog.ttskch.com/apply-async-function-to-list-elements-with-map/
Flutter
・pubspecの^
^0.1.2は0.12以上、1未満
https://qiita.com/kurun_pan/items/76e13bfd03fd3dec1e27
・path_provioder
locationを指定するもの
・synchronized
lockシステム
・factory
factoryでファクトリメソッド定義してシングルトンが作れる
https://pgcodetutor.com/%E3%80%90dart%E3%80%91%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%88%E3%83%B3%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/
・dispose
main.dartのMultiProviderで以下を書くとdisposeされる。
dispose: (_, Repository repository) => repository.close(),
・スプラッシュ
Flutter用のスプラッシュの定義がある。
Androidのmetaを設定すれば動くようになる。
SplashScreenDrawable等
色は動くんだけど画像がなんか表示されないんだけどなぁ・・・
https://sakebook.hatenablog.com/entry/2020/08/02/193438
moor
・説明
Flutter版のroom
・stream_queries.dart’: No such file or directory
以下のエラーが出たら
[WARNING] ../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/moor_generator-4.4.1/lib/src/writer/database_writer.dart:4:8: Error: Error when reading '../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/moor-4.6.1+1/lib/src/runtime/executor/stream_queries.dart': No such file or directory import 'package:moor/src/runtime/executor/stream_queries.dart'; ^ ../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/moor_generator-4.4.1/lib/src/writer/database_writer.dart:207:17: Error: 'AnyUpdateQuery' isn't a type. if (this is AnyUpdateQuery) { ^^^^^^^^^^^^^^
以下で解決する
flutter pub run build_runner build –delete-conflicting-outputs
dependency_overrides:
moor: ‘4.4.0’
・import文
本が古い
// import ‘package:moor_flutter/moor_flutter.dart’;
import ‘package:moor/moor.dart’;
・Undefined name ‘FlutterQueryExecutor’.
以下のエラーが出たら
lib/data/moor/moor_db.dart:37:15: Error: Undefined name 'FlutterQueryExecutor'. : super(FlutterQueryExecutor.inDatabaseFolder( ^^^^^^^^^^^^^^^^^^^^
以下を
moor: ^4.0.0
以下にする
moor_flutter: ^4.0.0
Android
・申請方法
flutter build appbundle
flutter build apk –split-per-abi
オプションを書くとターゲットを絞れる
flutter build apk
iOS
・申請方法
iOSはプロジェクトを開いてそのままアップロードする
これにてFlutter本読了
結構厚かったですが大変役に立ちましたので本書はおすすめです。
Flutter勉強するなら本書をぜひどうぞ
関連記事:
- Flutter Apprentice11章〜14章で分からなかったことをまとめる
- Flutter Apprentice9章と10章で分からなかったことをまとめる
- Flutter Apprentice7章と8章で分からなかったことをまとめる