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:
@@ -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" : {
|
||||
|
||||
Reference in New Issue
Block a user