staffstart-anroid-sdk

STAFF START の Android SDK

構成

staffstart-core, staffstart-app,staffstart-trackingの3つ それぞれの役割は下記

staffstart-core staffstart-app staffstart-tracking
Entityの保持、公開, App、Core共通で利用されるような共通処理などを配置 ViewやAPIエンドポイントをcallしてレスポンスを受け取る 計測タグの送信
dependencies staffstart-core staffstart-core
architecture TBD TBD

概要

このSDKは、STAFF STARTのデータをAndroidアプリに簡単かつ効果的に統合し、活用できるよう設計されています。アプリ内でのデータ活用を通じて、よりスムーズで高度なユーザー体験を提供します。

特徴

このSDKは、以下の3つのフレームワークで構成されており、それぞれ異なる役割を担っています:

StaffStart_Core

アプリの初期化処理を担当します。SDKを利用する際の基本的な設定や準備を行います。

StaffStart_App

STAFF STARTのAPIと連携し、データの取得や操作を行います。データ活用の中心的な役割を果たします。

StaffStart_Tracking

ユーザーアクションやイベントの計測を行い、データ分析やパフォーマンス最適化をサポートします。

これらのフレームワークを組み合わせることで、柔軟かつ効率的にSTAFF STARTのデータを活用することができます。

必須要件

対応SDK: minSDK28

クイックスタート

開発環境のセットアップ

下記コマンドを叩いて、SDKをビルドしてAARファイルを生成します。 AARファイルは、Example/libsにコピーされます。

sh build_and_copy_aars.sh

Exampleアプリの実行

build variantをreleaseに変更することで、リリース用のAARをExampleから確認することができます。

StaffStart SDKの設定と初期化

StaffStart SDKをアプリに統合する際の設定と初期化方法について説明します。本SDKのサンプルアプリのMainActivityを例に具体的な手順を示します。

依存関係の追加

build.gradleファイルに以下の依存関係を追加します。

dependencies {
implementation "com.example.staffstart:staffstart-sdk:1.0.0"
}

Kotlin DSLの場合は以下のように記述します。

dependencies {
implementation("com.example.staffstart:staffstart-sdk:1.0.0")
}
StaffStart SDKの設定と初期化

SDKを利用するには、初期設定が必要です。StaffStartConfigurationを使用して設定情報を提供します。

private fun initializeStaffStartSDK() {
val staffStartConfiguration = StaffStartConfiguration(
merchantId = "YOUR_MERCHANT_ID", // マーチャントIDを設定してください
api = "https://test.staff-start.com", // APIのベースURL
trackingApi = "https://test-analytics.staff-start.com" // トラッキングAPIのURL
)

lifecycleScope.launch {
// Core機能(staffstart-core)の初期化
StaffStart.Core.initialize(staffStartConfiguration)
// 計測機能(staffstart-tracking)の初期化
StaffStart.tracking.initialize(applicationContext)
}
}
リソースの解放

アプリの終了時にリソースを解放します。onDestroyでStaffStart SDKのリソースを解放してください

override fun onDestroy() {
super.onDestroy()
StaffStart.Core.close()
}

詳細については、APIリファレンス をご参照ください。初期設定に必要な詳細な手順やコードサンプルが記載されています。

UI表示方法

UI設定方法

StaffStartUIの初期設定を行います。StaffStartUIConfigurationを使用して設定情報を提供します。 StaffStartUI.Configureを使用して、コールバックを設定します。

StaffStartUI.Configure(
StaffStartUIConfiguration(
onTapProductItem = { productCode ->
// 商品タップ時の処理
}
)
)

コーディネート一覧レイアウトを表示するには、StaffStartSnapPlayListScreenを使用します。

StaffStartSnapPlayListScreen(
snapPlayFilterParams = SnapPlayFilterParams(),
onTapSnapPlay = { snapPlayId ->
// SnapPlayタップ時の処理
}
)

コーディネート詳細レイアウトを表示するには、StaffStartSnapPlayDetailScreenを使用します。

StaffStartSnapPlayDetailScreen(
snapPlayId = "1",
onTapStaff = { staffId ->
// スタッフタップ時の処理
// staffId: タップされたスタッフのID
},
onTapSnapPlayFilter = { snapPlayFilterParams ->
// SnapPlay絞り込みボタンタップ時の処理
},
onTapSnapPlay = { snapPlayId ->
// SnapPlayタップ時の処理
},
onTapProductItem = { productId ->
// 商品タップ時の処理
},
onTapSnapPlayNotFoundBack = {
// SnapPlayが見つからない場合の戻るボタンタップ時の処理
}
)

スタッフ一覧レイアウトを表示するには、StaffStartStaffListScreenを使用します。

StaffStartStaffListScreen(
onTapStaff = { staffId ->
// スタッフタップ時の処理
}
)

スタッフ詳細レイアウトを表示するには、StaffStartStaffDetailScreenを使用します。

StaffStartStaffDetailScreen(
staffId = "1",
onTapSnapPlay = { snapPlayId ->
// スナップ再生タップ時の処理
},
onTapSnapPlayFilter = { snapPlayFilterParams ->
// スナップ再生フィルタータップ時の処理
}
)

任意のページのパーツとしてコーディネートの一覧を表示する際にはStaffStartBaseProductSnapPlaysBlockを使用します。

StaffStartBaseProductSnapPlaysBlock(
baseProductCode = "baseProductCode",
onTapSnapPlayDetail = { snapPlayId ->
// SnapPlayタップ時の処理
},
onTapReadMore = { baseProductCode ->
// もっと見るボタンタップ時の処理
}
)

詳細については、APIリファレンス をご参照ください。初期設定に必要な詳細な手順やコードサンプルが記載されています。

計測タグ設定方法

詳細について、APIリファレンスをご参照ください。

SDK開発者向け

ktlintの適用

gitのコミット時にktlintを適用するために、pre-commitを設定しています。

設定するには以下のコマンドを実行してください。

chmod +x .githooks/pre-commit
git config core.hooksPath .githooks

Exampleアプリの開発

開発時にSDKのDEBUGを行いたい場合、toggle_example.shを実行してSDKのサブプロジェクトにしてください

ドキュメント更新

ドキュメントは、Dokka で生成されています。ドキュメントを更新するには、以下のコマンドを実行してください。

./gradlew dokkaHtmlMultiModule

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

All modules:

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard