Skip to main content

Flutter Apprentice15章〜18章で分からなかったことをまとめる

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勉強するなら本書をぜひどうぞ

関連記事:

Pocket