torikatsu.dev

Flutterとかプログラミングとかガジェットとか書きます

AG03MK2をデスク下にマウントしたら視界がスッキリした

AG03MK2をデスク下にマウントしたら、デスクのスッキリ感が向上しました。 この記事ではAG03をデスクしたにマウントする方法について紹介します。 課題感 最近、オーディオインターフェースが必要になりAG03MK2を購入しました AG03MK2はAG03の後継に当たるオ…

Top level ShellRoute というパターンの紹介

Flutterでgo_routerを使う中で「Top Level ShellRoute」というパターンが意外とイケると気づいたため紹介します。 pub.dev Top Level Shell Routeとは go_router_builderのルート定義の保守性が上がる 余談: pathを / とした TypedGoRouteをトップレベルに置…

HHKB Studioが最高すぎてもうType-Sに戻れない

10/25日に新型のHHKB、「HHKB Studio」が発表されました。 happyhackingkb.com HHKB Studio Amazonで見る 楽天市場で見る 私は発売後すぐに購入し約3週間使用しているのですが、最高すぎて既にHHKB Professional HYBRID Type-Sに戻れない体になりつつありま…

ユニットテスト考察

はじめに この記事はUnipos Advent Calendar 2022の記事です こんにちは、とりかつ(@torikatsu923)です。 「なぜユニットテスト(UT)を書くのか」 ユニットテストを書こうとすると必ずと言っていいほど上の質問が飛んできます。 開発者の肌感で、「テストは書…

riverpod_generatorを使ってみる

2022/11/20追記: スニペットに間違いがあったため修正しました こんにちは、とりかつ@torikatsu923です。 riverpod関連のパッケージにriverpod_generatorというものがあります。 これはアノテーションをつけるだけで各providerを生成してくれるとても便利な…

【Flutter】flutterfire x riverpod x go_routerで認証ガードをスマートに実装する

はじめに こんにちは、とりかつ(@torikatsu923)です。 以前、私はこんな記事を書きました。 torikatsu923.hatenablog.com サインインのようにFirebaseの認証状態を変化させる関数を叩いてからFirebaseAuth.instance.authStateChanges()が反映されるまでに若…

【Flutter】プリコンパイルされたcloud_firestoreでビルド時間を短縮する

こんにちは、とりかつ(@torikatsu)です。 Flutter x Firebaseの組み合わせで開発をすることがよくあり、DBにCloud Firestoreを選択することも多いのではないでしょうか。 FlutterからCloud Firestoreを利用する場合はcloud_firestoreを使うことになると思い…

【Flutter】flutterfire x riverpod x go_routerで認証ガードをつくるときの落とし穴

はじめに お久しぶりです。とりかつ(torikatsu923)です。 Flutterで開発をしているとflutterfire x riverpod x go_router の構成をとることがよくあります。 この構成でGoRouterの認証ガードを作ってみたらハマリポイントがあることがわかりました。 今回は…

【Flutter】RivderpodのStateNotifierがoverrideWithProviderできるようになっていた

こんにちは、とりかつ(@torikatsu923)です。 RiverpodでScopedProviderを使わなくてもStateNotifierをoverrideできるようになっていました。 今回はStateNotifierをoverrideする方法について紹介します。 今までのStateNotifier.family 以前以下のような記事…

【Flutter】freezed・json_serializableのファイル生成先を変更するためのbuild.yaml

こんにちは、とりかつ(@torikatsu923)です。 今回の記事ではfreezed・json_serializableのファイル生成先を変更する方法を紹介します。 課題感 freezed・json_serializableは、手動で作成するのが面倒なコードをサクッと生成できるため非常に便利です。しか…

【Flutter】Dartの実行環境を作る

こんにちは、とりかつ(torikatsu923)です。 Flutter開発をしていると、Dartの実行環境が欲しい時があります。 例えばFreezedのようなflutter sdkに依存しないDart onlyなパッケージを試したい時などが考えられます。 今回はDartの実行環境の作り方を紹介しよ…

【Flutter】dart-definesでアプリの環境を切り替える

はじめに こんにちは、とりかつ(@torikatsu923)です。 アプリ開発をしていると本番、ステージング、開発と環境を分けたい場合があります。 Flutterでアプリの環境を切り替える方法として、今まではFlavorを使う方法がありました。 最近、DartDefinesという仕…

【zsh】空ファイルを作る3つの方法

この記事はUnipos Advent Calender 2021、11日目の記事です。 お久しぶりです。とりかつ(@torikatsu923)です。 開発作業をしていると空ファイルを作成したい時がしばしばあります。 新しいファイルにプログラムを書きたい、とりあえずメモを取りたい、、、 …

【zsh】ターミナルでサクッとメモを取るための設定

いきなりですが、あなたは今ターミナルで作業をしています。 巧みなキーボードさばきで様々なコマンドをバシバシと打ち込みタスクを進めています。 そんな作業中ふとgitのコミットIDを控えたくなりました。 そんな時あなたはどうしますか? OSデフォルトのメ…

【Flutter】Canvasで線香花火を作る

はじめに こんにちは、とりかつ(@torikatsu)です。 夏も終わりに近づいてきました。みなさん夏休みはどこかいかれましたか? 私はうっかり夏休みを取り損ねたためずっと仕事でした() 今年はコロナの影響もあって花火大会や夏祭りもなかったため、夏を感じる…

【Flutter】ListViewで子要素がListViewの内側に表示されたか検知する

こんにちは、とりかつ(https://twitter.com/torikatsu923)です。 いきなりですが、FlutterにはListViewという大変便利なWidgetがあります。 api.flutter.dev ListView+ListTileを使うことで数分で以下のようなUIを作ることができます。 このような画面をさく…

【Flutter】いい感じのローディング画面を表示したい!

こんにちは、とりかつ(@torikatsu923)です。 よくアプリでこんな感じのローディング画面を見かけると思います。 アプリ起動時にただ真ん中でぐるぐるするのを見ているより、いい感じのローディング画面が表示されていたら、きっとユーザは退屈しなくて済むと…

【Flutter】riverpod 1.0.0-dev.0の変更点まとめ

こんにちは、とりかつ((@torikatsu923)https://twitter.com/torikatsu923)です。 今朝、riverpodの1.0.0-dev.0が公開されました! I have published a dev-release of Riverpod v1: riverpod 1.0.0-dev.0Go give it a try https://t.co/OWGQ6evu4O— Remi Rou…

null-safetyとお友達になるTips

こんにちは、とりかつ((@torikatsu923)https://twitter.com/torikatsu923)です。 Flutterで開発をする際はDartを書くことになります。DartにはNNBD(null-safety) があり、Flutter側でもnull-safetyの対応がどんどん進んでいます。 null-safetyのおかげで、nu…

【Flutter】MVVMなアーキテクチャで初期化処理をしたい!

こんにちは、とりかつ(@torikatsu923)です。 私は趣味でFlutterアプリの開発をしていて、MVVMライクなアーキテクチャをriverpod+StateNotifier+freezedで状態管理をしています。 この状態管理手法は非常に便利ですが、初期化処理をする際にすこし詰まりまし…

【Flutter】今週のインプット 2021/5/17-23

こんにちは、とりかつ((@torikatsu923)https://twitter.com/torikatsu923)です。 今回の記事は、Flutterについてここ一週間(2021/5/17-23)でのキャッチアップをつらつら書いていこうと思います。 Flutter2.2 Dart2.13 Flutter web dev tool のアップデート r…

【riverpod】画面遷移時にStateNotifierへ値を渡す方法

こんにちは、とりかつ(@torikatsu923)です。 普段私はFlutterで開発しており、riveropd+StateNotifier+freezedでMVVMライクに状態管理をしています。 先日、画面遷移を実装する際、画面遷移時にStateNotifierで作ったViewModelのコンストラクタへ渡そうとし…

Flutterの文脈におけるアーキテクチャと状態管理のパターンと状態管理の手法の違い

こんにちは、とりかつ(@torikatsu923)です。 Flutterは状態管理の手法が数多くあり、状態管理の手法は日々進化しています。 それゆえ、最新の情報に敏感になる必要があり、私は日々色々な記事を読み漁っています。 そんな中でふと、Flutterの状態管理周りの…

riverpodでStateNotifierの取得方法が変わった件について

はじめに こんにちは、とりかつ(@torikatsu923)です。 私はStateNotifier+Riverpod+Freezedを使用してMVVMライクにFlutterアプリを開発しています。 4月の頭にriverpodが0.13.1+1から0.14.0にアップデートされたのですが、このアップデートでは破壊的変更が…

flutter+Stripeでクレジットカード決済をさくっと作る

こんにちは、とりかつ@torikatsu923です。 今回はFlutter+Stripeでサクッとクレジットカード決済を実装する方法を紹介したいと思います はじめに 個人開発をしていると、自身のプロダクトを収益化したい欲に駆られることがあります。 お金を扱う関係上、決済…

Flutterのネイティブ広告をKotlinで実装する

はじめに 先日、Google Mobile Adsのflutterプラグインが発表されました。 developers.google.cn 先祖のプラグインにあたるAdmobは非常に使いづらかった印象だったので、ついにきたか!と非常にわくわくしました。 早速実装をしようと以下の公式docを参照し…

M1 mac の環境構築 その2 ターミナル編

こんにちは、とりかつです。 前回に引き続き、M1 macのターミナルの環境構築を進めていきます。 前回の記事 ↓ torikatsu923.hatenablog.com ポータビリティをと作業効率のバランスがいい感じになるようにターミナルの環境構築を進めていきます。 prezto イン…

M1 mac の環境構築 その1

こんにちは、とりかつです。 最近、intel macからm1 macに乗り換えました! my new gear... pic.twitter.com/Fkb6WYRlrC— Torikatsu (@torikatsu923) 2021年2月26日 乗り換えに当たって環境構築をしていたのですが、せっかくなので環境構築の手順をドキュメ…

vimでアルファベット26文字を最小キーストロークで入力する方法

こんにちは、とりかつです。 みなさんはvimで以下のようにアルファベットを入力したくなったことがありませんでしょうか。ありますよね(圧) abcdefghijklmnopqrstuvwxyz ということで本記事ではvimでアルファベットを最小キーストロークで入力していく方法に…

macでkindleで本読んでみた感想

こんにちは、とりかつです。 私は普段紙の本派だったのですが、たまたまkindleを使う機会がありました。 そこで、kindle使ってみて感じたこととか書いていこうと思います macのkindleアプリは... 私はmacでkindleアプリを使って本を読んでいるのですが、この…