Skip to content

Installation

This repository exposes two primary consumer paths:

  • Android via Maven Central using com.deepdots.sdk:shared-android
  • iOS via Swift Package Manager using the binary package manifest DeepdotsSDK
  • Android apps compile against Java 17 in this repository
  • Android example apps use minSdk = 24
  • iOS distribution targets iOS 13+
  • The shared SDK module namespace is com.deepdots.sdk

Add the published dependency:

dependencies {
implementation("com.deepdots.sdk:shared-android:0.7.0")
}

The Android example app in this repository uses that exact coordinate.

Terminal window
./gradlew :example-android:assembleDebug
./gradlew :example-android:installDebug

The SDK is distributed as a binary Swift package from MagicFeedback/DeepdotsSDK-SPM. It exposes the library product DeepdotsSDK.

In Xcode, go to File → Add Package Dependencies…, enter the repository URL and pick version 0.7.0 with the Up to Next Minor Version rule:

https://github.com/MagicFeedback/DeepdotsSDK-SPM

Or, in a Package.swift:

dependencies: [
.package(url: "https://github.com/MagicFeedback/DeepdotsSDK-SPM", .upToNextMinor(from: "0.7.0"))
],
targets: [
.target(name: "YourApp", dependencies: [
.product(name: "DeepdotsSDK", package: "DeepdotsSDK-SPM")
])
]

The package manifest itself is binary-based:

5.7
import PackageDescription
let package = Package(
name: "DeepdotsSDK",
platforms: [
.iOS(.v13)
],
products: [
.library(name: "DeepdotsSDK", targets: ["DeepdotsSDK"])
]
)

Add this key to your app’s Info.plist. The popup is rendered with Compose Multiplatform, which requires it on iOS; without it the app can crash on ProMotion (120 Hz) devices when a popup is shown:

<key>CADisableMinimumFrameDurationOnPhone</key>
<true/>

The iOS demo project resolves a local package from spm-local/. If the local XCFramework is missing, regenerate it first:

Terminal window
./run_ios_example.sh

To resolve and build from Xcode tooling:

Terminal window
cd iosApp
xcodebuild -resolvePackageDependencies -project iosApp.xcodeproj -scheme iosApp -destination 'generic/platform=iOS Simulator'
xcodebuild -scheme iosApp -project iosApp.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 16e' build
  • Public consumer detail: Android dependency coordinate and iOS SPM package/product names
  • Maintainer detail: release scripts in scripts/prepare_sdk_release.sh, scripts/prepare_spm_release.sh, and scripts/prepare_maven_upload_zip.sh

Those maintainer scripts are part of the repository, but they are release-tooling oriented rather than end-user integration steps.