DevRev SDK for Android
Migration guide
This guide helps transition from the legacy UserExperior SDK to the new DevRev SDK.
Feature equivalence chart
| Feature | UserExperior SDK | DevRev SDK (Kotlin) | DevRev SDK (Java) |
|---|---|---|---|
| Installation | implementation 'com.userexperior:userexperior-android::<VERSION>’ | implementation("ai.devrev.sdk:devrev-sdk:<VERSION>") | implementation("ai.devrev.sdk:devrev-sdk:<VERSION>") |
| Initialization | UserExperior.startRecording(Context context, String ueSdkAppVersionKey) | DevRev.configure(context: Context, appId: String, prefersDialogMode: Boolean) | DevRev.INSTANCE.configure(Context context, String appId, Boolean prefersDialogMode) |
| User Identification | UserExperior.setUserIdentifier(String userIdentifier) | DevRev.identifyAnonymousUser(userId: String)DevRev.identifyUnverifiedUser(identity: Identity)DevRev.updateUser(identity: Identity)DevRev.logout(deviceID: String) | DevRev.INSTANCE.identifyAnonymousUser(String userId)DevRev.INSTANCE.identifyUnverifiedUser(Identity identity)DevRev.INSTANCE.updateUser(Identity identity)DevRev.INSTANCE.logout(String deviceID) |
| Event Tracking | UserExperior.logEvent(String event, HashMap<String, Object> properties) | DevRev.trackEvent(name: String, properties: HashMap<String, String>) | DevRevAnalyticsExtKt.trackEvent(DevRev.INSTANCE, String name, HashMap<String, String> properties) |
| Session Recording | UserExperior.stopRecording()UserExperior.pauseRecording()UserExperior.resumeRecording() | DevRev.startRecording()DevRev.stopRecording()DevRev.pauseRecording()DevRev.resumeRecording()DevRev.processAllOnDemandSessions() | DevRevObservabilityExtKt.startRecording(DevRev.INSTANCE, context)DevRevObservabilityExtKt.stopRecording(DevRev.INSTANCE)DevRevObservabilityExtKt.pauseRecording(DevRev.INSTANCE)DevRevObservabilityExtKt.resumeRecording(DevRev.INSTANCE)DevRevObservabilityExtKt.processAllOnDemandSessions(DevRev.INSTANCE) |
| Opt-in or out | UserExperior.consentOptOut()UserExperior.consentOptIn()UserExperior.getConsentStatus()UserExperior.getOptOutStatus() | DevRev.stopAllMonitoring()DevRev.resumeAllMonitoring() | DevRevObservabilityExtKt.stopAllMonitoring(DevRev.INSTANCE)DevRevObservabilityExtKt.resumeAllMonitoring(DevRev.INSTANCE) |
| Session Properties | UserExperior.setUserProperties(HashMap<String, Object> userProperties) | DevRev.addSessionProperties(properties: HashMap<String, String>)DevRev.clearSessionProperties() | DevRevObservabilityExtKt(DevRev.INSTANCE, HashMap<String, String> properties)DevRevObservabilityExtKt.clearSessionProperties(DevRev.INSTANCE) |
| Masking Sensitive Data | UserExperior.markSensitiveView(View view)UserExperior.unmarkSensitiveView(View view) | DevRev.markSensitiveViews(sensitiveViews: List<View>)DevRev.unmarkSensitiveViews(sensitiveViews: List<View>) | DevRevObservabilityExtKt.markSensitiveViews(DevRev.INSTANCE, List<View> sensitiveViews)DevRevObservabilityExtKt.unmarkSensitiveViews(DevRev.INSTANCE, List<View> sensitiveViews) |
| Timers | UserExperior.startTimer(String timerName, HashMap<String, String> properties)UserExperior.endTimer(String timerName, HashMap<String, String> properties) | DevRev.startTimer(name: String, properties: HashMap<String, String>)DevRev.endTimer(name: String, properties: HashMap<String, String>) | DevRevObservabilityExtKt.startTimer(DevRev.INSTANCE, String name, HashMap<String, String> properties)DevRevObservabilityExtKt.endTimer(DevRev.INSTANCE, String name, HashMap<String, String> properties) |
| Plug support chat | Not supported. | DevRev.showSupport(context: Context)DevRev.createSupportConversation()DevRev.setShouldDismissModalsOnOpenLink(value: Boolean)DevRev.setInAppLinkHandler(handler: (String) -> Unit) | DevRevExtKt.showSupport(DevRev.INSTANCE, context)DevRev.INSTANCE.createSupportConversation(Context context)DevRev.INSTANCE.setShouldDismissModalsOnOpenLink(Boolean value)DevRev.INSTANCE.setInAppLinkHandler(Function1<? super String, Unit> handler) |
| Push Notifications | Not supported. | DevRev.registerDeviceToken(context: Context, deviceToken: String, deviceId: String,)DevRev.processPushNotification(context: Context, userInfo: String) | DevRev.INSTANCE.registerDeviceToken(Context context, String deviceToken, String deviceId)DevRev.INSTANCE.processPushNotification(Context context, String userInfo) |