Skip to content

feat: 家事テンプレート機能のUI実装#152

Merged
stotic-dev merged 11 commits into
feat/housework_templatefrom
feat/housework_template_view
May 16, 2026
Merged

feat: 家事テンプレート機能のUI実装#152
stotic-dev merged 11 commits into
feat/housework_templatefrom
feat/housework_template_view

Conversation

@stotic-dev
Copy link
Copy Markdown
Owner

@stotic-dev stotic-dev commented May 16, 2026

経緯

家事の週間テンプレート機能(#67)の一環として、テンプレートのUI部分を実装する必要があった。
関連Issue: #116, #119

実装内容

家事テンプレート画面の新規実装

  • 一覧画面(HouseworkTemplateView)・詳細画面(HouseworkTemplateItemDetailView)・追加/編集モーダル(HouseworkTemplateItemEditModal)を新規実装。
    • 既存の家事登録画面(RegisterHouseworkView)とUIの一貫性を持たせるため、曜日・ポイント表示などのレイアウトを揃えた。
    • 編集者を表示するラベル(HouseworkTemplateEditorsLabel)はキーボード表示時に隠れないよう、セーフエリアインセット領域に配置している。
  • 空状態(HouseworkTemplateEmptyView)・コンフリクトバナー(HouseworkTemplateConflictBanner)・行コンポーネント(HouseworkTemplateItemRow)など、各状態のサブビューを分割実装。
  • 編集に必要な入力モデル(TemplateItemEditInput)・編集モード(EditMode)・曜日モデル(DayOfWeek)を新規追加し、HouseworkTemplateEditStore 経由でクライアントを操作する構成にした。

テンプレート保存処理の一括対応

  • 1件ずつ書き込むと整合性が崩れるため、HouseworkTemplateClientFirestoreService に一括書き込みインターフェースを追加し、複数件を一度に保存/更新できるよう変更。
  • メタ情報の更新と組み合わせ、コンフリクト検出時にバナー表示する流れに対応。

共通UIコンポーネントの切り出し

  • 複数画面で必要になったため ClearableTextField(クリアボタン付きテキストフィールド)と NavigationBarPrimaryActionButton を新規追加。
  • ナビゲーションバー右上のプライマリアクションは、各画面で同じスタイルを使い回せるようコンポーネント化している。
  • WeekdayLabel / WeekdaySelector を切り出し、テンプレートと既存家事画面で共通利用できるようにした。

ドキュメント更新

  • doc/strategy/housework_template.md に画面仕様・コンフリクト時の挙動・実装面の補足を追記。
  • .claude/skills/swift-code-verification/SKILL.md に、Preview起因の file_length 警告については分割対応しない方針を追記。

VRTスナップショット

  • 新規追加した各サブビュー(編集モーダル/一覧/詳細/コンフリクトバナー/編集者ラベル/空状態/行/曜日セレクタ)の iPhone 16 / iPhone SE2 スナップショットを追加。

確認内容

  • 一覧画面で家事テンプレートの空状態・通常状態が正しく表示されること
  • 編集モーダルでテキストフィールドのクリアボタン・曜日セレクタ・ポイント入力が動作すること
  • 編集完了後、複数件のテンプレートが一括で保存され、メタ情報が更新されること
  • 別ユーザーの更新と競合した際にコンフリクトバナーが表示されること
  • キーボード表示時に編集者ラベルが隠れずセーフエリア領域に表示されること
  • VRTスナップショットテストがCI上でグリーンになること
  • swift build / swift test / SwiftLint がすべてパスすること

stotic-dev added 11 commits May 15, 2026 11:33
- HouseworkTemplateItem に Identifiable 準拠と ItemId の public init を追加
- 曜日表示用の WeekdayLabel と DayOfWeek モデルを追加
- HouseworkTemplateItemEditModal と担当者ラベル・曜日セレクタを追加
- 編集状態管理用の EditMode / TemplateItemEditInput を追加
- HouseworkTemplateEditStore を Stores から Model 配下へ移動
- HouseworkTemplateItemDetailView を追加
- HouseworkTemplateScreen を Template/ 配下へ移動し統合
- HouseworkTemplateView 本体と空状態 / 競合バナー / アイテム行のサブビューを追加
@stotic-dev-bot
Copy link
Copy Markdown
Collaborator

Warnings
⚠️ PRの変更行が多すぎます。500行以内にしてね!理想は400行!

snapshotの追加

追加ファイル: ClearableTextField_入力済み-iPhone-16.1.png

current
image

追加ファイル: ClearableTextField_入力済み-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: ClearableTextField_未入力-iPhone-16.1.png

current
image

追加ファイル: ClearableTextField_未入力-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateConflictBanner_0-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateConflictBanner_0-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateEditorsLabel_0-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateEditorsLabel_0-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateEmptyView_0-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateEmptyView_0-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateItemDetailView_閲覧モード-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateItemDetailView_閲覧モード-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateItemEditModal_入力済み-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateItemEditModal_入力済み-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateItemEditModal_未入力-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateItemEditModal_未入力-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateItemRow_0-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateItemRow_0-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateView_アクティブユーザー有り-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateView_アクティブユーザー有り-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: HouseworkTemplateView_閲覧モード-iPhone-16.1.png

current
image

追加ファイル: HouseworkTemplateView_閲覧モード-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: WeekdayLabel_未選択-iPhone-16.1.png

current
image

追加ファイル: WeekdayLabel_未選択-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: WeekdayLabel_選択中-iPhone-16.1.png

current
image

追加ファイル: WeekdayLabel_選択中-iPhone-SE-2nd-generation.1.png

current
image

追加ファイル: WeekdaySelector_0-iPhone-16.1.png

current
image

追加ファイル: WeekdaySelector_0-iPhone-SE-2nd-generation.1.png

current
image

Generated by 🚫 Danger Swift against 6215c05

@stotic-dev stotic-dev self-assigned this May 16, 2026
@stotic-dev stotic-dev added the feature 機能追加 label May 16, 2026
@stotic-dev-bot
Copy link
Copy Markdown
Collaborator

File Coverage
LocalPackage/Sources/Features/ContributionFeature/Preview/ContributionHelper.swift 13.223141%
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/ContributionAnalyticsView.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/AllUserDataAnnotation.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/AnalyticsPeriodHeader.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/AnalyticsRankingRow.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/AnalyticsRankingSection.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/CumulativePointsAreaChartView.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Analytics/SubViews/PointsTimeSeriesChartView.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Summary/ContributionSummaryComponent.swift 0.0% ⚠️
LocalPackage/Sources/Features/ContributionFeature/View/Summary/SubViews/ContributionGraphSection.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkApproval/Components/HouseworkItemPropertyListContent.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkApproval/HouseworkApprovalView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkBoardView/HouseworkBoardView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkBoardView/SubViews/DateHeader/HouseworkDateCell.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkBoardView/SubViews/DateHeader/HouseworkDateHeaderContent.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkBoardView/SubViews/HouseBoardListRow.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkBoardView/SubViews/HouseworkBoardListContent.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/HouseworkDetailView/SubViews/HouseworkDetailActionContent.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/Preview/HouseworkUtil.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkFeature/RegisterHouseworkView/RegisterHouseworkView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Components/WeekdayLabel.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Detail/HouseworkTemplateItemDetailView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/EditModal/HouseworkTemplateItemEditModal.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/EditModal/SubViews/HouseworkTemplateEditorsLabel.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/EditModal/SubViews/WeekdaySelector.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Model/DayOfWeek.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Model/HouseworkTemplateEditStore.swift 86.44068%
LocalPackage/Sources/Features/HouseworkTemplateFeature/Model/TemplateItemEditInput.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Template/HouseworkTemplateScreen.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Template/HouseworkTemplateView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Template/SubViews/HouseworkTemplateConflictBanner.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Template/SubViews/HouseworkTemplateEmptyView.swift 0.0% ⚠️
LocalPackage/Sources/Features/HouseworkTemplateFeature/Template/SubViews/HouseworkTemplateItemRow.swift 0.0% ⚠️
LocalPackage/Sources/HometeDomain/Cohabitant/HouseworkTemplate/HouseworkTemplateItem.swift 75.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/DailyHouseworkListHelper.swift 100.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/Date/CalendarHelper.swift 100.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/Date/DateHelper.swift 100.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/HouseworkItemHelper.swift 100.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/ObservationHelper.swift 100.0%
LocalPackage/Sources/HometeDomain/Utilities/DebugHelper/Preview/PreviewEnvironment.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/Components/ClearableTextField.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/Components/Navigation/NavigationBarPrimaryActionButton.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/Components/Navigation/NavigationBarToolbarItemModifier.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/DesignSystem/Theme/Theme.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/ViewUtilities/Modifiers/FullScreenCoverOnIOS.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/ViewUtilities/Modifiers/HideNavigationBarModifier.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/ViewUtilities/Modifiers/InlineNavigationBarTitleDisplayMode.swift 0.0% ⚠️
LocalPackage/Sources/HometeUI/ViewUtilities/PrefireViewModifiers.swift 0.0% ⚠️

Generated by 🚫 Danger Swift against 6215c05

@stotic-dev stotic-dev merged commit dbcb5f8 into feat/housework_template May 16, 2026
6 checks passed
@stotic-dev stotic-dev deleted the feat/housework_template_view branch May 16, 2026 07:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature 機能追加

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants