app-store
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive promotional strategy. Use when user…
Generate TipKit infrastructure with inline/popover tips, rules, display frequency, and testing utilities. Use when adding contextual tips or feature discovery to an iOS/macOS app.
$ npx -y skills add rshankras/claude-code-apple-skills --skill tipkit-generator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/tipkit-generatorContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate TipKit infrastructure with inline/popover tips, rules, display frequency, and testing utilities. Use when adding contextual tips or feature discovery to an iOS/macOS app.
name: tipkit-generator description: Generate TipKit infrastructure with inline/popover tips, rules, display frequency, and testing utilities. Use when adding contextual tips or feature discovery to an iOS/macOS app. allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion] last_verified: 2026-07-16 review_by: 2027-06-22 os_version: iOS 27 / macOS 27
Generate a complete TipKit setup for contextual tips and feature discovery, including tip definitions, rules, display frequency, inline and popover presentation, and testing utilities.
Use this skill when the user:
Search for existing TipKit usage:
Glob: **/*Tip*.swift Grep: "import TipKit" or "Tips.configure"
If found, ask user:
Ask user via AskUserQuestion:
1. **What features need tips?**
2. **Tip presentation style?** (per tip or general preference)
3. **Rule types needed?**
4. **Display frequency?**
5. **Tip ordering?**
Read the templates file for code patterns:
Read("skills/generators/tipkit-generator/templates.md")Generate these files based on configuration: 1. `Tips/` directory with one file per tip (e.g., `SearchTip.swift`, `FilterTip.swift`) 2. `Tips/TipEvents.swift` - Centralized event definitions 3. `Tips/TipsConfiguration.swift` - Tips.configure() setup and testing utilities
Check project structure:
After generation, provide:
Sources/Tips/ ├── SearchTip.swift # Tip with rules and options ├── FilterTip.swift # Another tip definition ├── TipEvents.swift # Centralized event definitions └── TipsConfiguration.swift # Tips.configure() + testing helpers
**App Entry Point (Required):**
import TipKit
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.task {
try? Tips.configure([
.displayFrequency(.daily),
.datastoreLocation(.applicationDefault)
])
}
}
}
}**Inline Tip:**
import TipKit
struct SearchView: View {
let searchTip = SearchTip()
var body: some View {
VStack {
TipView(searchTip)
SearchBar()
}
}
}**Popover Tip:**
import TipKit
struct ToolbarView: View {
let filterTip = FilterTip()
var body: some View {
Button("Filter", systemImage: "line.3.horizontal.decrease.circle") {
// action
}
.popoverTip(filterTip)
}
}**Event Donation (at action site):**
Button("Search") {
performSearch()
SearchTip.searchPerformed.donate()
}**Tip Invalidation (when tip is no longer relevant):**
func onFeatureUsed() {
// User discovered the feature, invalidate the tip
searchTip.invalidate(reason: .actionPerformed)
}1. **Reset DataStore between runs:**
// Add to a debug menu or call in preview try? Tips.resetDatastore()
2. **Show all tips for testing:**
// Ignores rules and frequency -- shows everything Tips.showAllTipsForTesting()
3. **Show specific tips for testing:**
Tips.showTipsForTesting([SearchTip.self])
4. **Test scenarios:**
1. **Forgetting Tips.configure()** -- Tips will never appear if you do not call `Tips.configure()` before any tip is displayed. This must happen early, typically in the App `body` or `.task`.
2. **Rules not evaluating** -- Parameter-based rules require you to set the parameter value explicitly. If you define `@Parameter static var hasSeenFeature = false` but never set it to `true`, the rule never passes.
3. **DataStore conflicts in tests** -- If you run unit tests and the app simultaneously, they may share the same DataStore. Use `.datastoreLocation(.url(...))` to isolate them.
4. **Disp
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.
Repo: rshankras/claude-code-apple-skills
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive promotional strategy. Use when user…
Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution, conversion-value strategy under…
Generate compelling App Store descriptions that convert browsers into users. Use when writing initial descriptions, improving existing copy, or drafting…
Apple Search Ads campaign strategy for indie developers — paid acquisition, keyword bidding, budget planning, and ROAS optimization. Use when user asks about…
Take a one-time in-app purchase from MISSING_METADATA to READY_TO_SUBMIT in App Store Connect — set its price schedule and localized display name/description…
Optimize app title, subtitle, and keywords for maximum App Store discoverability. Use when launching a new app, improving search rankings, entering new…