← ClaudeAtlas

tipkitlisted

Implement, review, or improve in-app tips and onboarding using Apple's TipKit framework. Use when adding feature discovery tooltips, onboarding flows, contextual tips, first-run experiences, coach marks, or working with Tip protocol, TipView, popoverTip, tip rules, tip events, or feature education UI.
dpearson2699/swift-ios-skills · ★ 730 · AI & Automation · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# TipKit Add feature discovery tips, contextual hints, and onboarding coach marks to iOS 17+ apps using Apple's TipKit framework. TipKit manages display frequency, eligibility rules, and persistence so tips appear at the right time and disappear once the user has learned the feature. ## Contents - [Setup](#setup) - [Defining Tips](#defining-tips) - [Displaying Tips](#displaying-tips) - [Tip Rules](#tip-rules) - [Tip Actions](#tip-actions) - [Tip Groups](#tip-groups) - [Programmatic Control](#programmatic-control) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Setup Call `Tips.configure()` once in `App.init`, before any views render. This initializes the tips datastore and begins rule evaluation. Calling it later risks a race where tip views attempt to display before the datastore is ready. ```swift import SwiftUI import TipKit @main struct MyApp: App { init() { try? Tips.configure([ .datastoreLocation(.applicationDefault) ]) } var body: some Scene { WindowGroup { ContentView() } } } ``` ### DatastoreLocation Options | Option | Use Case | |---|---| | `.applicationDefault` | Default location, app sandbox (most apps) | | `.groupContainer(identifier:)` | Share tips state across app and extensions | | `.url(_:)` | Custom file URL for full control over storage location | ### CloudKit Sync Sync tip state across a user's devices so they do not see the same tip