TAG

Dart

  • 2022年9月22日

【Flutter】非同期処理内で発生した例外を、runZoneGuardedを使って例外処理する

したかったこと FlutterでFirebaseAuthの認証をしようとプログラムをしていた。認証時にメールアドレスやパスワードが異なると、当然だが認証に失敗し、例外が発生する。そして、その例外をキャッチして適切なエラーメッセージを画面に表示したかったのだが、できなかった。認証処理が非同期で実行されており、その中で例外が発生しているため、try-catchで例外を処理しようとしても、内部で例外が処 […]

  • 2022年9月19日
  • 2024年2月28日

【Flutter/Dart】で 正規表現リファレンス RegExpで文字列チェック、置換などを一通り

この記事の対象者 以下の方が読んで勉強・コピペできる記事になってます。 DartやFlutterで正規表現を使ってみようという方 基本的な正規表現を覚えたい方 実際のユースケースでの正規表現を知りたい方 どうせ正規表現を暗記できない明日の自分 正規表現とは パターンマッチングの一種 正規表現を使えば、通常の文字列検索より複雑で色々な検索を行うことができます。見つかった文字列を処理したり、新しい文字 […]

  • 2022年9月12日
  • 2022年9月12日

[Dart] unmodifiableなListの項目を削除したい

目的 FlutterでFreezedを使っていると、Listはunmodifiableになります。そのリストの要素を削除するときの処理はどうすればよいかな、と考えたメモです。もちろん、unmodifiableなListを変更するのではなく、unmodifiableなListから新しいListを生成するだけです。新しいListを元の項目に設定し直します。 サンプルコード イメージ的には、住所リスト […]

  • 2022年7月1日

DartでURLエンコードとURLデコードを実施する

誰のためか DartやFlutterでURLエンコードやURLデコードをしたい人向けです。 URLエンコードとは、ブラウザのURL欄に日本語とか空白とかが入ったときに「%1G」みたいな文字の羅列に変換するやつです。 結論 色々探しましたが、結局coreに入ってました。 Uri.encodeFullとUri.decodeFullを使います テストコード

  • 2022年5月14日
  • 2022年5月14日

【Flutter】画面一杯に背景画像を表示する

要件 スマホアプリの背景に画像を使いたい 画面が縦でも横でも、背景一杯に画像を出したい。 Widgetはスマホのノッチ(切り込み)に被らないようにしたい。 実装 解説 背景とメインコンテンツのレイヤーを作成する Stackを使って、背景とメインコンテンツを重ねる child: Stack( children: [ Container( 画像を表示する BoxFit.coverで、画面が縦でも横でも […]

  • 2022年5月12日
  • 2022年5月12日

【Flutter】enhanced-enumsを使う

Dart2.17.0がリリースされました。私は以下のような記事を作成して、Javaっぽいenumができることを期待してました。 enhanced-enumsで実現できるかな、と期待しましたが、半分しかできませんでした。が、通常の使い方では非常に便利になります。 実装例 まず、enhanced-enumsの実装とテストの例は、以下の通りです。注意点は コンストラクタをconstにする メンバー変数は […]

  • 2022年4月13日
  • 2022年4月13日

[Flutter] pubspec.yamlからアプリ情報(バージョン等)を取得する【2022年4月版】

Fltuterを使用していて、起動画面にアプリのバージョンを表示したかったので検索した。package_infoを使え、とあったが、WEBで実施すると動作しなかった。パッケージのページを確認すると「DISCONTINUED」だった。Webのみならず、iOSやAndroidでも使わない方がよさそう。後継のパッケージとして、「package_info_plus」があったので使用した。互換性が保たれてい […]

  • 2022年4月12日
  • 2022年4月14日

[Flutter]丸いWidgetを作る

Flutterを書いていて、丸いWidgetがよく必要になるので、書き方を記録しておきます。 押さないWidget CircleAvatarを使用する 色々な例 押すWidget ElevatedButtonにCircleBorderを適応させる