導入: Flutter¶
Flutter Package のインストール¶
プロジェクト配下にある pubspec.yaml
を開き、dependencies
欄に repro_flutter
を追記します。
dependencies:
flutter:
sdk: flutter
...
repro_flutter: ^3.16.1
注釈
- Flutter Package バージョン 3.0.0 以降は Sound null safety 機能 に対応したものとなります。 したがって、Sound null safety 機能を利用していないアプリケーションにパッケージを導入する場合、バージョン 3.0.0 未満を使用してください。
- Flutter Package バージョン 3.14.0 以降は Android v1 embedding の処理を削除したものとなります。 したがって、Android v1 embedding を利用しているアプリケーションにパッケージを導入する場合、バージョン 3.14.0 未満を使用してください。
以下のコマンドを実行して、Repro の Flutter Plugin をインストールします。
$ flutter packages get
Android プロジェクトへの導入¶
アプリケーションの app/build.gradle
を開き、以下の設定を追加してください。
dependencies {
implementation 'io.repro:repro-android-sdk:5.20.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Android Gradle Plugin 8.0 以上を利用する場合の対応¶
ご利用の Android Gradle Plugin のバージョンにより、アプリのビルド時に以下のようなエラーが発生する場合があります。
A problem occurred configuring project ':repro_flutter'.
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
> Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.
このようなエラーが発生した場合、Flutter の Android プロジェクト直下の build.gradle
ファイル内 allprojects
ブロックに以下のコードを追記してください。
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
project.android {
if (namespace == null) {
namespace project.group
}
}
}
}
}
セットアップ¶
iOS¶
AppDelegate
で Repro
をインポートしたうえで、 application:didFinishLaunchingWithOptions:
で Repro#setup
を実行して セッション を開始します。
YOUR_APP_TOKEN
には管理画面の 設定 > プロジェクト設定 > 認証情報 に記載されている SDK トークン を設定してください。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self];
// Override point for customization after application launch.
[Repro setup:@"YOUR_APP_TOKEN"];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
Android¶
android.app.Application
を継承した独自の Application
クラスを作成します。
すでにクラスを作成している場合は、独自の Application
クラスを作成する必要はありません。
package your.package.name;
import android.app.Application;
import io.repro.android.Repro;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
}
}
また AndroidManifest.xml
の記述を以下のように修正します。
<application
- android:name="${applicationName}"
+ android:name="your.package.name.MyApplication"
android:label="repro_integration_test"
android:icon="@mipmap/ic_launcher">
独自 Application
クラスの onCreate
メソッドで Repro.setup
を実行して、新しい セッション を開始してください。
public void onCreate() {
super.onCreate();
Repro.setup(this, "YOUR_APP_TOKEN");
}
YOUR_APP_TOKEN
には管理画面の 設定 > プロジェクト設定 > 認証情報 に記載されている SDK トークン を設定してください。
SDKが収集した情報は定期的にサーバーにアップロードされます。
イベントをトラックする¶
意味のある分析や、マーケティング施策を実施するためには、適切なユーザーグループを絞り込むことが重要です。イベントをトラックしてユーザーの行動を記録することにより、管理画面上で目的に応じた適切なユーザーグループを選択することができるようになります。
イベントを用いたユーザーグループ指定の例:
どういうイベントをとるべきかわからない場合は、まず各画面の表示時にイベントをとってみることをおすすめします。
例:
@implementation MainViewController
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[Repro track:@"MainViewController" properties:nil];
...
}
class MainViewController: UIViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Repro.track(event: "MainViewController", properties: [:])
...
}
public class MainActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
Repro.track("MainActivity");
...
}
}
#include "ReproCpp.h"
...
ReproCpp::track("Initialized");
Repro.Track ("Initialized");
// Will be written later
class MainScreen extends React.Component {
componentDidMount() {
Repro.track("MainScreen", {});
}
...
}
import Repro from 'react-native-repro';
...
Repro.track("MainScreen", {});
import 'package:repro_flutter/repro.dart';
...
await Repro.track("Initialized");
ユーザーIDをセットする¶
Repro では分析結果はユーザー単位で集計しています。ユーザーIDをセットすることにより、下記のメリットがあります:
- 複数のデバイスを使っているユーザーを同一視できる
- キャンペーンの配信対象の抽出がより精緻になる
詳しくは こちら をご覧ください。
Next...¶
その他の機能についての詳細は、以下をご覧ください。