Add FirebaseManager
This commit is contained in:
parent
3e133773a9
commit
6aef8bc2de
@ -66,11 +66,15 @@ class MatomoAnalyticsManager: AnalyticsManagerProtocol {
|
||||
|
||||
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
|
||||
func logScreen(name: String, path: String) {
|
||||
|
||||
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: name])
|
||||
}
|
||||
|
||||
func logEvent(name: String) {
|
||||
|
||||
var parameters = [
|
||||
AnalyticsParameterValue: name
|
||||
]
|
||||
|
||||
Analytics.logEvent(AnalyticsEventSelectContent, parameters: parameters)
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,20 +87,27 @@ class AnalyticsManager {
|
||||
|
||||
var managers: [AnalyticsManagerProtocol] = []
|
||||
|
||||
private var isEnabled: Bool = true
|
||||
|
||||
// MARK: - Methods
|
||||
|
||||
func setAnalyticsEnabled(_ enable: Bool) { isEnabled = enable }
|
||||
|
||||
func configure(sideId: String, url: String) {
|
||||
managers.append(MatomoAnalyticsManager(siteId: sideId, url: url))
|
||||
|
||||
managers.append(FirebaseAnalyticsManager())
|
||||
FirebaseApp.configure()
|
||||
}
|
||||
|
||||
private func logScreen(name: String, path: String) {
|
||||
guard isEnabled else { return }
|
||||
managers.forEach { manager in
|
||||
manager.logScreen(name: name, path: path)
|
||||
}
|
||||
}
|
||||
|
||||
private func logEvent(name: String) {
|
||||
guard isEnabled else { return }
|
||||
managers.forEach { manager in
|
||||
manager.logEvent(name: name)
|
||||
}
|
||||
@ -104,11 +115,11 @@ class AnalyticsManager {
|
||||
|
||||
// MARK: - ScreenTag
|
||||
|
||||
func logScreenEcranUn(name: String, path: String) {
|
||||
logScreen(name: name, path: path)
|
||||
func logScreenEcranUn() {
|
||||
logScreen(name: "Ecran un", path: "ecran_un/")
|
||||
}
|
||||
|
||||
func logEventEcranDeux(name: String) {
|
||||
logEvent(name: name)
|
||||
func logEventEcranDeux() {
|
||||
logEvent(name: "Ecran deux")
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,19 @@
|
||||
import Foundation
|
||||
|
||||
enum FirebaseGenerator {
|
||||
var header: String {
|
||||
case service
|
||||
|
||||
var content: String {
|
||||
[
|
||||
FirebaseGenerator.service.header,
|
||||
FirebaseGenerator.service.logScreen,
|
||||
FirebaseGenerator.service.logEvent,
|
||||
FirebaseGenerator.service.footer
|
||||
]
|
||||
.joined(separator: "\n")
|
||||
}
|
||||
|
||||
private var header: String {
|
||||
"""
|
||||
// MARK: - Firebase
|
||||
|
||||
@ -16,21 +28,31 @@ enum FirebaseGenerator {
|
||||
"""
|
||||
}
|
||||
|
||||
var footer: String {
|
||||
private var logScreen: String {
|
||||
"""
|
||||
func logScreen(name: String, path: String) {
|
||||
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: name])
|
||||
}
|
||||
|
||||
"""
|
||||
}
|
||||
|
||||
private var logEvent: String {
|
||||
"""
|
||||
func logEvent(name: String) {
|
||||
var parameters = [
|
||||
AnalyticsParameterValue: name
|
||||
]
|
||||
|
||||
Analytics.logEvent(AnalyticsEventSelectContent, parameters: parameters)
|
||||
}
|
||||
"""
|
||||
}
|
||||
|
||||
private var footer: String {
|
||||
"""
|
||||
}
|
||||
|
||||
"""
|
||||
}
|
||||
|
||||
var logScreen: String {
|
||||
"""
|
||||
"""
|
||||
}
|
||||
|
||||
var logEvent: String {
|
||||
"""
|
||||
"""
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -62,7 +62,6 @@ class TagsGenerator {
|
||||
\(Self.getImport())
|
||||
|
||||
\(Self.getAnalytics())
|
||||
|
||||
// MARK: - Manager
|
||||
|
||||
class AnalyticsManager {
|
||||
@ -72,12 +71,24 @@ class TagsGenerator {
|
||||
|
||||
var managers: [AnalyticsManagerProtocol] = []
|
||||
|
||||
\(Self.getEnabledContent())
|
||||
|
||||
\(Self.getAnalyticsProperties())
|
||||
|
||||
\(Self.getPrivateLogFunction())
|
||||
"""
|
||||
}
|
||||
|
||||
private static func getEnabledContent() -> String {
|
||||
"""
|
||||
private var isEnabled: Bool = true
|
||||
|
||||
// MARK: - Methods
|
||||
|
||||
func setAnalyticsEnabled(_ enable: Bool) { isEnabled = enable }
|
||||
"""
|
||||
}
|
||||
|
||||
private static func getImport() -> String {
|
||||
var result: [String] = []
|
||||
|
||||
@ -94,12 +105,14 @@ class TagsGenerator {
|
||||
private static func getPrivateLogFunction() -> String {
|
||||
"""
|
||||
private func logScreen(name: String, path: String) {
|
||||
guard isEnabled else { return }
|
||||
managers.forEach { manager in
|
||||
manager.logScreen(name: name, path: path)
|
||||
}
|
||||
}
|
||||
|
||||
private func logEvent(name: String) {
|
||||
guard isEnabled else { return }
|
||||
managers.forEach { manager in
|
||||
manager.logEvent(name: name)
|
||||
}
|
||||
@ -108,7 +121,7 @@ class TagsGenerator {
|
||||
}
|
||||
|
||||
private static func getAnalyticsProperties() -> String {
|
||||
var header = " // MARK: - Methods\n"
|
||||
var header = ""
|
||||
var content: [String] = []
|
||||
let footer = " }"
|
||||
|
||||
@ -144,20 +157,6 @@ class TagsGenerator {
|
||||
|
||||
"""
|
||||
|
||||
let firebase = """
|
||||
// MARK: - Firebase
|
||||
|
||||
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
|
||||
func logScreen(name: String, path: String) {
|
||||
|
||||
}
|
||||
|
||||
func logEvent(name: String) {
|
||||
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
var result: [String] = [proto]
|
||||
|
||||
if targets.contains(Tags.TargetType.matomo) {
|
||||
@ -165,7 +164,7 @@ class TagsGenerator {
|
||||
}
|
||||
|
||||
if targets.contains(Tags.TargetType.firebase) {
|
||||
result.append(firebase)
|
||||
result.append(FirebaseGenerator.service.content)
|
||||
}
|
||||
|
||||
return result.joined(separator: "\n")
|
||||
|
@ -96,9 +96,9 @@ class TagDefinition {
|
||||
|
||||
private func getlogFunction() -> String {
|
||||
if type == TagType.screen.value {
|
||||
"logScreen(name: name, path: path)"
|
||||
"logScreen(name: \"\(name)\", path: \"\(path)\")"
|
||||
} else {
|
||||
"logEvent(name: name)"
|
||||
"logEvent(name: \"\(name)\")"
|
||||
}
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ class TagDefinition {
|
||||
|
||||
func getProperty() -> String {
|
||||
"""
|
||||
func \(getFuncName())(name: String\(type == TagType.screen.value ? ", path: String" : "")) {
|
||||
func \(getFuncName())() {
|
||||
\(getlogFunction())
|
||||
}
|
||||
"""
|
||||
@ -114,7 +114,7 @@ class TagDefinition {
|
||||
|
||||
func getStaticProperty() -> String {
|
||||
"""
|
||||
static func \(getFuncName())(name: name\(type == TagType.screen.value ? ", path: String" : "")) {
|
||||
static func \(getFuncName())() {
|
||||
\(getlogFunction())
|
||||
}
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user