Rebrand entire project from Feels to Reflect

Complete rename across all bundle IDs, App Groups, CloudKit containers,
StoreKit product IDs, data store filenames, URL schemes, logger subsystems,
Swift identifiers, user-facing strings (7 languages), file names, directory
names, Xcode project, schemes, assets, and documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-26 11:47:16 -06:00
parent b1a54d2844
commit 0442eab1f8
380 changed files with 858 additions and 1077 deletions

View File

@@ -1,10 +1,10 @@
# Custom Tips System Documentation
This document describes all tips implemented in the Feels app, including their display conditions and locations.
This document describes all tips implemented in the Reflect app, including their display conditions and locations.
## Overview
Tips are displayed as themed modal sheets that match the user's chosen app theme. The system is managed by `FeelsTipsManager` (singleton) and configured with:
Tips are displayed as themed modal sheets that match the user's chosen app theme. The system is managed by `ReflectTipsManager` (singleton) and configured with:
- **Display Frequency**: One tip per app session
- **Global Toggle**: `tipsEnabled` boolean in UserDefaults
- **Persistence**: Shown tip IDs stored in UserDefaults
@@ -34,7 +34,7 @@ Tips are displayed as themed modal sheets that match the user's chosen app theme
**Display Conditions**:
- User has logged at least **7 moods**
**Parameter**: `moodLogCount: Int` (incremented via `FeelsTipsManager.shared.onMoodLogged()`)
**Parameter**: `moodLogCount: Int` (incremented via `ReflectTipsManager.shared.onMoodLogged()`)
**Location**: InsightsView (via `.aiInsightsTip()`)
@@ -43,13 +43,13 @@ Tips are displayed as themed modal sheets that match the user's chosen app theme
### 3. SiriShortcutTip
**Title**: "Use Siri to Log Moods"
**Message**: "Say 'Hey Siri, log my mood as great in Feels' for hands-free logging."
**Message**: "Say 'Hey Siri, log my mood as great in Reflect' for hands-free logging."
**Icon**: `mic.fill`
**Display Conditions**:
- User has logged at least **3 moods**
**Parameter**: `moodLogCount: Int` (incremented via `FeelsTipsManager.shared.onMoodLogged()`)
**Parameter**: `moodLogCount: Int` (incremented via `ReflectTipsManager.shared.onMoodLogged()`)
**Location**: SettingsContentView (Features section header, via `.siriShortcutTip()`)
@@ -64,7 +64,7 @@ Tips are displayed as themed modal sheets that match the user's chosen app theme
**Display Conditions**:
- User has viewed the Settings screen
**Parameter**: `hasSeenSettings: Bool` (set via `FeelsTipsManager.shared.onSettingsViewed()`)
**Parameter**: `hasSeenSettings: Bool` (set via `ReflectTipsManager.shared.onSettingsViewed()`)
**Location**: SettingsContentView (Health Kit toggle, via `.healthKitSyncTip()`)
@@ -106,29 +106,29 @@ Tips are displayed as themed modal sheets that match the user's chosen app theme
**Display Conditions**:
- User has a current streak of at least **3 days**
**Parameter**: `currentStreak: Int` (updated via `FeelsTipsManager.shared.updateStreak(_:)`)
**Parameter**: `currentStreak: Int` (updated via `ReflectTipsManager.shared.updateStreak(_:)`)
**Location**: DayView (via `.moodStreakTip()`)
---
## FeelsTipsManager API
## ReflectTipsManager API
```swift
// Reset session flag (call on app launch)
FeelsTipsManager.shared.resetSession()
ReflectTipsManager.shared.resetSession()
// Reset all tips (for testing)
FeelsTipsManager.shared.resetAllTips()
ReflectTipsManager.shared.resetAllTips()
// Update parameters
FeelsTipsManager.shared.onMoodLogged() // Increments mood log count
FeelsTipsManager.shared.onSettingsViewed() // Marks settings as viewed
FeelsTipsManager.shared.updateDaysUsingApp(_:) // Updates days using app
FeelsTipsManager.shared.updateStreak(_:) // Updates current streak
ReflectTipsManager.shared.onMoodLogged() // Increments mood log count
ReflectTipsManager.shared.onSettingsViewed() // Marks settings as viewed
ReflectTipsManager.shared.updateDaysUsingApp(_:) // Updates days using app
ReflectTipsManager.shared.updateStreak(_:) // Updates current streak
// Global toggle
FeelsTipsManager.shared.tipsEnabled = true/false
ReflectTipsManager.shared.tipsEnabled = true/false
```
---
@@ -147,7 +147,7 @@ Tips can be attached to views using these convenience modifiers:
.moodStreakTip()
// Or use the generic modifier with custom gradient colors:
.feelsTip(FeelsTips.customizeLayout, gradientColors: [.purple, .blue])
.reflectTip(ReflectTips.customizeLayout, gradientColors: [.purple, .blue])
```
---
@@ -165,6 +165,6 @@ Tips are displayed as themed modal sheets with:
## Files
- **Tips & Manager**: `Shared/FeelsTips.swift`
- **Tips & Manager**: `Shared/ReflectTips.swift`
- **Modal View**: `Shared/Views/TipModalView.swift`
- **Configuration**: `FeelsTipsManager.shared.resetSession()` called in `FeelsApp.swift`
- **Configuration**: `ReflectTipsManager.shared.resetSession()` called in `ReflectApp.swift`