開発概要
目的
- シフト一覧画面のUI改善として、未読のシフトに「New!」バッジを表示するモック機能を実装する
- 未読のシフトを視覚的に識別できるようにし、ユーザーが新しいシフト情報に気づきやすくする
- 将来的なAPI連携に向けたUIプロトタイプ(フロントエンドのみで完結)を作成する
開発期間
考えられる開発内容
1. ShiftCard Widgetの変更
ファイル: mobile/lib/widgets/shift_card.dart
バッジのデザイン仕様
- 背景色:
Colors.red
- 文字色:
Colors.white
- 文字サイズ:
10.0
- 角丸:
BorderRadius.circular(8.0)
- パディング:
EdgeInsets.symmetric(horizontal: 6.0, vertical: 2.0)
- 位置: カードの右上(
Positioned(top: 4.0, right: 4.0))
- 表示条件:
isRead == false の時のみ表示
2. モックデータの追加
ファイル: mobile/lib/pages/my_shift_page.dart
3. 動作確認
備考
- モック実装: 今回はバックエンド(API)やDBへの保存処理は実装していません
- 状態の永続化なし: 画面をリロードすると未読状態に戻ります
- 既存機能の維持:
ExpansionTileの展開/折りたたみ機能やマニュアルボタンのタップイベントは既存のまま動作します
- 開発用フラグ:
_useMockDataAlways = true により、常にモックデータが表示されます。本番環境では false に変更する必要があります
変更ファイル
mobile/lib/widgets/shift_card.dart - シフトカードWidget(StatefulWidget化、バッジUI実装)
mobile/lib/pages/my_shift_page.dart - シフト一覧ページ(モックデータ追加)
mobile/lib/models/shift_card.dart - シフトカードのデータモデル(参照のみ)
今後の拡張予定
- API連携による未読状態の取得
- バックエンドへの既読状態の保存
- 未読状態の永続化(ローカルストレージまたはサーバー側)
- 未読数のバッジ表示(複数の未読シフトがある場合)
参考
開発の流れ
- PMにIssue(タスク)をもらう
- 開発をする(↓の「リンク」の『開発のやり方』を見よう!)
- チェックボックスを押していこう
- ヤバい状況になったらIssueの右側にあるStatusを「Help」にしてPMにSlackで連絡しよう
- チェックボックスが全部押せたらプルリクを作ろう
- レビューを待とう
- 修正点があれば修正しよう。なければPMがマージします!お疲れ様!
SeeFTのタスク管理のルール
- タスクは全てGit-Hub Projectで管理する
- 全てのタスクに期日を決める
- 毎週タスクの進捗を確認する(MTに出られない人はSlackで報告)
- 毎週忙しさ(消化できるタスク量)を共有する
- Helpは余裕のある人がいれば巻き取る。いなければ期日を変更する
リンク
開発概要
目的
開発期間
考えられる開発内容
1. ShiftCard Widgetの変更
ファイル:
mobile/lib/widgets/shift_card.dartStatelessWidgetからStatefulWidgetに変更bool isRead = false;を追加(モック用、初期値は未読)Stackで囲み、右上に「New!」バッジを配置GestureDetectorでカード全体をタップ可能にし、タップ時にsetStateでisRead = trueに変更バッジのデザイン仕様
Colors.redColors.white10.0BorderRadius.circular(8.0)EdgeInsets.symmetric(horizontal: 6.0, vertical: 2.0)Positioned(top: 4.0, right: 4.0))isRead == falseの時のみ表示2. モックデータの追加
ファイル:
mobile/lib/pages/my_shift_page.dart_getMockShiftCardDataList()関数を追加_useMockDataAlways = trueを追加_loadShiftCardDataList()メソッドを修正3. 動作確認
http://localhost:45029/layoutにアクセス備考
ExpansionTileの展開/折りたたみ機能やマニュアルボタンのタップイベントは既存のまま動作します_useMockDataAlways = trueにより、常にモックデータが表示されます。本番環境ではfalseに変更する必要があります変更ファイル
mobile/lib/widgets/shift_card.dart- シフトカードWidget(StatefulWidget化、バッジUI実装)mobile/lib/pages/my_shift_page.dart- シフト一覧ページ(モックデータ追加)mobile/lib/models/shift_card.dart- シフトカードのデータモデル(参照のみ)今後の拡張予定
参考
開発の流れ
SeeFTのタスク管理のルール
リンク