Dart

Flutter hooks で useWebViewController() のカスタムフックを作る

Flutter hooks で useTextEditingController(); とか useScrollController(); が使えてめっちゃ便利と思っていて、これを webview_flutter などでも使いたい。 やり方は前に Flutter hooks で画面遷移のイベント変化を custom hooks でいい感じに検知する - …

Flutter 3.10.1 にしたら flutter format の代わりに dart format を使う必要がある

Flutter 3.10.1 にしたら flutter format が使えなくなってしまった The "format" command is deprecated. Please use the "dart format" sub-command instead, which has the same command-line usage as "flutter format". github actions で flutter form…

Flutter hooks で画面遷移のイベント変化を custom hooks でいい感じに検知する

Flutter で画面遷移の検知をするのには routeObserver.subscribe(...) したり with RouteAware する必要があって、結構めんどい。(参考: 【Flutter】RouteAwareで遷移を検知する方法 | 417.Run()) 理想としては、 final appLifecycleState = useAppLifecycle…

Flutter 開発で Android Studio から VSCode に移行した

今まで Flutter 開発は Android Studio でやっていたけど、VSCode に移行した。 理由は AI の波が来ていて VSCode がその波に一番のりやすそうだったから。GitHub Copilot とかはライセンスの問題はあれど今後解決されていくだろうし、基本的に VSCode に寄…

Flutter でスクロールするとヘッダー背景がいい感じになるやつ

Flutter には SliverAppBar というものがあり、これを使うとヘッダーの AppBar をいい感じに表示することができる。 Twitter iOS アプリのプロフィールページなどのように、PullToRefresh するとヘッダー画像が blur していい感じに表示される、というのも S…

Flutter で storybook 的なことができる storybook_flutter と Widgetbook の比較検討

Flutter Advent Calendar 2022 の13日です! qiita.com Flutter で storybook 的なことができるライブラリで有名なのだと monarch, storybook_flutter, Widgetbook がある。 今回は web に公開できるやつを選びたい。デザイナーやPdMに見てもらったりが簡単…

Flutter 2.8.4 -> 3.0.0 にアップグレードする

fvm を利用したプロジェクトをアップグレードする。 $ fvm releases -------------------------------------- May 11 22 │ 3.0.0 stable -------------------------------------- $ fvm install 3.0.0 $ fvm use 3.0.0 $ fvm flutter --version Flutter 3.0.…

Dart でテンプレートからファイル生成を行う

$ dart ./scripts/page_generator.dart sign_in みたいにしたら sign_in_page.dart, sign_in_view_mode.dart, sign_in_view_state.dart みたいに必要なファイル群をガッっと生成してくれるやつを作る。iOS でいう Generamba とかそういう系のやつ。 既存のコ…

Flutter で build メソッドをリファクタするとき Widget は class に分割するべし

www.youtube.com この Youtube で述べられている内容だが、Flutter で build メソッドがでかくなってきて component に分割するか〜と思う時がある。 その時、 Helper Methods と呼ばれる方法と、 class で Widget を作る方法があるがパフォーマンスの観点か…

Dart でデフォルト引数を使う

Dart でデフォルト引数を使いたくて、こんな感じで書いてみると The default value of an optional parameter must be constant. というエラーが出てしまう。 class HogeClass { // The default value of an optional parameter must be constant. HogeClass…

Flutter でのタブレット対応を考える Readable Content Guide

iOS には Readable Content Guide という考え方があり、iPad などの大きな端末では横幅いっぱいにコンテンツが表示されないようになっている。 参考: iOSでの読みやすい幅 - クックパッド開発者ブログ Flutter で iPad を意識せず実装するとボタンが横に間伸…