Below is an example of a simple Flutter app that integrates Moca:
import 'package:flutter/material.dart';
import 'package:moca_flutter/moca_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Initialize Moca SDK.
final initResult = await Moca.initializeSDK("your_app_key", "your_app_secret");
if (!initResult.isSuccess) {
print("Error initializing Moca: " + initResult.error.toString());
}
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Moca Integration Demo',
navigatorObservers: [Moca.getNavigatorObserver()],
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
// Manually track the screen on first load if desired.
Moca.trackScreen("HomeScreen");
return Scaffold(
appBar: AppBar(title: Text("Moca Demo")),
body: Center(
child: ElevatedButton(
child: Text("Track Custom Event"),
onPressed: () async {
// Method: track(String verb, {String? category, dynamic value})
// Description: Tracks a custom event.
// Parameters:
// verb: String, required – The event description.
// category: String, optional – Event category.
// value: dynamic, optional – Additional event value.
await Moca.track("button_tap", category: "interaction", value: "HomeScreenButton");
},
),
),
);
}
}