Skip to content

Commit e69a32e

Browse files
aRustyDevclaude
andcommitted
feat(swiftui-dev): add components and gestures skills from legacy content
Add two new skills modernizing legacy swiftui-guidelines content: - swiftui-components: Layout containers (VStack, HStack, ZStack, grids, GeometryReader, ViewThatFits), built-in components (List, Navigation, Forms, SF Symbols), visual styling (shadows, gradients, blur, shapes), and animations (transitions, matchedGeometryEffect, phaseAnimator) - swiftui-gestures: Basic gestures (tap, long press, drag, magnification, rotation), gesture composition (simultaneous, sequential, exclusive), haptic feedback (UIKit and iOS 17+ sensoryFeedback), and accessibility Also enhanced swiftui-architecture with detailed project structure covering feature-based organization and Swift Package structure. Bumped version 0.1.0 -> 0.2.0 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent f94f558 commit e69a32e

5 files changed

Lines changed: 1157 additions & 15 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
"name": "swiftui-dev",
9191
"source": "./context/plugins/swiftui-dev",
9292
"description": "Comprehensive SwiftUI development support for UI testing, integration testing, data-driven apps, and interactive development practices.",
93-
"version": "0.1.0",
93+
"version": "0.2.0",
9494
"author": {
9595
"name": "Adam Smith",
9696
"email": "developer@gh.arusty.dev"

context/plugins/swiftui-dev/.claude-plugin/plugin.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "swiftui-dev",
3-
"version": "0.1.0",
3+
"version": "0.2.0",
44
"description": "Comprehensive SwiftUI development support for UI testing, integration testing, data-driven apps, and interactive development practices",
55
"author": {
66
"name": "Adam Smith",
@@ -33,7 +33,9 @@
3333
],
3434
"skills": [
3535
"./skills/swiftui-architecture/SKILL.md",
36+
"./skills/swiftui-components/SKILL.md",
3637
"./skills/swiftui-data-flow/SKILL.md",
38+
"./skills/swiftui-gestures/SKILL.md",
3739
"./skills/swiftui-testing/SKILL.md",
3840
"./skills/duckdb-swift/SKILL.md",
3941
"./skills/swift-charts/SKILL.md"

context/plugins/swiftui-dev/skills/swiftui-architecture/SKILL.md

Lines changed: 86 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -171,31 +171,102 @@ struct ItemListView: View {
171171

172172
## File Organization
173173

174+
### Feature-Based Structure (Recommended)
175+
174176
```text
175177
MyApp/
176178
├── App/
177-
│ ├── MyApp.swift
178-
│ └── AppDelegate.swift
179-
├── Features/
180-
│ ├── Items/
179+
│ ├── MyApp.swift # @main entry point
180+
│ ├── AppDelegate.swift # UIKit lifecycle (if needed)
181+
│ └── AppState.swift # Global @Observable state
182+
183+
├── Features/ # Feature modules
184+
│ ├── Home/
185+
│ │ ├── Views/
186+
│ │ │ ├── HomeView.swift
187+
│ │ │ └── HomeCard.swift
188+
│ │ ├── ViewModels/
189+
│ │ │ └── HomeViewModel.swift
190+
│ │ └── Models/
191+
│ │ └── HomeItem.swift
192+
│ │
193+
│ ├── Profile/
181194
│ │ ├── Views/
182-
│ │ │ ├── ItemListView.swift
183-
│ │ │ └── ItemDetailView.swift
184195
│ │ ├── ViewModels/
185-
│ │ │ └── ItemViewModel.swift
186196
│ │ └── Models/
187-
│ │ └── Item.swift
197+
│ │
188198
│ └── Settings/
189199
│ └── ...
190-
├── Core/
200+
201+
├── Core/ # Shared infrastructure
191202
│ ├── Repositories/
192203
│ │ └── ItemRepository.swift
193204
│ ├── Services/
194-
│ │ └── NetworkService.swift
205+
│ │ ├── Network/
206+
│ │ │ ├── APIClient.swift
207+
│ │ │ ├── Endpoints.swift
208+
│ │ │ └── NetworkError.swift
209+
│ │ └── Persistence/
210+
│ │ ├── DatabaseManager.swift
211+
│ │ └── KeychainService.swift
195212
│ └── Extensions/
196-
│ └── View+Extensions.swift
197-
└── Resources/
198-
└── Assets.xcassets
213+
│ ├── View+Extensions.swift
214+
│ └── Date+Extensions.swift
215+
216+
├── Shared/ # Reusable UI components
217+
│ ├── Components/
218+
│ │ ├── LoadingView.swift
219+
│ │ ├── ErrorView.swift
220+
│ │ └── AsyncButton.swift
221+
│ ├── Modifiers/
222+
│ │ ├── CardStyle.swift
223+
│ │ └── ShimmerEffect.swift
224+
│ └── Styles/
225+
│ └── ButtonStyles.swift
226+
227+
├── Utilities/ # Helpers and constants
228+
│ ├── Constants.swift
229+
│ ├── Logger.swift
230+
│ └── Formatters.swift
231+
232+
├── Resources/
233+
│ ├── Assets.xcassets # Images and colors
234+
│ ├── Localizable.xcstrings # Localized strings (Xcode 15+)
235+
│ └── Fonts/ # Custom fonts
236+
│ └── CustomFont.ttf
237+
238+
└── Tests/
239+
├── UnitTests/
240+
│ ├── ViewModels/
241+
│ │ └── HomeViewModelTests.swift
242+
│ └── Services/
243+
│ └── APIClientTests.swift
244+
└── UITests/
245+
├── HomeUITests.swift
246+
└── Helpers/
247+
└── XCUIApplication+Extensions.swift
248+
```
249+
250+
### Swift Package Structure
251+
252+
```text
253+
MyAppPackage/
254+
├── Package.swift
255+
├── Sources/
256+
│ ├── MyApp/ # Main app target
257+
│ │ └── MyApp.swift
258+
│ ├── Features/ # Feature library
259+
│ │ ├── Home/
260+
│ │ └── Profile/
261+
│ ├── Core/ # Core library
262+
│ │ ├── Networking/
263+
│ │ └── Persistence/
264+
│ └── SharedUI/ # UI components library
265+
│ ├── Components/
266+
│ └── Modifiers/
267+
└── Tests/
268+
├── CoreTests/
269+
└── FeaturesTests/
199270
```
200271

201272
## Best Practices
@@ -209,5 +280,7 @@ MyApp/
209280
## Related Skills
210281

211282
- swiftui-data-flow: State management details
283+
- swiftui-components: UI elements and layouts
284+
- swiftui-gestures: User interactions
212285
- swiftui-testing: Testing these patterns
213286
- swift-concurrency: Async/await patterns

0 commit comments

Comments
 (0)