Initial SDK Setup


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: 18 or higher.
  • TypeScript: ~5.3.0 or higher.
  • Capacitor Core: >= 8.0.0 (required peer dependency).
  • ES Target: The plugin is compiled targeting ES2017 and 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.useAndroidX and android.enableJetifier must be enabled.

iOS

  • Minimum iOS Version: 15.6 or 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

PackageVersionTypeDescription
@capacitor/core>= 8.0.0peerCapacitor runtime required to bridge JS and native layers

Android (Gradle)

The plugin's android/build.gradle declares the following runtime dependencies:

ArtifactVersionDescription
androidx.appcompat:appcompat1.7.1Backward compatibility support for Android UI components
com.google.firebase:firebase-messaging25.0.2(Mandatory) Firebase Cloud Messaging for Push Notification delivery
androidx.cardview:cardview1.0.0Material card view component used by in-app rendering
com.indigitall:android7.0.+Indigitall native Android SDK (HMS module excluded automatically)

Note: The android-hms module is explicitly excluded from the Indigitall SDK transitive dependencies via exclude group: "com.indigitall", module: "android-hms".

iOS (CocoaPods)

The plugin's IndigitallCapacitorPlugin.podspec declares the following dependencies:

PodVersionDescription
Capacitor(any)Capacitor native iOS bridge
indigitall-ios~> 6.21.0Indigitall 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:

ModuleArtifact IDFunctional Description
Pushandroid-pushLifecycle management and reception of Push Notifications
InAppandroid-inappRendering of In-App messaging campaigns, custom banners, and overlays
Inboxandroid-inboxNative message center and notification storage history
LiveActivityandroid-liveactivityReal-time tracking and live activity notification support
Customerandroid-customerUser profile management, authentication, and custom field tracking
Commonsandroid-commonsShared internal utilities, core network logic, and local persistence

Excluded: android-hms (Huawei Mobile Services) is not included in this plugin. Use the dedicated indigitall-capacitor-plugin-hms package if HMS support is required.


4. Development Dependencies

These packages are required only during plugin development and are not bundled into the final output:

PackageVersionDescription
@capacitor/android^8.0.0Android platform for local development and testing
@capacitor/ios^8.0.0iOS platform for local development and testing
@capacitor/docgen^0.3.0Automatic API documentation generation from TypeScript
typescript~5.3.0TypeScript compiler
rollup^4.0.0Module bundler for ESM and CJS output
eslint^8.0.0JavaScript/TypeScript linter
prettier^2.8.8Code formatter
rimraf^5.0.0Cross-platform rm -rf for the clean script
swiftlint^1.0.1Swift 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=true

And 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'