app-store
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
iPadOS-specific patterns including Stage Manager, multi-window, drag and drop, keyboard shortcuts, pointer interactions, and Apple Pencil support. Use when building iPad-optimized features.
Claude Code
$ npx -y skills add rshankras/claude-code-apple-skills --skill ipad-patterns --agent claude-code
Codex
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a codex -y
Cursor
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a cursor -y
Gemini CLI
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a gemini-cli -y
GitHub Copilot
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a github-copilot -y
OpenCode
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a opencode -y
Windsurf
$ npx skills add rshankras/claude-code-apple-skills --skill ipad-patterns -a windsurf -y
name: ipad-patterns description: iPadOS-specific patterns including Stage Manager, multi-window, drag and drop, keyboard shortcuts, pointer interactions, and Apple Pencil support. Use when building iPad-optimized features. allowed-tools: [Read, Glob, Grep] last_verified: 2026-07-16 review_by: 2027-06-22 os_version: iOS 27 / macOS 27
Comprehensive guide for iPadOS-specific development patterns. Covers multitasking (Stage Manager, Split View, Slide Over), multi-window support, drag and drop, keyboard shortcuts, pointer interactions, Apple Pencil, and external display support. These patterns differentiate an iPad-optimized app from a scaled-up iPhone app.
What iPad feature are you building?
|
+-- Multi-window / Stage Manager / UIScene lifecycle
| +-- multitasking.md
| +-- Scene configuration, requestSceneSessionActivation
| +-- Window management, scene delegates
|
+-- Split View / Slide Over / Adaptive Layout
| +-- multitasking.md
| +-- Size classes, compact/regular transitions
| +-- NavigationSplitView column widths
|
+-- Drag and Drop
| +-- drag-drop.md
| +-- SwiftUI: .draggable() / .dropDestination()
| +-- UIKit: UIDragInteraction / UIDropInteraction
| +-- Transferable protocol, NSItemProvider
|
+-- Keyboard Shortcuts
| +-- input-methods.md
| +-- SwiftUI: .keyboardShortcut()
| +-- UIKit: UIKeyCommand
| +-- Discoverability overlay (Cmd hold)
|
+-- Pointer / Trackpad Interactions
| +-- input-methods.md
| +-- .hoverEffect(), UIPointerInteraction
| +-- Custom pointer shapes, lift/highlight effects
|
+-- Apple Pencil / PencilKit
| +-- input-methods.md
| +-- PKCanvasView, PKDrawing
| +-- Touch type filtering, Scribble
|
+-- External Display
+-- multitasking.md
+-- WindowGroup for external scenes
+-- UIScreen notifications (legacy)| API | Minimum Version | Reference | |-----|----------------|-----------| | `UIScene` / `UISceneDelegate` | iPadOS 13 | multitasking.md | | `UISceneConfiguration` | iPadOS 13 | multitasking.md | | `UIUserInterfaceSizeClass` | iPadOS 8 | multitasking.md | | `NavigationSplitView` | iPadOS 16 | multitasking.md | | `.horizontalSizeClass` / `.verticalSizeClass` | iPadOS 14 (SwiftUI) | multitasking.md | | `.hoverEffect()` | iPadOS 13 | input-methods.md | | `.keyboardShortcut()` | iPadOS 14 | input-methods.md | | `PencilKit` (PKCanvasView) | iPadOS 13 | input-methods.md | | `.draggable()` / `.dropDestination()` | iPadOS 16 | drag-drop.md | | `Transferable` protocol | iPadOS 16 | drag-drop.md | | `UIDragInteraction` / `UIDropInteraction` | iPadOS 11 | drag-drop.md | | `NSItemProvider` | iPadOS 11 | drag-drop.md | | `WindowGroup` (multi-window) | iPadOS 16 (SwiftUI lifecycle) | multitasking.md | | `.handlesExternalEvents` | iPadOS 14 | multitasking.md | | `UISceneSession.requestSceneSessionActivation` | iPadOS 13 | multitasking.md | | `.focusable()` / `@FocusState` | iPadOS 15 | input-methods.md | | `FocusedValue` / `FocusedObject` | iPadOS 16 | input-methods.md |
| # | Mistake | Fix | Details | |---|---------|-----|---------| | 1 | Ignoring size classes, building fixed layouts | Use `@Environment(\.horizontalSizeClass)` to adapt between compact and regular | multitasking.md | | 2 | No keyboard shortcuts for common actions | Add `.keyboardShortcut()` to primary actions (Cmd+N, Cmd+S, Delete) | input-methods.md | | 3 | Missing drag and drop on list/grid items | Add `.draggable()` and `.dropDestination()` for content types users expect to move | drag-drop.md | | 4 | No hover effects on interactive elements | Add `.hoverEffect()` to buttons, list rows, and custom controls | input-methods.md | | 5 | Not supporting multiple windows (single-scene only) | Add `WindowGroup` support and handle `NSUserActivity` for state restoration | multitasking.md |
| Area | Rule | |------|------| | Adaptive navigation | The tab bar can morph into a sidebar -- use a sidebar for deep or nested content hierarchies, a tab bar when the app is compact and content-forward | | Immersion | Run content under the toolbar/sidebar with a scroll edge effect so a floating window still feels edge-to-edge | | Window controls | Wrap the toolbar around the window controls on the leading edge instead of reserving a safe-area strip above the content | | Documents | Each document opens in ITS OWN window, never "in place" -- and every window gets a unique, descriptive name so the app menu's window list stays navigable | | Pointer | Test with the pointer -- it is 1:1 precise with no magnetizing or rubber-banding to targets, so dense hit areas that survive touch forgiveness can still fail | | Menu bar | Order menu items by frequency of use (not alphabetically); push secondary actions into submenus; populate the View menu with tabs, their keyboard shortcuts, and sidebar toggles |
Read the user's code or requirements to determine:
Based on the need, read from this directory:
A collection of Claude Code skills for iOS, macOS, watchOS, visionOS, and Apple platform development. These skills help you plan and build apps, maintain code quality, ensure HIG compliance, and guide you from idea to App Store.
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution,…
Generate compelling App Store descriptions that convert browsers into users. Use when writing initial descriptions, improving…
Apple Search Ads campaign strategy for indie developers — paid acquisition, keyword bidding, budget planning, and ROAS…
Take a one-time in-app purchase from MISSING_METADATA to READY_TO_SUBMIT in App Store Connect — set its price schedule and…
Optimize app title, subtitle, and keywords for maximum App Store discoverability. Use when launching a new app, improving search…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.