Commit 663de592 by Dmitry Stepanets

Added analytics events for onboarding

parent eba71354
...@@ -80,9 +80,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ...@@ -80,9 +80,16 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
FirebaseApp.configure() FirebaseApp.configure()
ConfigManager.shared.updateConfig() ConfigManager.shared.updateConfig()
//App UI #if DEBUG
let appCoordinator = AppCoordinator(window: self.window!) let onboard = OnboardingPageController(coordinator: AppCoordinator(window: self.window!))
appCoordinator.start() window?.rootViewController = onboard
window?.makeKeyAndVisible()
#else
fatalError("Remove in release")
#endif
// //App UI
// let appCoordinator = AppCoordinator(window: self.window!)
// appCoordinator.start()
ThemeManager.setBaseTheme() ThemeManager.setBaseTheme()
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
// //
import UIKit import UIKit
import OneWeatherAnalytics
enum OnboardingControllerType { enum OnboardingControllerType {
case forecast case forecast
...@@ -73,6 +74,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate { ...@@ -73,6 +74,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_FORECAST_SEEN)
prepareController() prepareController()
prepareCloseButton() prepareCloseButton()
preparePageControl() preparePageControl()
...@@ -92,6 +94,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate { ...@@ -92,6 +94,7 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
} }
@objc private func handleSkipButton() { @objc private func handleSkipButton() {
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_SKIP)
coordinator.finishInitialOnboarding() coordinator.finishInitialOnboarding()
} }
...@@ -109,9 +112,14 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate { ...@@ -109,9 +112,14 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate {
let nextIndex = currentIndex + 1 let nextIndex = currentIndex + 1
guard nextIndex < pages.count else { return } guard nextIndex < pages.count else { return }
AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_NEXT)
setViewControllers([pages[nextIndex]], direction: .forward, animated: true) {[weak self] _ in setViewControllers([pages[nextIndex]], direction: .forward, animated: true) {[weak self] _ in
self?.currentPageIndex = nextIndex guard let self = self else { return }
self?.showDoneIfNeeded(for: nextIndex)
self.logSeenEvent(forPage: self.currentPageIndex)
self.currentPageIndex = nextIndex
self.showDoneIfNeeded(for: nextIndex)
} }
} }
...@@ -131,6 +139,19 @@ class OnboardingPageController: UIPageViewController, UIScrollViewDelegate { ...@@ -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) { private func showDoneIfNeeded(for pageIndex: Int) {
UIView.animate(withDuration: 0.2) { UIView.animate(withDuration: 0.2) {
if pageIndex == self.pages.count - 1 { if pageIndex == self.pages.count - 1 {
...@@ -287,12 +308,14 @@ extension OnboardingPageController: UIPageViewControllerDelegate { ...@@ -287,12 +308,14 @@ extension OnboardingPageController: UIPageViewControllerDelegate {
) { ) {
guard guard
let currentPageVC = pageViewController.viewControllers?.first, let currentPageVC = pageViewController.viewControllers?.first,
let currentPageIndex = pages.firstIndex(of: currentPageVC) let newPageIndex = pages.firstIndex(of: currentPageVC)
else { else {
return return
} }
self.currentPageIndex = currentPageIndex AppAnalytics.shared.log(event: .ANALYTICS_ONBOARDING_SWIPE)
logSeenEvent(forPage: self.currentPageIndex)
self.currentPageIndex = newPageIndex
showDoneIfNeeded(for: currentPageIndex) 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