swiftui-ssot
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.
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
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実装
- レビューチェックリスト
使用方法
状態設計時
-
references/ssot.mdのProperty Wrapper選択フローチャートを参照 - データの所有者を明確化
- 導出可能な状態は持たない
状態関連の問題発生時
-
references/ssot.mdの違反パターンを確認 - 該当するパターンの解決策を適用
PRレビュー時
-
references/ssot.mdのレビューチェックリストを使用
SSOT 3つの柱
- 唯一の情報源: 各データは1箇所でのみ管理
- 導出状態: 他の状態から計算可能なものは持たない
- 単方向データフロー: 親→子へデータを渡し、子→親へはアクション
Property Wrapper 選択ガイド
| 状況 | 推奨 |
|---|---|
| View内のローカル状態 | @State |
| 親から受け取る値(読み書き) | @Binding |
| Viewが所有するObservableObject | @StateObject |
| 外部から注入されるObservableObject | @ObservedObject |
| アプリ全体で共有 | @EnvironmentObject |
| iOS 17+ | @Observable + @Bindable |
関連スキル
- swiftui-coding-guidelines: 基本的なベストプラクティス
- swift-ios-migration: iOS 17 @Observable移行
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-01-20
- 索引更新时间
- 2026-01-26
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!