Replace TipKit with custom themed tips modal system

- Add TipModalView with gradient header, themed styling, and spring animations
- Create FeelsTipsManager with global toggle, session tracking, and persistence
- Define FeelsTip protocol and convert all 7 tips to new system
- Add convenience view modifiers (.customizeLayoutTip(), .aiInsightsTip(), etc.)
- Remove TipKit dependency from all views
- Add Tips Preview debug screen in Settings to test all tip modals
- Update documentation for new custom tips system

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-28 21:33:36 -06:00
parent e98142c72e
commit c59f215535
11 changed files with 809 additions and 222 deletions

View File

@@ -767,6 +767,7 @@
},
"Add Feels to Control Center for one-tap mood logging from anywhere." : {
"comment" : "A tip message for adding the Feels app to the Control Center for easy access to mood logging.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -897,6 +898,7 @@
},
"Add the Mood Vote widget to quickly log your mood without opening the app." : {
"comment" : "A message encouraging users to add the Mood Vote widget to their home screen to log moods without using the main app.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -1402,6 +1404,7 @@
},
"Build Your Streak!" : {
"comment" : "A title for a tip that encourages users to build a mood streak.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -1881,6 +1884,7 @@
},
"Connect to Apple Health to see your mood data alongside sleep, exercise, and more." : {
"comment" : "A message that encourages connecting their Apple Health account to see more data about their health and moods.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -3027,6 +3031,14 @@
}
}
},
"Current Parameters" : {
"comment" : "A section header that lists various current settings and statistics of the app.",
"isCommentAutoGenerated" : true
},
"Current Streak" : {
"comment" : "A label for the current streak of using the feature.",
"isCommentAutoGenerated" : true
},
"Current: %@" : {
"comment" : "A text view displaying the current date and time of the first app launch.",
"isCommentAutoGenerated" : true,
@@ -3603,6 +3615,10 @@
}
}
},
"Days Using App" : {
"comment" : "A label describing the number of days the app has been used.",
"isCommentAutoGenerated" : true
},
"Debug" : {
"comment" : "A section header in the settings view, hidden in release builds.",
"isCommentAutoGenerated" : true,
@@ -4298,6 +4314,7 @@
},
"Discover AI Insights" : {
"comment" : "A tip title for a feature that provides personalized insights about mood patterns.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -5505,6 +5522,7 @@
},
"Get personalized insights about your mood patterns powered by Apple Intelligence." : {
"comment" : "A message accompanying the \"Discover AI Insights\" tip, encouraging users to explore their mood patterns with Apple Intelligence.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -5630,6 +5648,10 @@
}
}
},
"Got it" : {
"comment" : "A button label that says \"Got it\".",
"isCommentAutoGenerated" : true
},
"Got it! Logged %@ for today." : {
"comment" : "A confirmation dialog and a snippet view that appear when the \"Log Mood\" intent is triggered. The argument is the name of the mood that was logged.",
"isCommentAutoGenerated" : true,
@@ -5672,6 +5694,14 @@
}
}
},
"Green dot = eligible to show. Tips only show once per session when eligible." : {
"comment" : "A footer label explaining that tips are only shown once per session and that the green dot indicates whether a tip is currently eligible to be shown.",
"isCommentAutoGenerated" : true
},
"Has Seen Settings" : {
"comment" : "A label for whether the user has seen the settings screen.",
"isCommentAutoGenerated" : true
},
"How are you feeling?" : {
},
@@ -6335,6 +6365,7 @@
},
"Log your mood daily to build a streak. Consistency helps you understand your patterns." : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
@@ -6757,6 +6788,10 @@
}
}
},
"Mood Log Count" : {
"comment" : "A label describing the count of mood logs.",
"isCommentAutoGenerated" : true
},
"Mood Logged" : {
"comment" : "A title for the view that appears when a user logs their mood.",
"isCommentAutoGenerated" : true,
@@ -8800,6 +8835,7 @@
},
"Personalize Your Experience" : {
"comment" : "A title for a tip that encourages users to customize their mood tracking experience.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -9906,6 +9942,7 @@
},
"Quick Access from Control Center" : {
"comment" : "A tip that instructs users to add the Feels app to the Control Center for quick access to mood logging.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -10248,6 +10285,10 @@
"comment" : "A hint that describes the purpose of the Privacy Lock toggle.",
"isCommentAutoGenerated" : true
},
"Reset All Tips" : {
"comment" : "A button that resets all tips to their default state.",
"isCommentAutoGenerated" : true
},
"Reset luanch date to current date" : {
"comment" : "A button label that resets the app's launch date to the current date.",
"isCommentAutoGenerated" : true,
@@ -10893,6 +10934,7 @@
},
"Say \"Hey Siri, log my mood as great in Feels\" for hands-free logging." : {
"comment" : "A tip message for using Siri to log moods.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -11683,6 +11725,10 @@
}
}
},
"Shown This Session" : {
"comment" : "A label showing whether the tip has been shown during the current session.",
"isCommentAutoGenerated" : true
},
"SIDE A" : {
"comment" : "The label for the left side of the tape reel.",
"isCommentAutoGenerated" : true,
@@ -12189,6 +12235,7 @@
},
"Switch between Day, Month, and Year views to see your mood patterns over time." : {
"comment" : "A tip that instructs the user to switch between different time views to view their mood history.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -12235,6 +12282,7 @@
},
"Sync with Apple Health" : {
"comment" : "A tip to sync their data with Apple Health.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -12365,6 +12413,7 @@
},
"Tap here to customize mood icons, colors, and layouts." : {
"comment" : "A message accompanying the \"Personalize Your Experience\" tip, encouraging users to customize their mood tracking interface.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -12539,6 +12588,10 @@
"comment" : "A hint that describes the action to subscribe to the widget.",
"isCommentAutoGenerated" : true
},
"Tap to preview" : {
"comment" : "A text label displayed above a list of tips, instructing the user to tap on them to view more information.",
"isCommentAutoGenerated" : true
},
"Tap to record your mood for this day" : {
"comment" : "A description of what a user can do to add a new entry to their mood journal.",
"isCommentAutoGenerated" : true,
@@ -12732,6 +12785,14 @@
}
}
},
"Tips Enabled" : {
"comment" : "A toggle that enables or disables tips in the app.",
"isCommentAutoGenerated" : true
},
"Tips Preview" : {
"comment" : "A label for a view that previews all tip modals.",
"isCommentAutoGenerated" : true
},
"Today" : {
"comment" : "A label displayed next to the icon representing today's mood.",
"isCommentAutoGenerated" : true,
@@ -13466,6 +13527,7 @@
"isCommentAutoGenerated" : true
},
"Use Siri to Log Moods" : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
@@ -13547,6 +13609,10 @@
}
}
},
"View all tip modals" : {
"comment" : "A description of what the \"Tips Preview\" button does.",
"isCommentAutoGenerated" : true
},
"View Full Paywall" : {
},
@@ -13556,6 +13622,7 @@
},
"View Your History" : {
"comment" : "A tip title for viewing and managing one's mood history.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {
@@ -13645,6 +13712,7 @@
},
"Vote from Your Home Screen" : {
"comment" : "A tip encouraging users to vote on their mood from their home screen.",
"extractionState" : "stale",
"isCommentAutoGenerated" : true,
"localizations" : {
"de" : {