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
andLocation
. - 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.