Рубрики
Без рубрики

Собирайте аналитические данные для своего приложения с помощью AWS Amplify

Было бы неплохо получить некоторое представление о поведении пользователей вашего приложения. Это позволит вам реализовать… С тегами android, java, aws, codenewbie.

Было бы неплохо получить некоторое представление о поведении пользователей вашего приложения. Это позволит вам реализовать функции, управляемые данными, для стимулирования принятия, вовлечения и удержания клиентов.

Здесь может помочь AWS Amplify, в этом посте я покажу вам, как вы можете интегрировать свое приложение для Android с AWS Amplify для достижения этой цели. Давайте начнем.

  • Создайте новый проект Android Studio, используя пустой шаблон действия
  • Мы собираемся использовать Мое приложение аутентификации для поля имени
  • Обновить build.gradle (Проект: Мое приложение аутентификации) как показано ниже
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
        // ******* Add this line *******
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.1"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

        // ******* Add this line *******
        mavenCentral()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
  • Обновите build.gradle (Модуль:приложение), как показано ниже
apply plugin: 'com.android.application'

android {
    compileSdkVersion 29

    defaultConfig {
        applicationId "com.offlineprogrammer.myauthapplication"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    // ******* Add these lines *******
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    // ******* Add these lines *******
    implementation 'com.amplifyframework:core:1.1.1'
    implementation 'com.amplifyframework:aws-auth-cognito:1.1.1'

}
  • Обязательно запустите Gradle синхронизацию
  • Выполните приведенную ниже команду на терминале Android Studio
amplify init
  • Вам будет предложено ввести несколько деталей, как показано ниже
? Enter a name for the project MyAnalyticsApplicati
? Enter a name for the environment amplify
? Choose your default editor: None
? Choose the type of app that you're building android
Please tell us about your project
? Where is your Res directory:  app/src/main/res
Using default provider  awscloudformation

For more information on AWS Profiles, see:


? Do you want to use an AWS profile? Yes
? Please choose the profile you want to use default
Adding backend environment amplify to AWS Amplify Console app: d36t9ma8gt1tb8

  • После завершения вы получите подтверждение ниже
Your project has been successfully initialized and connected to the cloud!
  • Создайте новый класс и назовите его Мое аналитическое приложение
  • Мы будем использовать этот класс для инициализации Amplify, как показано ниже – обратите внимание, как класс расширяется из приложения
public class MyAnalyticsApplication extends Application {
    private static final String TAG = "MyAnalyticsApplication";

    @Override
    public void onCreate() {
        super.onCreate();
        try {
            Amplify.addPlugin(new AWSCognitoAuthPlugin());
            Amplify.addPlugin(new AWSPinpointAnalyticsPlugin(this));
            Amplify.configure(getApplicationContext());
            Log.i(TAG, "Initialized Amplify");
        } catch (AmplifyException error) {
            Log.e(TAG, "Could not initialize Amplify", error);
        }
    }
}
  • Обновление AndroidManifest.xml чтобы добавить android: имя атрибута со значением .Мое аналитическое приложение как показано ниже



    
  • Выполните приведенную ниже команду, чтобы настроить категорию аналитики
amplify add analytics
  • При появлении запроса укажите данные ниже
? Select an Analytics provider Amazon Pinpoint
? Provide your pinpoint resource name: myanalyticsapplicati
Adding analytics would add the Auth category to the project if not already added.
? Apps need authorization to send analytics events. Do you want to allow guests and unauthenticated users to send analytics events? (we recommend you allow this when getting started) Yes
Successfully added auth resource locally.
Successfully added resource myanalyticsapplicati locally
  • Опубликуйте эти изменения, выполнив команду ниже
amplify push
  • После завершения он отобразит ваш точный Url-адрес, как показано ниже
✔ All resources are updated in the cloud

Pinpoint URL to track events .....
  • Консоль Pinpoint будет выглядеть следующим образом
  • Обновите activity_main.xml чтобы добавить кнопку и текстовое представление, как показано ниже



    

    



  • Обновите MainActivity.java чтобы зафиксировать событие щелчка, пользователь нажимает на кнопку. ниже приведен окончательный код MainActivity.java
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    Button clickMeButton;
    TextView helloTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        clickMeButton = findViewById(R.id.clickMeButton);
        helloTextView = findViewById(R.id.helloTextView);

        clickMeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                AnalyticsEvent event = AnalyticsEvent.builder()
                        .name("clickMeButton")
                        .addProperty("timeClicked", Calendar.getInstance().getTime().toString())
                        .build();
                Amplify.Analytics.recordEvent(event);
                helloTextView.setText("Button Clicked");
            }
        });

    }
}
  • Запустите приложение и нажмите кнопку несколько раз
  • Выполните приведенную ниже команду, чтобы открыть консоль Pinpoint
amplify console analytics
  • На консоли перейдите к событиям, и вы найдете событие “Нажмите кнопку “Я”, как показано ниже

Проверьте полный код на github и следуйте за мной дальше Twitter для получения дополнительных советов о #кодировании, #обучении, #технологиях, #Java, #JavaScript, #Аутизме, #воспитании детей… и т.д.

Проверьте мои приложения в Google Play

Оригинал: “https://dev.to/offlineprogrammer/collect-analytics-data-for-your-app-using-aws-amplify-4ifp”