앱에서 KSP 출력 사용: 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
먼저 Event Interface가 무엇이고 어떤 메서드가 포함되어 있는지 살펴보겠습니다.
package com.aniket.myevent
import android.os.Bundle
interface Event {
fun getHashMapOfParamsForCustomAnalytics(): HashMap<*, *>?
fun getBundleOfParamsForFirebase(): Bundle
}
이는 생성된 모든 Event 클래스가 위에서 언급한 두 메서드를 모두 재정의해야 함을 의미합니다.
또한 이벤트 인터페이스 클래스를 사용하여 각 분석 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가 생성된 코드를 인식하도록 하려면 IDE가 올바른 패키지 이름을 가져올 수 있도록 app(또는 소비자 모듈)/build.gradle에 다음 줄을 추가해야 합니다.
그루비 그레이들
// 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.)