Compatibility

A newer version of this documentation is available. Swtich to the latest version docs.
  • Programming languages: The Android SDK supports and tracks content on any screen developed in Java or Kotlin.
  • Android version: we support Android SDK API Level 19 (Android 4.4 - KitKat) and later
  • React Native: See our React Native Bridge Documentation
  • Other hybrid apps: we do not officially support other JavaScript frameworks such as Ionic, Cordova, etc.

This version has been compiled on Java 11 (Bytecode version 55).

Contentsquare Android SDK is always compiled with the latest Kotlin version.

If you don’t use the latest Kotlin version, you must exclude the Kotlin stdlib from our SDK.

implementation ("com.contentsquare.android:library:4.22.0") {
exclude group: "org.jetbrains.kotlin", module: "kotlin-stdlib-jdk8"
}

Contentsquare Compose SDK com.contentsquare.android:compose:4.22.0 is compiled using Jetpack Compose version 1.4.0 (bom 2023.03.00).

CS Compose versionEmbedded Compose versionMinimum compose version
4.22.01.4.01.4.0
4.21.01.4.01.4.0
4.20.01.4.01.4.0

The Contentsquare SDK has a few dependencies. We try to be up-to-date as much as possible to avoid conflict issue.

We may sometimes have conflicts between your app dependencies VS SDK dependencies. In this case, you can exclude from our SDK any dependency we pull and use your version instead.

Example with excluding recyclerview dependency

Section titled Example with excluding recyclerview dependency

If you have a version of the recyclerview in your app which is older than the one we use, you can use the following to exclude it in your Gradle file.

implementation ("com.contentsquare.android:library:4.22.0") {
exclude group: "androidx.recyclerview", module: "recyclerview"
exclude group: "androidx.swiperefreshlayout", module: "swiperefreshlayout"
}

By doing this, you skip the recyclerview and swiperefreshlayout dependencies provided by our SDK.

PackageNameVersion
androidx.appcompatappcompat1.6.1
androidx.annotationannotation1.5.0
androidx.recyclerviewrecyclerview1.3.0
androidx.swiperefreshlayoutswiperefreshlayout1.1.0
androidx.preferencepreference-ktx1.2.0
androidx.lifecyclelifecycle-process2.5.1
com.google.android.materialmaterial1.8.0
org.jetbrains.kotlinxkotlinx-serialization-json1.4.1

Known limitations and recommendations

Section titled Known limitations and recommendations

Native UI Elements are not supported

Section titled Native UI Elements are not supported

Symptom:

  1. You capture snapshots but main elements of the screen are not appearing.
  2. SDK does not log any gesture events when interacting with some native UI elements.

Explanation: Native UI Elements such as Bottom Sheets, Dialogs, Menus are currently not supported by the SDK.

Gestures not attached to the expected view (Layout visibility)

Section titled Gestures not attached to the expected view (Layout visibility)

Symptom: In some cases, we found that gestures tracked by the SDK are not attached to the right UI element of the screen. These gestures will be attached to an invisible view.

Explanation: The reason to this is that when the SDK attaches the gesture to a UI element, it generates a path regarding the visibility of the view when traversing the view hierarchy. If a view is visible and it matches the coordinates on where the gesture was performed it will be taken into account. Most of the time, the issue is that a layout is still present in the screen even if there is no content.

Best Practice: When designing your application UI, do not let any layout stray along if is not used. If a layout that contains widgets like progress bar, remember to set its visibility to GONE or INVISIBLE after its purpose is served.