Skip to content

Specifications

Requirements

There are some requirements that your application must meet in order to integrate the XpressID module into it.

  • The minimum operating system version is: Android 5.0 (API 21) (Mobile devices only).
  • The required permissions are: Camera and Location.
  • The recommended dependency manager is: Gradle.
  • The supported architectures are: x86, x86_64, armeabi-v7a, arm64-v8a.

Dependencies

The following tables indicate the artifacts that XpressID module requires to be integrated within your application. (See more about module integration here)

Internal dependencies:

The following table presents the artifacts (.aar/.jar) that are distributed along with XpressID.

Artifact Version Size
VDCommunicationCommonCore 2.11.0 1.5 MB
VDCommunicationCommonOkhttp 2.11.0 354,1 KB
VDContextualData 1.6.0 27.3 KB
VDDocumentCapture 4.19.1 242.8 KB
VDLibraryCommonCore 8.0.0 212. KB
VDLibraryCommonCoreJvm 8.0.0 31 KB
VDLibraryCommonImageProcessing 8.0.0 21.6 MB
VDLogger 2.3.0 19.2 KB
VDNfcScanner 2.6.0 1.6 MB
VDPhotoSelfieCapture 3.13.0 2.4 MB
VDVideoSelfieCapture 3.17.0 330.6 KB

Note that VDLibraryCommonImageProcessing is available for different architectures, so its final size includes the size of each supported architecture.

Architecture Size
x86 12 MB
x86_64 18.5 MB
armeabi-v7a 3.2 MB
arm64-v8a 4.7 MB

Each mobile device on the market uses a unique software architecture. Thus, each mobile device does NOT install the full weight of the VDLibraryCommonImageProcessing library, but installs the part of the weight associated with its architecture. In fact, this process of dividing the weight according to the architecture also takes place when the APP is uploaded to the Play Store.

The integrator should not include anything in the app because Google Play will manage the complete APK (including all architectures) which size is bigger than individual ones. To separate that APK and show the user which is going to download the app it's real size based on the architecture the device is accessing to Google Play.

This is explained here (abis) and here (APK splits).

In case the integrator wants to check the different APK sizes, or just build for one architecture only. The following code can be added to the app gradle (as stated in the links provided):

splits {
    abi {
        enable true

        reset()

        include 'armeabi-v7a', 'arm64-v8a', 'x86'

        universalApk true
    }
}

These sizes have been calculated with Android Studio .aar/.jar analyzer.

External dependencies:

The following table details the artifacts that will be retrieved using Gradle as dependency manager.

Component Version
androidx.core:core-ktx 1.12.0
androidx.legacy:legacy-support-v13 1.0.0
com.airbnb.android:lottie 6.0.0
com.auth0.android:jwtdecode 2.0.1
com.github.bumptech.glide:glide 4.16.0
com.google.android.gms:play-services-mlkit-face-detection 16.1.2
com.squareup.okhttp3:okhttp 4.12.0
org.jetbrains.kotlinx:kotlinx-serialization-json 1.6.2
org.jetbrains.kotlin:kotlin-reflect 1.9.10
com.madgag.spongycastle:bctls-jdk15on 1.58.0.0
net.sf.scuba:scuba-sc-android 0.0.22
org.jmrtd:jmrtd 0.7.19
edu.ucar:jj2000 5.2

Module size

The following table indicates the size of the XpressID module within your application.

Component Size
XpressId 246.6 KB

This size has been calculated with Android Studio .aar/.jar analyzer.