kameleoon_client_flutter 0.0.3 kameleoon_client_flutter: ^0.0.3 copied to clipboard
Our SDK gives you the possibility of running experiments and activating feature flags on all platforms targeted by the Flutter application framework.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:kameleoon_client_flutter/kameleoon_client.dart';
import 'package:kameleoon_client_flutter/kameleoon_client_factory.dart';
import 'package:kameleoon_client_flutter/kameleoon_exception.dart' as KameleoonException;
import 'package:kameleoon_client_flutter_example/Pages/Main/main_page.dart';
import 'package:kameleoon_client_flutter_example/constants.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Color _color = Color.fromRGBO(100, 100, 255, 1);
@override
void initState() {
super.initState();
initKameleoon();
}
Future<void> initKameleoon() async {
KameleoonClient? client = KameleoonClientFactory.create("SITE_CODE");
client!.runWhenReady(() async {
String? visitorCode = await client.obtainVisitorCode();
try {
bool? ff = await client.activateFeature(visitorCode!, "color-feature-flag");
if (ff == true) {
String? color = await client.obtainFeatureVariable("color-feature-flag", "color") as String?;
color = "FF" + color!.toUpperCase().replaceAll("#", "");
mainColor = Color(int.parse(color, radix: 16));
setState(() {
_color = Color(int.parse(color!, radix: 16));
});
}
} on KameleoonException.FeatureConfigurationNotFound {
} on KameleoonException.NotTargeted {
} on PlatformException {
}
}, () {
print("TIMEOUT");
}, 1000);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Kameleoon Plugin Demo",
theme: ThemeData(
primaryColor: _color,
scaffoldBackgroundColor: bgColor
),
home: MainPage(),
debugShowCheckedModeBanner: false,
);
}
}