Replace PostHog integration with AnalyticsManager architecture

Remove old PostHogAnalytics singleton and replace with guide-based
two-file architecture: AnalyticsManager (singleton wrapper with super
properties, session replay, opt-out, subscription funnel) and
AnalyticsEvent (type-safe enum with associated values).

Key changes:
- New API key, self-hosted analytics endpoint
- All 19 events ported to type-safe AnalyticsEvent enum
- Screen tracking via AnalyticsManager.Screen enum + SwiftUI modifier
- Remove all identify() calls — fully anonymous analytics
- Add lifecycle hooks: flush on background, update super properties on foreground
- Add privacy opt-out toggle in Settings
- Subscription funnel methods ready for IAP integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-11 09:48:49 -06:00
parent 09be5fa444
commit 2fc4a48fc9
50 changed files with 2191 additions and 335 deletions

View File

@@ -81,6 +81,10 @@ struct MainTabView: View {
// Handle pending navigation from push notification
if pushManager.pendingNavigationTaskId != nil {
selectedTab = 1
} else if pushManager.pendingNavigationDocumentId != nil {
selectedTab = 3
} else if pushManager.pendingNavigationResidenceId != nil {
selectedTab = 0
}
}
.onReceive(NotificationCenter.default.publisher(for: .navigateToTask)) { _ in
@@ -89,6 +93,12 @@ struct MainTabView: View {
.onReceive(NotificationCenter.default.publisher(for: .navigateToEditTask)) { _ in
selectedTab = 1
}
.onReceive(NotificationCenter.default.publisher(for: .navigateToResidence)) { _ in
selectedTab = 0
}
.onReceive(NotificationCenter.default.publisher(for: .navigateToDocument)) { _ in
selectedTab = 3
}
.onReceive(NotificationCenter.default.publisher(for: .navigateToHome)) { _ in
selectedTab = 0
}