in ConfidenceDemoApp/ConfidenceDemoApp/ConfidenceDemoApp.swift [15:45]
init() {
@AppStorage("appVersion") var appVersion = 0
@AppStorage("loggedUser") var loggedUser: String?
appVersion += 1 // Simulate update of the app on every new run
var context = ["app_version": ConfidenceValue.init(integer: appVersion)]
if let user = loggedUser {
context["user_id"] = ConfidenceValue.init(string: user)
}
confidence = Confidence
.Builder(clientSecret: secret, loggerLevel: .TRACE)
.withContext(initialContext: context)
.build()
do {
// NOTE: here we are activating all the flag values from storage, regardless of how `context` looks now
try confidence.activate()
} catch {
flaggingState.state = .error(ExperimentationFlags.CustomError(message: error.localizedDescription))
}
// flaggingState.color is set here at startup and remains immutable until a user logs out
let eval = confidence.getEvaluation(
key: "swift-demoapp.color",
defaultValue: "Gray")
flaggingState.color = ContentView.getColor(
color: eval.value)
flaggingState.reason = eval.reason
self.appVersion = appVersion
self.loggedUser = loggedUser
updateConfidence()
}