Create a Tip
- Title and Message – with direct action labels as title, easy to remember instructions in the message
- Don’t use for promotional or error messages.
- Add the TipsCenter.shared. ?? in the init() of the @main for the app.
- Add icons and color match with the application. You may wish to add an action button if there are settings.
- Set treatment and placement.
- Pop-over – points to element or button to direct the user (.popoverMiniTip)
- Inline – adjust the apps UI so no UI is blocked.
Eligibility rules
- Don’t be spammy or irrelevant. If the feature is already discovered don’t spam them. If users are very infrequently using your app, you may not want to show tips either.
- Rules are
- Parameter based rule – persistent based on State and Boolean
- Event-Based rules – define an action that must have occurred before they are shown.
- Donate the event
- You can create custom events using associated types and use that for the rule
Display and dismissal
- Don’t show it forever, don’t show multiple at once
- You can do a DisplayFequency (.daily, .hourly, custom duration) you can also do .immediate
- You can do .ignoresDisplayFrequence(true) for a specific tip
- If the feature is used it should be dismissed… You can then call the invalidate function with user performed action
- You can also set a .maxDisplayCount to not annoy the user with the same tip over and over.
- Tips can be synced via iCloud, so you don’t want to show the same tip on different devices
Test tips
- You can work around eligibility rules. Use TipsCenter.showAllTips() or .showTips with tip iD, or .hideTips to prevent, or .hideAllTips()
- .resetDatastore() can be used to clean it up
- You can also use com.apple.TipKit.showAllTips in your launch arguments (or any of the other commands)