survicate_flutter_sdk 1.0.1 copy "survicate_flutter_sdk: ^1.0.1" to clipboard
survicate_flutter_sdk: ^1.0.1 copied to clipboard

outdated

Survicate mobile SDK for Flutter allows you to survey specific groups of your mobile app users to understand their needs, expectations, and objections.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:survicate_flutter_sdk/models/survicate_answer_model.dart';
import 'package:survicate_flutter_sdk/models/user_traits_model.dart';
import 'package:survicate_flutter_sdk/survicate_flutter_sdk.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  SurvicateFlutterSdk survicateFlutterSdk;
  String surveyIdDisplayed;
  String surveyIdAnswered;
  num questionIdAnswered;
  SurvicateAnswerModel answer;
  String surveyIdClosed;
  String surveyIdCompleted;

  @override
  void initState() {
    super.initState();
    survicateFlutterSdk ??= SurvicateFlutterSdk();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: const Text('Survicate Flutter SDK example app'),
          ),
          body: SingleChildScrollView(
            padding: EdgeInsets.all(16.0),
            child: Column(
              mainAxisSize: MainAxisSize.max,
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                RaisedButton(
                  onPressed: () {
                    survicateFlutterSdk.invokeEvent('SURVEY');
                  },
                  child: Text('Invoke event SURVEY'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                RaisedButton(
                  onPressed: () {
                    survicateFlutterSdk.enterScreen('SCREEN');
                  },
                  child: Text('Enter screen SCREEN'),
                ),
                RaisedButton(
                  onPressed: () {
                    survicateFlutterSdk.leaveScreen('SCREEN');
                  },
                  child: Text('Leave screen SCREEN'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                RaisedButton(
                  onPressed: () {
                    survicateFlutterSdk.setUserTraits(
                        UserTraitsModel(userId: '1', firstName: 'USER'));
                  },
                  child: Text('Set userId = 1 and first name = USER'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                RaisedButton(
                  onPressed: () {
                    setState(() {
                      surveyIdDisplayed = null;
                      surveyIdAnswered = null;
                      questionIdAnswered = null;
                      answer = null;
                      surveyIdClosed = null;
                      surveyIdCompleted = null;
                    });
                    survicateFlutterSdk.reset();
                  },
                  child: Text('Reset'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                RaisedButton(
                  onPressed: () {
                    setState(() {
                      surveyIdDisplayed = null;
                      surveyIdAnswered = null;
                      questionIdAnswered = null;
                      answer = null;
                      surveyIdClosed = null;
                      surveyIdCompleted = null;
                    });
                    survicateFlutterSdk.registerSurveyListeners(
                        callbackSurveyDisplayedListener: (surveyId) {
                      setState(() {
                        surveyIdDisplayed = surveyId;
                      });
                    }, callbackQuestionAnsweredListener:
                            (surveyId, questionId, answer) {
                      setState(() {
                        surveyIdAnswered = surveyId;
                        questionIdAnswered = questionId;
                        this.answer = answer;
                      });
                    }, callbackSurveyClosedListener: (surveyId) {
                      setState(() {
                        surveyIdClosed = surveyId;
                      });
                    }, callbackSurveyCompletedListener: (surveyId) {
                      setState(() {
                        surveyIdCompleted = surveyId;
                      });
                    });
                  },
                  child: Text('Register survey activity listeners'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                RaisedButton(
                  onPressed: () {
                    setState(() {
                      surveyIdDisplayed = null;
                      surveyIdAnswered = null;
                      questionIdAnswered = null;
                      answer = null;
                      surveyIdClosed = null;
                      surveyIdCompleted = null;
                    });
                    survicateFlutterSdk.unregisterSurveyListeners();
                  },
                  child: Text('Unregister survey activity listeners'),
                ),
                SizedBox(
                  height: 5.0,
                ),
                surveyIdDisplayed != null
                    ? Text('Last survey displayed id = $surveyIdDisplayed')
                    : SizedBox(),
                surveyIdDisplayed != null
                    ? SizedBox(
                        height: 5.0,
                      )
                    : SizedBox(),
                questionIdAnswered != null
                    ? Text(
                        'Last question answered id = $questionIdAnswered from survey id = $surveyIdAnswered, answer type ${answer?.type}')
                    : SizedBox(),
                questionIdAnswered != null
                    ? SizedBox(
                        height: 5.0,
                      )
                    : SizedBox(),
                surveyIdClosed != null
                    ? Text('Last survey closed id = $surveyIdClosed')
                    : SizedBox(),
                surveyIdClosed != null
                    ? SizedBox(
                        height: 5.0,
                      )
                    : SizedBox(),
                surveyIdCompleted != null
                    ? Text('Last survey completed id = $surveyIdCompleted')
                    : SizedBox(),
                surveyIdCompleted != null
                    ? SizedBox(
                        height: 5.0,
                      )
                    : SizedBox(),
              ],
            ),
          )),
    );
  }
}
3
likes
40
points
6
downloads

Publisher

verified publisheroakam.com

Weekly Downloads

Survicate mobile SDK for Flutter allows you to survey specific groups of your mobile app users to understand their needs, expectations, and objections.

Repository (GitHub)
View/report issues
Contributing

License

LGPL-3.0 (license)

Dependencies

flutter

More

Packages that depend on survicate_flutter_sdk

Packages that implement survicate_flutter_sdk