Prerequisites & Dependencies
Before integrating the indigitall-capacitor-plugin into your Capacitor application, please ensure your development environment and project meet the following system and library requirements.
1. Environment & Compatibility (Version 4.0.0 or above)
JavaScript / TypeScript
- Node.js:
18or higher. - TypeScript:
~5.3.0or higher. - Capacitor Core:
>= 8.0.0(required peer dependency). - ES Target: The plugin is compiled targeting
ES2017and ships both ESM (dist/esm/) and CJS (dist/plugin.cjs.js) bundles.
Android
- Minimum Android SDK (minSdkVersion): API level
23(Android 5.0 Marshmallow) or higher. - Target Android SDK (targetSdkVersion): API level
36(Android 16). - Java Version: Java 8 (
JavaVersion.VERSION_17) is required to compile the Android bridge layer. - AndroidX: Your project must be migrated to AndroidX (Jetpack). Both
android.useAndroidXandandroid.enableJetifiermust be enabled.
iOS
- Minimum iOS Version:
15.6or higher. - Swift Version: Swift 5.9 or higher.
- Xcode: Compatible with the Swift 5.9 toolchain (Xcode 15+).
- CocoaPods: Required to resolve native iOS dependencies via the provided
.podspec.
2. Core Dependencies
npm / JavaScript
| Package | Version | Type | Description |
|---|---|---|---|
@capacitor/core | >= 8.0.0 | peer | Capacitor runtime required to bridge JS and native layers |
Android (Gradle)
The plugin's android/build.gradle declares the following runtime dependencies:
| Artifact | Version | Description |
|---|---|---|
androidx.appcompat:appcompat | 1.7.1 | Backward compatibility support for Android UI components |
com.google.firebase:firebase-messaging | 25.0.2 | (Mandatory) Firebase Cloud Messaging for Push Notification delivery |
androidx.cardview:cardview | 1.0.0 | Material card view component used by in-app rendering |
com.indigitall:android | 7.0.+ | Indigitall native Android SDK (HMS module excluded automatically) |
Note: The
android-hmsmodule is explicitly excluded from the Indigitall SDK transitive dependencies viaexclude group: "com.indigitall", module: "android-hms".
iOS (CocoaPods)
The plugin's IndigitallCapacitorPlugin.podspec declares the following dependencies:
| Pod | Version | Description |
|---|---|---|
Capacitor | (any) | Capacitor native iOS bridge |
indigitall-ios | ~> 6.21.0 | Indigitall native iOS SDK for Push, In-App, Inbox and more |
3. Modular Architecture & Included Components
The main Indigitall native artifact (com.indigitall:android:6.0.+) features a modular architecture. When the plugin imports the core SDK, the following modules are automatically available through transitive dependencies:
| Module | Artifact ID | Functional Description |
|---|---|---|
| Push | android-push | Lifecycle management and reception of Push Notifications |
| InApp | android-inapp | Rendering of In-App messaging campaigns, custom banners, and overlays |
| Inbox | android-inbox | Native message center and notification storage history |
| LiveActivity | android-liveactivity | Real-time tracking and live activity notification support |
| Customer | android-customer | User profile management, authentication, and custom field tracking |
| Commons | android-commons | Shared internal utilities, core network logic, and local persistence |
Excluded:
android-hms(Huawei Mobile Services) is not included in this plugin. Use the dedicatedindigitall-capacitor-plugin-hmspackage if HMS support is required.
4. Development Dependencies
These packages are required only during plugin development and are not bundled into the final output:
| Package | Version | Description |
|---|---|---|
@capacitor/android | ^8.0.0 | Android platform for local development and testing |
@capacitor/ios | ^8.0.0 | iOS platform for local development and testing |
@capacitor/docgen | ^0.3.0 | Automatic API documentation generation from TypeScript |
typescript | ~5.3.0 | TypeScript compiler |
rollup | ^4.0.0 | Module bundler for ESM and CJS output |
eslint | ^8.0.0 | JavaScript/TypeScript linter |
prettier | ^2.8.8 | Code formatter |
rimraf | ^5.0.0 | Cross-platform rm -rf for the clean script |
swiftlint | ^1.0.1 | Swift code linter for iOS source files |
5. Integration Snippet
Add the following to your application-level build.gradle to ensure AndroidX compatibility required by the plugin:
# android/gradle.properties
android.useAndroidX=true
android.enableJetifier=trueAnd ensure your app-level build.gradle includes the Firebase and Google services plugins if Push Notifications are required:
// android/app/build.gradle
apply plugin: 'com.google.gms.google-services'
dependencies {
implementation 'com.google.firebase:firebase-messaging:23.0.2'
}For iOS, add the pod dependency to your Podfile (Capacitor handles this automatically via the .podspec):
# ios/App/Podfile
pod 'IndigitallCapacitorPlugin', :path => '../node_modules/indigitall-capacitor-plugin'