Agent skill · Code Review & Quality

swiftui-gestures

Implement, review, or improve SwiftUI gesture handling. Use when adding tap, long press, drag, magnify, or rotate gestures, composing gestures with simultaneously/sequenced/exclusively, managing transient state with @GestureState, resolving parent/child gesture conflicts with highPriorityGesture or simultaneousGesture, building custom Gesture protocol conformances, or migrating from deprecated MagnificationGesture to MagnifyGesture or using the newer RotateGesture.

Derek Pearson935★ · +23/wk · 1 repos on radarProfile →
claude-codecodexcursorNOASSERTION
Install
npx skills add dpearson2699/swift-ios-skills --skill swiftui-gestures --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 3
SKILL.md size: 14 KB
Bundled scripts: none
Path: skills/swiftui-gestures/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 963 · +28 this week
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# SwiftUI Gestures (iOS 26+) Review, write, and fix SwiftUI gesture interactions. Apply modern gesture APIs with correct composition, state management, and conflict resolution using Swift 6.3 patterns. **Scope boundary:** This skill owns SwiftUI gesture recognition, composition, gesture state, and gesture-specific accessibility alternatives. Broader SwiftUI architecture/state ownership belongs in `swiftui-patterns`; list, scroll, form, and control layout belongs in `swiftui-layout-components`; broad UIKit bridging belongs in `swiftui-uikit-interop`. When correcting Apple API availability, deprecation, or behavior claims, cite the relevant Sosumi or official Apple documentation URL in the response. ## Contents - [Gesture Overview](#gesture-overview) - [TapGesture](#tapgesture) - [LongPressGesture](#longpressgesture) - [DragGesture](#draggesture) - [MagnifyGesture (iOS 17+)](#magnifygesture-ios-17) - [RotateGesture (iOS 17+)](#rotategesture-ios-17) - [Gesture Composition](#gesture-composition) - [`@GestureState`](#gesturestate) - [Adding Gestures to Views](#adding-gestures-to-views) - [Custom Gesture Protocol](#custom-gesture-protocol) - [Common Mistakes](#common-mistakes) - [Review

What's inside
Steps it walks through
  1. Contents
  2. Gesture Overview
  3. TapGesture
  4. LongPressGesture
  5. DragGesture
  6. MagnifyGesture (iOS 17+)
  7. RotateGesture (iOS 17+)
  8. Gesture Composition
  9. .simultaneously(with:) — both gestures recognized at the same time
  10. .sequenced(before:) — first must succeed before second begins
  11. .exclusively(before:) — only one succeeds (first has priority)
  12. @GestureState
  13. Adding Gestures to Views
  14. GestureMask
Ships with 2 files
  • evals/evals.json
  • references/gesture-patterns.md
More from swift-ios-skills
All skills →
About this skill
What does the swiftui-gestures skill do?

Implement, review, or improve SwiftUI gesture handling. Use when adding tap, long press, drag, magnify, or rotate gestures, composing gestures with simultaneously/sequenced/exclusively, managing transient state with @GestureState, resolving parent/child gesture conflicts with highPriorityGesture or simultaneousGesture, building custom Gesture protocol conformances, or migrating from deprecated MagnificationGesture to MagnifyGesture or using the newer RotateGesture.

How do I install it?

Run `npx skills add dpearson2699/swift-ios-skills --skill swiftui-gestures --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From dpearson2699/swift-ios-skills, a repository with 963 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going