Best practices and example-driven guidance for building SwiftUI views and components. Use when creating or refactoring SwiftUI UI, designing tab architecture with TabView, composing screens, or needing component-specific patterns and examples.
Install with Tessl CLI
npx tessl i github:Dimillian/Skills --skill swiftui-ui-patterns86
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillEvaluation — 92%
↑ 1.37xAgent success when using this skill
Validation for skill structure
Tab architecture and navigation routing
AppTab enum
50%
100%
Tab(value:) binding
25%
50%
updateTab interception
83%
100%
Per-tab NavigationStack
100%
100%
Router owns path
62%
100%
Router environment injection
75%
100%
SheetDestination enum
0%
100%
sheet(item:) usage
0%
100%
Sheet dismisses internally
25%
100%
No ViewModel for tabs
75%
100%
Without context: $0.2376 · 1m 7s · 10 turns · 59 in / 4,144 out tokens
With context: $0.4204 · 1m 38s · 16 turns · 14 in / 5,031 out tokens
Lightweight client, store pattern, loading states
Closure-based client struct
0%
16%
URL/decoding in client
100%
100%
State in store, not client
100%
100%
@Observable store
0%
100%
Client injected into store init
100%
100%
No global singleton for store
100%
100%
.task for async loading
100%
100%
Redacted placeholder rows
100%
33%
ContentUnavailableView for empty
50%
100%
Preview stubbing described
100%
100%
Without context: $0.4605 · 1m 43s · 20 turns · 20 in / 6,980 out tokens
With context: $0.5854 · 2m 3s · 24 turns · 25 in / 7,597 out tokens
Search, theming, form focus, haptics
Theme @Observable
50%
100%
Theme via environment
100%
100%
No raw Color in views
62%
100%
FocusState enum
100%
100%
Initial focus on appear
100%
100%
Field chaining with onSubmit
100%
100%
searchable with scopes
0%
100%
Debounced search via .task(id:)
70%
100%
HapticManager centralized
100%
100%
Haptics gated by preference
100%
100%
scrollContentBackground hidden
33%
100%
Without context: $0.3918 · 1m 58s · 11 turns · 12 in / 8,075 out tokens
With context: $0.4834 · 1m 32s · 23 turns · 21 in / 5,158 out tokens
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.