This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class ViewController: UIViewController { | |
let delegate = UIApplication.shared.delegate as! AppDelegate | |
@IBAction func showMessage(sender: UIButton) { | |
var enabled = false | |
let userId = "user123" | |
let attributes: [String: Any] = [ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let userId = "user123" | |
let attributes: [String: Any] = [ | |
"customerId": 123, // Attributes used for targeted audience-based rollout | |
"isVip": true, | |
] | |
enabled = delegate.optimizely.isFeatureEnabled(featureKey: "hello_world", userId: userId, attributes: attributes) | |
print("Feature is enabled? - \(enabled) for userId: \(userId)") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@IBAction func showMessage(sender: UIButton) { | |
var enabled = false | |
let alertController = UIAlertController(title: "Alert", message: enabled ? "Hello World!" : "Nothing to see here...", preferredStyle: UIAlertController.Style.alert) | |
if enabled { | |
alertController.addAction(UIAlertAction(title: "Hello!", style: UIAlertAction.Style.default, handler: nil)) | |
} else { | |
alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default, handler: nil)) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@IBAction func showMessage(sender: UIButton) { | |
let alertController = UIAlertController(title: "Alert", message: enabled ? "Hello World!" : "Nothing to see here...", preferredStyle: UIAlertController.Style.alert) | |
var enabled = false | |
if enabled { | |
alertController.addAction(UIAlertAction(title: "Hello!", style: UIAlertAction.Style.default, handler: nil)) | |
} else { | |
alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default, handler: nil)) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func addListeners() { | |
let notificationCenter = optimizely.notificationCenter | |
//notification fired when a value is returned by isFeatureEnabled function call | |
_ = notificationCenter?.addDecisionNotificationListener(decisionListener: { (type, userId, attributes, decisionInfo) in | |
print("Received decision notification: \(type) \(userId) \(String(describing: attributes)) \(decisionInfo)") | |
}) | |
//notification fired when SDK polls for a new datafile and the datafile has changed | |
_ = notificationCenter?.addDatafileChangeNotificationListener(datafileListener: { (_) in |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class ViewController: UIViewController { | |
let delegate = UIApplication.shared.delegate as! AppDelegate | |
@IBAction func showMessage(sender: UIButton) { | |
let userId = "user123" | |
let attributes: [String: Any] = [ | |
"customerId": 123, // Attributes used for targeted audience-based rollout |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let userId = "user123" | |
let attributes: [String: Any] = [ | |
"customerId": 123, // Attributes used for targeted audience-based rollout | |
"isVip": true, | |
] | |
let enabled = delegate.optimizely.isFeatureEnabled(featureKey: "hello_world", userId: userId, attributes: attributes) | |
print("Feature is enabled? - \(enabled) for userId: \(userId)") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let delegate = UIApplication.shared.delegate as! AppDelegate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@IBAction func showMessage(sender: UIButton) { | |
let alertController = UIAlertController(title: "Alert", message: enabled ? "Hello World!" : "Nothing to see here...", preferredStyle: UIAlertController.Style.alert) | |
if enabled { | |
alertController.addAction(UIAlertAction(title: "Hello!", style: UIAlertAction.Style.default, handler: nil)) | |
} else { | |
alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default, handler: nil)) | |
} | |
present(alertController, animated: true, completion: nil) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let customLogger = CustomLogger() | |
let logLevel = OptimizelyLogLevel.debug | |
let customDownloadIntervalInSecs = 30 | |
let optimizely = OptimizelyClient(sdkKey: sdkKey, | |
logger: customLogger, | |
periodicDownloadInterval: customDownloadIntervalInSecs, | |
defaultLogLevel: logLevel) |
NewerOlder