Commit 663de592 by Dmitry Stepanets

Added analytics events for onboarding

parent eba71354
......@@ -80,9 +80,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
FirebaseApp.configure()
ConfigManager.shared.updateConfig()
//App UI
let appCoordinator = AppCoordinator(window: self.window!)
appCoordinator.start()
#if DEBUG
let onboard = OnboardingPageController(coordinator: AppCoordinator(window: self.window!))
window?.rootViewController = onboard
window?.makeKeyAndVisible()
#else
fatalError("Remove in release")
#endif
// //App UI
// let appCoordinator = AppCoordinator(window: self.window!)
// appCoordinator.start()
ThemeManager.setBaseTheme()
......
......@@ -6,6 +6,7 @@
//
import UIKit
import OneWeatherAnalytics
enum OnboardingControllerType {
case forecast
......@@ -73,6 +74,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
override func viewDidLoad() {
super.viewDidLoad()
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_FORECAST_SEEN)
prepareController()
prepareCloseButton()
preparePageControl()
......@@ -92,6 +94,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
}
@objc private func handleSkipButton() {
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_SKIP)
coordinator.finishInitialOnboarding()
}
......@@ -109,9 +112,14 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
let nextIndex = currentIndex + 1
guard nextIndex < pages.count else { return }
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_NEXT)
setViewControllers([pages[nextIndex]], direction: .forward, animated: true) {[weak self] _ in
self?.currentPageIndex = nextIndex
self?.showDoneIfNeeded(for: nextIndex)
guard let self = self else { return }
self.logSeenEvent(forPage: self.currentPageIndex)
self.currentPageIndex = nextIndex
self.showDoneIfNeeded(for: nextIndex)
}
}
......@@ -131,6 +139,19 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
}
}
private func logSeenEvent(forPage previousPageIndex: Int) {
switch previousPageIndex {
case 0:
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_FORECAST_SEEN)
case 1:
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_ALERT_SEEN)
case 2:
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_RADAR_SEEN)
default:
break
}
}
private func showDoneIfNeeded(for pageIndex: Int) {
UIView.animate(withDuration: 0.2) {
if pageIndex == self.pages.count - 1 {
......@@ -287,12 +308,14 @@ extension OnboardingPageController: UIPageViewControllerDelegate {
) {
guard
let currentPageVC = pageViewController.viewControllers?.first,
let currentPageIndex = pages.firstIndex(of: currentPageVC)
let newPageIndex = pages.firstIndex(of: currentPageVC)
else {
return
}
self.currentPageIndex = currentPageIndex
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_SWIPE)
logSeenEvent(forPage: self.currentPageIndex)
self.currentPageIndex = newPageIndex
showDoneIfNeeded(for: currentPageIndex)
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment