Category:

Flutterで別画面(route)で状態(state)を共有する

Flutter でお勉強時間管理用のタイマーアプリを作っているのですが、頻繁にタイマーの起動/停止し忘れが発生するので、手作業で経過時間を編集できるようにしました。 以下のように別画面で編集する作りなのですが、別画面(route)で上手く値をやり取りする必要があり、その実装方法を二つほど試したので紹介します。 StatefullWidget + 画面遷移時にパラメータ渡しする方法 一つ目の方法は、StatefullWidgetで遷移元画面(route)の状態(state)を管理しつつ、別画面に遷移する際にパラメータを渡す方法です。この方法だと遷移元画面の状態(state)が画面遷移時に破棄されるものだと思っていたのですが、maintainState=trueの設定であれば破棄されないようなので、結構使い勝手が良さそうです。 画面遷移の実装は、Flutter cookbook の Navig Continue Reading

Posted On :
Category:

Flutterで時間(時分秒)入力

Flutterで時間(時分秒)を入力するインターフェースの実装方法を調べたので軽く紹介します。 showTimePicker を使う 時間を入力する方法として最もメジャーなのが、showTimePicker()を使う方法だと思います。 ただし、showTimePicker()は、モーダルダイアログで時(hour)/分(minute)を入力してTimeOfDayを返す関数なので、秒(second)は入力できません。 デフォルト デフォルトでは以下のようなUIになります。 個人的には、このデフォルトUIは、 時(hour)を選んでいるのか分(minute)を選んでいるのか分かりにくい 0時を選べない というマイナスポイントがあると感じています。 該当部分の抜粋は以下の通りです(全文はこちら)。 TextButton( child: Text('edit', style: T Continue Reading

Posted On :
Category:

Flutter でバックグラウンドでも動くタイマーアプリを作った

少し前に会社のブログで以下の記事を書きました。 Flutterでお勉強時間管理用のタイマーアプリを作った このアプリには、「アプリがバックグラウンドに遷移するとタイマーが停止してしまう」という致命的な問題がありましたが、その対処方法が分かったので、紹介したいと思います。 問題点 アプリがバックグラウンドに遷移すると、アプリが一時停止してしまい、タイマーが止まってしまう。 対応方針 アプリがバックグラウンドに遷移したタイミングと、フォアグラウンドに復帰したタイミングで以下の処理を行う作戦でいこうと思います。 バックグラウドに遷移したタイミング その時点の時間を元に、ローカル通知をスケジュール登録する(ローカル通知はバックグラウンドでも時間がくれば実行される) バックグラウンドに遷移した日時を記録する フォアグラウンドに復帰したタイミング ローカル通知タイマーを停止する フォアグラウンドに復帰 Continue Reading

Posted On :
Category:

Flutterの環境構築

子供のお勉強用にちょっとしたネイティブアプリを作りたくなり、 Flutter で作ってみることにしました。 本記事は、公式の Get Started を見ながら、Android/iOS/Web のクロスプラットフォーム動作環境を構築して、サンプルアプリを軽く動かしてみるところまでの内容となっています。 Flutterの特徴 1つのコードベースで、クロスプラットフォーム(Android/MacOS/Windows/Linux/iOS/Web)で動作するアプリを作れる => 開発・運用・学習コストが小さい Google がリードする OSS => 開発が頻繁 独自のレンダリングエンジンを使っている => swiftやkotlinを使ったネイティブ開発より低速 一般的な端末固有機能は対応している => 全部対応してる訳ではなく、最新機能への対応も少し遅れる widget Continue Reading

Posted On :