Back to list
xtone

swiftui-ssot

by xtone

3🍴 0📅 Jan 8, 2026

SKILL.md


name: swiftui-ssot description: Single Source of Truth (SSOT) guidelines for SwiftUI state management. Use when designing state architecture, choosing between @State/@Binding/@StateObject/@ObservedObject/@EnvironmentObject, fixing state synchronization issues, refactoring duplicated state, or reviewing state management in PRs. Covers SSOT principles, property wrapper selection, state lifting, and common violations.

SwiftUI SSOT (Single Source of Truth)

SwiftUIにおける状態管理とSSOT原則の包括的ガイド。

ディレクトリ構成

swiftui-ssot/
├── SKILL.md (このファイル)
└── references/
    └── ssot.md

リファレンスファイル

references/ssot.md

Single Source of Truth(SSOT)の包括的ガイド:

  • SSOTの3つの柱: 唯一の情報源、導出状態、単方向データフロー
  • Property Wrapper選択フローチャート: @State/@Binding/@StateObject/@ObservedObject/@EnvironmentObject
  • パターン別ガイド:
    • 状態重複の解消
    • 導出状態(Computed Property)
    • State Lifting(状態の持ち上げ)
    • 兄弟View間通信
    • EnvironmentObjectの適切な使用
  • 違反検出方法: コードスメル、検索パターン
  • iOS 17+ @ObservableでのSSO実装
  • レビューチェックリスト

使用方法

状態設計時

  1. references/ssot.mdのProperty Wrapper選択フローチャートを参照
  2. データの所有者を明確化
  3. 導出可能な状態は持たない

状態関連の問題発生時

  1. references/ssot.mdの違反パターンを確認
  2. 該当するパターンの解決策を適用

PRレビュー時

  1. references/ssot.mdのレビューチェックリストを使用

SSOT 3つの柱

  1. 唯一の情報源: 各データは1箇所でのみ管理
  2. 導出状態: 他の状態から計算可能なものは持たない
  3. 単方向データフロー: 親→子へデータを渡し、子→親へはアクション

Property Wrapper 選択ガイド

状況推奨
View内のローカル状態@State
親から受け取る値(読み書き)@Binding
Viewが所有するObservableObject@StateObject
外部から注入されるObservableObject@ObservedObject
アプリ全体で共有@EnvironmentObject
iOS 17+@Observable + @Bindable

関連スキル

  • swiftui-coding-guidelines: 基本的なベストプラクティス
  • swift-ios-migration: iOS 17 @Observable移行

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon