アプリケーションでのKSP出力の使用:第4部
3456 ワード
生成されたクラスがあるので、コードで使用しようとしましょう.
まず、イベントインターフェイスとそれがどのようなメソッドを含んでいるかを見てみましょう.
また、イベントインターフェイスクラスを使用して、各解析用SDKにイベントを発生させるユーティリティ(ヘルパー)クラスが必要です.
グルービーグレード
リンク
Githubレポパート4支店:https://github.com/aniketbhoite/ksp-my-event/tree/part-4
Checkout other parts in this series:
- Android KSP guide for dummies by a Dummy: Part 1 ( )
- KSP Gradle setup & Processor's first log: Part 2
- Generate the code using KSP : Part 3 ( )
- Using KSP output in app: Part 4
まず、イベントインターフェイスとそれがどのようなメソッドを含んでいるかを見てみましょう.
package com.aniket.myevent
import android.os.Bundle
interface Event {
fun getHashMapOfParamsForCustomAnalytics(): HashMap<*, *>?
fun getBundleOfParamsForFirebase(): Bundle
}
すべての生成されたイベントクラスは、上記の両方のメソッドをオーバーライドしなければなりません.また、イベントインターフェイスクラスを使用して、各解析用SDKにイベントを発生させるユーティリティ(ヘルパー)クラスが必要です.
package com.aniket.myevent
import android.util.Log
object EventUtils {
fun postEvent(event: Event) {
sendFirebaseEvent(event)
sendCustomAnalyticEvent(event)
}
private fun sendFirebaseEvent(event: Event) {
Log.i("Firebase_Event_fire", event.getBundleOfParamsForFirebase().toString())
}
private fun sendCustomAnalyticEvent(event: Event) {
Log.i("Custom_Analytics_Event_fire", event.getHashMapOfParamsForCustomAnalytics().toString())
}
}
デフォルトでは、IDEは生成されたコードを認識しません.したがって、生成されたシンボルが解決できない参照をマークします.生成されたコードについて認識するためにIDEを作成するには、アプリケーション内の次の行を追加しなければなりません.Gradle SO IDEは正しいパッケージ名をインポートできます.グルービーグレード
// app/build/gradle
buildTypes {
release {
....
sourceSets {
main {
java { srcDirs = ["build/generated/ksp/release/kotlin"]}
}
}
}
debug {
....
sourceSets {
main {
java { srcDirs = ["build/generated/ksp/debug/kotlin"]}
}
}
}
}
コールトグラグラ// app/build.gradle.kts
buildTypes {
getByName("release") {
....
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
sourceSets {
getByName("main") {
java.srcDir(File("build/generated/ksp/release/kotlin"))
}
}
}
getByName("debug") {
....
sourceSets {
getByName("main") {
java.srcDir(File("build/generated/ksp/debug/kotlin"))
}
}
}
}
最後にやることは実際にイベントを引き起こすことですbookTicketButton.setOnClickListener {
EventUtils.postEvent(
TicketBookClickedParamsEvent(
TicketBookClickedParams(
eventName = "TicketBookClicked",
screenName = "MainActivity",
ticketNumber = 1223,
ticketAmount = "1220"
)
)
)
}
アプリを実行し、発射イベントログを見てみましょうリンク
Githubレポパート4支店:https://github.com/aniketbhoite/ksp-my-event/tree/part-4
Reference
この問題について(アプリケーションでのKSP出力の使用:第4部), 我々は、より多くの情報をここで見つけました https://dev.to/aniketbhoite/using-ksp-output-in-app-part-4-45ilテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol