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