swiftui-ssot

SKILL.md

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移行
Weekly Installs
6
GitHub Stars
3
First Seen
Mar 1, 2026
Installed on
opencode6
gemini-cli6
codebuddy6
github-copilot6
codex6
kimi-cli6