top of page
M.R
ソフトウェア開発などについての情報を綴ります
検索
【Flutter/Dart】TextFieldで文字列をフォーマットする
やりたいこと TextFieldで入力フォームを作りたい。 例えば入力内容が金額の場合、3桁区切りで頭に¥を付けた表記にしたい。 ただしユーザにこれらを入力させるのではなく、ユーザはあくまで数字を入力するだけで、アプリ側で自動でフォーマットしたい。 方法...
2024年2月11日
【Flutter/Dart】iosシミュレータ起動後にデバイスに保存した画像が見つからない
現象 やってること iosシミュレータで画像をデバイスのローカルに保存 保存したパスをデータベースに保存 アプリ立ち上げ時にデータベースから画像パスを取得し、そのパスの画像を画面上に表示 起きている現象 iosシミュレータを再起動した場合、上記3で「ファイルパスが見つからな...
2024年2月11日
【Flutter/dart】late変数が初期化されたかのチェック
やりたいこと 初期値さえ決まればあとは不変な変数がある ただし、コンストラクタ起動時にはまだ決定できない このような変数について late finalで変数を定義 (何らかのタイミングで)初期化されたかどうかをチェックし、されていなければ値を入れる(チェックしないとfina...
2024年2月11日
[Flutter/Dart] 画面の真ん中と右端に配置する
やりたいこと タイトル通り。 2つのWidgetを画面上で1列に並べたい 1つは画面中央、もう1つは画面右端 RowのmainAxisAligmentでやろうとしたら地味に難しかった 解決策 以下のようにする Row( mainAxisAlignment:...
2023年10月22日
[Flutter/dart]GestureDetectorのイベントがページ表示時に走る
現象 あるアイコンは長押し時に所定の動作を実行します これを実現するために、GestureDetectorのonLongPressに処理を登録していました しかしいざビルドしてみると、アイコンが表示されたタイミングで処理が実行されてしまいました...
2023年9月9日
[Flutter/dart]Reduxパターンでアイテム削除に対応する
前提 以下のようなケースを考えます。 アイテムの一覧がある ある1つのアイテムの詳細を表示するページがある 詳細ページではそのアイテムの削除ができる 削除したら他のページ(一覧ページなど)に戻る これはアプリではよくあるパターンだと思います。 課題...
2023年9月9日
[Flutter/Dart]Reduxでリモートデータベースのデータで状態を初期化
やりたいこと Reduxで状態管理をする。状態はAppStateとする。 アプリ開始時にリモートのデータベースからデータの取得を開始 データを取得 取得中は待機マークを表示 取得したデータからAppStateを作成 作成したAppStateを元にUIを描画 方法...
2023年7月16日
[Flutter/Dart]画像取得待ちの間は異なる表示方法とする
やりたいこと 画像を表示するWidgetがある 画像はリモートのストレージから取得する 取得するまでは時間がかかるので、その間は待機中である旨を伝える表示としたい。 よくあるのはぐるぐる 解決策 FutureBuildrで表示を切り替えましょう。...
2023年7月16日


【Flutter/Dart】スクロール部 + 最下部に張り付け
やりたいこと 登場人物 何らかのアイテムの一覧(以降ListViewとして話を進める) 何らかのWidget(以降テキストとして話を進める) 配置 テキストは、アイテムの個数に関わらず画面最下部に固定 アイテム一覧は、テキストを配置して残った領域を使用...
2023年7月13日
【Flutter/Dart】コンストラクタで非同期処理を行いたい場合の対応
課題 Dartであるクラスのコンストラクタで非同期処理をしたい場合がある。 例えば、リモートデータベースから取得した値を初期値とする場合など。 しかし、下記の構文はコンパイルエラーになる。 class testClass{ testClass()async{ await...
2023年7月10日


【Flutter/Dart】Unhandled Exception: PlatformException(sign_in_failed, com.google.android.gms. ...
現象 Firebaseにgoogle_sign_inでサインインしようとすると、下記のエラーで失敗する。 Unhandled Exception: PlatformException(sign_in_failed, com.google.android.gms.common...
2023年7月10日
【Flutter/Dart】Hot Restartで全体が2回ビルドされる
現象 FlutterでHot Restartすると runApp(MyApp()); が2回走る(デバッガで確認) どうもHot Restartの時だけらしい。 原因 はっきりとした原因は分からないが、Flutterフレームワークの仕様らしい。 対策...
2023年7月10日
【Flutter/dart】Method 'addPostFrameCallback' cannot be called on 'WidgetsBinding?' because ...
現象 Flutterでビルドしようとすると、次のエラーが発生 Method 'addPostFrameCallback' cannot be called on 'WidgetsBinding?' because it is potentially null...
2023年7月10日
[Flutter/dart]Admob初期化エラー
現象 アプリ内にAdmobを追加して、アプリを起動すると、下記のエラーが発生 java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvide...
2022年12月31日
[Flutter/dart]UriからUrlへの変換
概要 Uriを持っていて、Urlに変換したい場合の方法で少し手惑ったので共有します 方法 String url = uri.toString(); これだけです。 最後に ページを開くだけだとUriでもUrlでもいいんですが、WebViewはUrlを要求してくるんですよね。
2022年12月31日
[Flutter/dart]エンコーディングが必要なURLを開く
問題 以前、日本語を含むURLを開くためには、エンコーディングしてやる必要がある、という記事を書きました。 しかし、すでにエンコーディングされているURLを再度エンコーディングしてしまうと、別のURLになってしまいます。 つまり、URLを開く処理の前に、...
2022年12月31日
[Fluter/dart]factoryキーワードをつけただけではsingletonにならない
概要 dartではコンストラクタにfactoryというキーワードをつけることができます。 僕は以下のような勘違いをしていました。 factoryコンストラクタとは、singletonを作るためのものである。 コンストラクタにfactoryのキーワードをつけると、自動でsin...
2022年12月31日
[Flutter/dart]StatefulWidgetが親からリビルドされてもcreateState()やinitState()は呼ばれない
概要 下記のような一般的なStatefulWidgetがあります。 class childWidget extends StatefulWidget{ State<StatefulWidget> createState() { return...
2022年12月30日
[Flutter/dart]late finalの変数でlateInitializationError
現象 下記のようなクラスがあります。 class SomeClass{ late final String? hoge; SomeClass({this.hoge}){ hoge??= ""; //1 } } hogeがnull(つまり、引数に値が設定されない)の場合、...
2022年12月30日
[Flutter/dart] Null safetyでクラスインスタンスのデフォルト値
概要 あるクラスのインスタンスを作成する際に、インスタンスを作成する側が引数を設定するかは任意で、設定されなければ既定値を入れたいという場合があります。 null safetyにしてからこのパターンで少し苦労したので、まとめておきます。 問題...
2022年12月22日
bottom of page