satudora-dev / bloc_sample

bloc pattern sample code
0 stars 0 forks source link

Calendar Viewで情報入力をできるようにする #10

Open gakuh opened 5 years ago

gakuh commented 5 years ago

WHY

WHAT

4/11日 追記:他の既存ビューに干渉しないようにする

イメージするアプリ

Eve https://itunes.apple.com/us/app/period-tracker-app-eve/id1002275138?mt=8

カレンダーでの入力(GitHub上ではmp4が貼り付けれないため) https://satudora-digital.slack.com/archives/CEQL3JVAS/p1554425504000100

REF

https://github.com/anicdh/date_range_picker

TetsuFe commented 5 years ago

標準ライブラリでできること

サードパーティライブラリ

使ったことがあるもの


使ったことがないものの今回の目的にマッチしていそうなもの

TetsuFe commented 5 years ago

flutter_calendarが要件的に合っていそうなのでこれを試してみます

カスタマイズが難しそうであればゼロから作ることを検討します

TetsuFe commented 5 years ago

flutter_calendarを試していましたが、月単位の表示をするときに開閉式になってしまいます

初期表示が必ずこのように折りたたまれた状態になってしまうので、用途によってはワンステップ余計にかかってしまいます

展開することもできますが上記の通りワンステップかかります

タップ時のイベントを設定できるのがこれだけという理由でflutter_calendarを試していましたが、 よく見るとflutter_calendar_carousel もタップ時のイベントを設定できそうなのでそちらも試してみようか迷いどころではありますが、結局スタイルの細かい問題を考えると自作の方向で行く方が正しいような気がして迷っています

TetsuFe commented 5 years ago

他のビューとの干渉

カレンダースクリーンに遷移する用のボタンをつける際、他のStack系Widgetの下にそのボタンを追加してしまうとレイアウトが崩れてしまいます。

(下の画像の黒くなっているところにモーダルが表示されているのですが、隠れてしまっています)

カレンダーの実装が終わった後に調整しようと思います

TetsuFe commented 5 years ago

@gakuh 生理周期のレンジ入力の時の確定・入力途中のキャンセル・入力後の修正方法をどうすればいいか迷っています

例えば順に二つ日付をタップした後に確定ボタンを押すようにするか、順に二つ日付をタップしただけで入力確定となるかの2通りが考えられます michiruの場合だと前者のような確定ボタンを押す形になっています

D514F681-82A8-4341-967E-F9BAAA7638E5

gakuh commented 5 years ago

@TetsuFe 前者の方がユーザにとって安心感があるので前者で!後者をしたい場合は、edit in place(表示しているものをそのまま編集できる)形で実現した方がユーザにとってわかりやすい

UIの設計上は以下の3つのレベルに分けれられて、↓に行くほど技術的には難易度が高い。

Eveは、Calendarの表示と編集を同じ画面で完結して、ボタンのアクションを全て省いているので一番下のレベル。画面遷移やアクションが少ないので良いけど、ユーザの学習コストが高い&誤動作を誘発しやすい。対して、Michiruはユーザの学習コストは低いし誤動作は起きにくいが、アクションのステップ数が多いので同じ作業を繰り返しやるにはユーザにとっては手間。考え方として、ユーザの利用頻度が高い場合はある程度の高い学習コストがあってステップ数を減らすことに注力してもよい。ただ、頻度が低い場合は前回行った動作を忘れる可能性が高いので安全なUIにした方がよい。

今回つくるアプリの利用頻度は最初は高くないので、ユーザにとって学習コストが低い予測可能性が高いUIで実装するのがよい

TetsuFe commented 5 years ago

まずは以下の方法で作成してみました

スクリーンショット 2019-04-19 10 07 35

「生理周期を入力」を押すとモーダルが出ます

スクリーンショット 2019-04-19 10 08 48

範囲を選択すると元のカレンダーにも同じように(少しずれていますが、すぐ修正はできます)表示されます

スクリーンショット 2019-04-19 10 10 00
TetsuFe commented 5 years ago

上のカレンダー画面の日付をタップすると日付ごとの情報を入力できるモーダルが開きます

スクリーンショット 2019-04-19 10 10 55
TetsuFe commented 5 years ago

ここまででできたこと

できていないこと