AWS Amplify 백엔드가 있는 Flatter 애플리케이션: 섹션 3 - 분석

20664 단어 amplifys3awsflutter

AWS Amplify 백엔드가 있는 떨림 어플리케이션: 섹션 3 — 분석


어떻게 떨림 응용 프로그램에 이벤트 구동 분석을 생성합니까

확대 분석


The Analytics category enables you to collect analytics data for your App. The Analytics category comes with built-in support for Amazon Pinpoint


주의: 확대 진동은 개발자 미리 보기에 있으며, 이때 생산에 사용하는 것을 권장하지 않습니다.
어플리케이션의 확대 정밀도 대시보드

왜 분석이 필요한가



고품질의 분석은 존경할 만한 응용 프로그램의 관건적인 구성 부분이다.그들은 당신의 응용 프로그램에 얼마나 많은 사용자가 있는지에 대한 통찰을 제공했고, 더 중요한 것은 그들이 어떻게 응용 프로그램을 사용하는지이다.
많은 응용 프로그램들이 사용자를 잃었다. 왜냐하면 개발자들은 사용자가 원하는 것과 사용자가 실제로 원하는 것 사이의 불일치를 생각하기 때문이다.사용자와 응용 프로그램이 상호작용하는 실제 데이터를 가져옴으로써 개발자는'맹목적인 개발'을 멈출 수 있다.

설교는 그만하고 시작합시다


선결 조건


이 강좌는 이 강좌 시리즈의 첫 번째 부분에서 만든 응용 프로그램만 필요합니다.
섹션 1을 읽지 않고 Amplify Flatter에 익숙해지면 새로운 Flatter 응용 프로그램과 connect it to a cloud instance of Amplify.

기본 확대 항목 만들기


섹션 1에서 만든 응용 프로그램을 사용하는 경우 이 단계를 건너뛸 수 있습니다.
그렇지 않으면 새 떨림 항목을 만들고 프로젝트 디렉터리에서 실행합니다.
amplify init

백엔드 설정


완전히 amplify cli를 통해 백엔드를 설정할 수 있습니다.
amplify add auth
amplify add analytics
콘솔은 다음과 같습니다.
이전과 같이 실행 * 확대 추가 푸시 * 로컬 변경 사항을 클라우드로 푸시합니다.분석을 활성화하면 인증이 자동으로 활성화됩니다(추가되지 않은 경우).

패키지 통합


확대 패키지를pubspec에 추가합니다.아마르.
dependencies:
  amplify_core: '<1.0.0'
  amplify_analytics_pinpoint: '<1.0.0'
  amplify_auth_cognito: '<1.0.0'
다음은 필요한 가방을 메인 파일에 포함합니다.dart 파일:
import 'package:amplify_analytics_pinpoint/amplify_analytics_pinpoint.dart';
import 'package:amplify_auth_cognito/amplify_auth_cognito.dart';
import 'package:amplify_core/amplify_core.dart';

확대 분석 초기화


나는 official documentation 와 손잡고 이 프로그램을 만들고 있다.그러나 문서는 현재 사실상 유행이 지났기 때문에 제안된 코드 부분은 코드 라이브러리에 포함되기 전에 수정해야 한다.다시 말하면 복사 붙여넣기가 항상 당신의 친구는 아니다.
순서에 따라 점진적인 강좌의 디테일에 싫증을 내고 싶지 않다면, 완성된 주 강좌.darthere를 찾을 수 있습니다.나와 어깨를 나란히 하고 싶은 사람들에게: 물속으로 잠입하자.
우선 나체 주간을 세우자.dart:
import 'package:amplify_analytics_pinpoint/amplify_analytics_pinpoint.dart';
import 'package:amplify_auth_cognito/amplify_auth_cognito.dart';
import 'package:amplify_core/amplify_core.dart';

import 'package:flutter/material.dart';

import 'amplifyconfiguration.dart';

void main() {
  runApp(MaterialApp(
    home: MyApp(),
  ));
}

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

class _MyAppState extends State<MyApp> {

  bool _amplifyConfigured = false;

  // Instantiate Amplify
  Amplify amplifyInstance = Amplify();

  @override
  void initState() {
    super.initState();

    // amplify is configured on startup
    _configureAmplify();
  }

  @override
  void dispose() {
    // Clean up the controller when the widget is removed from the

    super.dispose();
  }

  void _configureAmplify() async {
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
초기화 방법 (응용 프로그램이 시작될 때 한 번 호출) 은 다음과 같습니다.
  void _configureAmplify() async {
    if (!mounted) return;

    // add all of the plugins we are currently using
    // in our case... just one - Auth
    AmplifyAuthCognito authPlugin = AmplifyAuthCognito();
    AmplifyAnalyticsPinpoint analyticsPlugin = AmplifyAnalyticsPinpoint();

    amplifyInstance.addPlugin(
        authPlugins: [authPlugin], analyticsPlugins: [analyticsPlugin]);

    await amplifyInstance.configure(amplifyconfig);
    try {
      setState(() {
        _amplifyConfigured = true;
      });
    } catch (e) {
      print(e);
    }
  }
이 시리즈의 두 번째 부분을 읽으면, 유일한 변화는 새로운 analytics Plugin을 Amplific Instance에 추가하는 것입니다.이 절차를 마치면 프로그램이 이벤트를 기록할 수 있습니다.이렇게 하기 전에 분석 콘솔을 시작합니다.
amplify console analytics
이것은 브라우저에서 분석 컨트롤러를 시작할 것입니다. 이것은 응용 프로그램의 활동을 감시하는 아주 좋은 플랫폼입니다.
우리는 아직 어떤 사건도 기록하지 않았기 때문에 비어 있다.

우리의 첫 번째 사건을 기록하다


Amazon Pinpoint를 위한 여러 가지 방법이 있습니다.기본적으로 30초마다 생성된 모든 이벤트를 일괄 처리하고 네트워크로 새로 고칩니다.응용 프로그램이 업데이트를 보내는 빈도를 변경하려면 amplifyconfiguration.json 의 *autoFlushEventsInterval* 필드를 수정할 수 있습니다.
우선, 이 단추를 눌렀을 때마다 이벤트를 기록하는 간단한 페이지를 만들 것입니다.다음 코드 세그먼트를 주 코드에 추가합니다.dart는 이 간단한 응용 프로그램을 실현합니다.
  void _createEvent() {
    // simply logs a test event
    AnalyticsEvent event = AnalyticsEvent("test_event");

    event.properties.addBoolProperty("boolKey", true);
    event.properties.addDoubleProperty("doubleKey", 10.0);
    event.properties.addIntProperty("intKey", 10);
    event.properties.addStringProperty("stringKey", "stringValue");

    Amplify.Analytics.recordEvent(event: event);
    Amplify.Analytics.flushEvents();

    print("event logged");
  }

  @override
  Widget build(BuildContext context) {
    return SafeArea(
        child: Scaffold(
          body: Center(
            child: RaisedButton(
              onPressed: _createEvent,
              child: Text("Create Event"),
            ),
          ),
        ));
  }
응용 프로그램을 시작합니다.경험이 없는 사용자가 분석 이벤트를 보낼 수 있도록 하기 때문에, * 이벤트 만들기 * 단추를 간단하게 누르고 이벤트를 Amazon Pinpoint로 보낼 수 있어야 합니다.
콘솔 메시지를 주의하십시오. 이 메시지는 성공적인 이벤트 전송을 나타냅니다.
분석 컨트롤러(amplify analytics console)로 이동하여 이벤트 대시보드로 이동합니다.

그곳에서, 대시보드에 새로운 이벤트가 등록되어 있는 것을 보아야 합니다. (업데이트하는 데 몇 분이 걸릴 수도 있습니다.)
내 상황에서... 버튼을 자주 눌러요.
필터 드롭다운 목록을 사용하여 이벤트를 필터링할 수 있습니다.이벤트 유형과 이벤트 속성과 값에 따라 이벤트를 필터할 수 있습니다.내 경험에 따르면 대시보드는 이벤트 유형과 속성을 업데이트하는 데 시간이 걸릴 수 있으므로 기다려 주십시오.
이벤트 속성 기반 필터링
너도 응용 프로그램이 실행하는 기계의 특징에 따라 필터를 할 수 있다.이것은 사용자가 반드시 테스트 계획을 세워야 하는 휴대전화 유형을 확정하는 데 특히 유용하다.
끝 속성

사용자 정의 끝 속성 추가


응용 프로그램의 성격에 따라 사용자에 대한 더 많은 정보가 필요하면 사용자 정의 단점 속성을 추가하는 것이 유용할 수 있습니다.예를 들어, 사용자의 다른 구독 계획을 구분하기를 원할 수도 있습니다.이를 위해 새 AnalyticsUserProfile을 생성하여 속성을 추가할 수 있습니다.

  void _identifyUser() async {
    AnalyticsUserProfile analyticsUserProfile = new AnalyticsUserProfile();
    analyticsUserProfile.name = _userId + "_name";
    analyticsUserProfile.plan = _plan + "_plan";

    Amplify.Analytics.identifyUser(
        userId: _userId, userProfile: analyticsUserProfile);
  }
이것은 끝점의 분석 프로필에 이름과 구독 계획을 추가합니다.
*\u userId* 및 *\u plan* 필드를 제어하는 UI도 추가되었습니다.전체 코드를 보려면 GitHub repo 로 이동하십시오.
이름과 구독 계획을 추가하고 단점 속성으로 추가
이제 이 장치에서 이벤트를 만들 때 {"name": "jackSparrow", "plan": "Premium"}의 단점 속성이 수반됩니다.
컨트롤러로 돌아가면 새로운 사용자 정의 속성에 따라 필터를 할 수 있습니다.
세관.계획 및 사용자 정의.이름은 우리의 새로운 사용자 정의 속성이다

위치 데이터


사용자의 위치 데이터를 엔드포인트 속성으로 사용하려면 다음과 같이 쉽게 추가할 수 있습니다.
  void _identifyUser() async {
    // adds location data to our analytics profile

    AnalyticsUserProfileLocation analyticsUserLocation =
        new AnalyticsUserProfileLocation();
    analyticsUserLocation.latitude = 5;
    analyticsUserLocation.longitude = 5;
    analyticsUserLocation.postalCode = "90210";
    analyticsUserLocation.city = "BeverlyHills";
    analyticsUserLocation.region = "California";
    analyticsUserLocation.country = "USA";

    analyticsUserProfile.location = analyticsUserLocation;

    Amplify.Analytics.identifyUser(
        userId: _userId, userProfile: analyticsUserProfile);
  }

완료 중


이렇게 멀리 간 거 축하해!이 강좌에서 완전한 코드만 얻으려면 GitHub repo 를 방문하십시오.확대 초기화를 실행해야 합니다. (실제로 확대 삭제를 실행해야 할 수도 있습니다.) 확대 폴더를 삭제해야 합니다.

그러면... 다음은 뭐죠?


이 강좌에서 우리는 진동 응용 프로그램에서 Amazon Pinpoint를 사용하여 실현할 수 있는 기능을 간단하게 소개했다.미래의 강좌에서 우리는 화폐화를 추적하고 인공지능을 이용하여 데이터 구동을 발표하는 건의와 사용자가 우리의 응용 프로그램과 어떻게 상호작용하는지에 대해 더욱 깊이 있게 이해할 수 있는 전 계열의 기능을 탐색할 것이다.
그 전에 이 시리즈의 다른 강좌를 보시고 Amplify for Flatter의 기본 지식을 이해하세요.다음: storage.

이 시리즈


섹션 1: Basic Setup
섹션 2: Authentication
섹션 3: Analytics
섹션 4: Storage

좋은 웹페이지 즐겨찾기