From 72770801d34a12ee596d1e7b69cd47ea0a801db7 Mon Sep 17 00:00:00 2001 From: alexandrev-tibco Date: Thu, 11 Jun 2026 13:49:33 +0200 Subject: [PATCH] 1.1.5: add analytics for stats_viewed and week_rated events Co-Authored-By: Claude Sonnet 4.6 --- MealMood/Services/AnalyticsService.swift | 15 +++++++++++++++ MealMood/ViewModels/HomeViewModel.swift | 1 + MealMood/Views/Stats/StatsView.swift | 1 + 3 files changed, 17 insertions(+) diff --git a/MealMood/Services/AnalyticsService.swift b/MealMood/Services/AnalyticsService.swift index dc407c8..08248a3 100644 --- a/MealMood/Services/AnalyticsService.swift +++ b/MealMood/Services/AnalyticsService.swift @@ -29,6 +29,12 @@ enum AnalyticsEvent { static let iCloudSyncToggled = "icloud_sync_toggled" static let notificationsToggled = "notifications_toggled" static let languageChanged = "language_changed" + + // Stats + static let statsViewed = "stats_viewed" + + // Feedback loop + static let weekRated = "week_rated" } enum AnalyticsService { @@ -103,4 +109,13 @@ enum AnalyticsService { static func logNotificationsToggled(enabled: Bool) { logEvent(AnalyticsEvent.notificationsToggled, parameters: ["enabled": enabled]) } + + static func logStatsViewed() { + logEvent(AnalyticsEvent.statsViewed) + } + + static func logWeekRated(rating: Int) { + let value = rating == 1 ? "liked" : rating == -1 ? "disliked" : "cleared" + logEvent(AnalyticsEvent.weekRated, parameters: ["rating": value]) + } } diff --git a/MealMood/ViewModels/HomeViewModel.swift b/MealMood/ViewModels/HomeViewModel.swift index 04767b7..985429d 100644 --- a/MealMood/ViewModels/HomeViewModel.swift +++ b/MealMood/ViewModels/HomeViewModel.swift @@ -168,6 +168,7 @@ final class HomeViewModel: ObservableObject { func rateWeek(plan: WeekPlan, rating: Int) { plan.userRating = rating plan.updatedAt = Date() + AnalyticsService.logWeekRated(rating: rating) HapticManager.shared.impact(style: .light) } diff --git a/MealMood/Views/Stats/StatsView.swift b/MealMood/Views/Stats/StatsView.swift index 3aad906..e00ce85 100644 --- a/MealMood/Views/Stats/StatsView.swift +++ b/MealMood/Views/Stats/StatsView.swift @@ -20,6 +20,7 @@ struct StatsView: View { .padding(.vertical, 20) } .background(Color.mealMoodBackground.ignoresSafeArea()) + .onAppear { AnalyticsService.logStatsViewed() } .navigationTitle("stats_title") .navigationBarTitleDisplayMode(.inline) .toolbar {