API Reference
API Reference

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");
          },
        ),
      ),
    );
  }
}