
Collect in-app user feedback: display forms, identify users, track screens and events, submit responses; ships as two native SDKs with thin cross-platform bridges and inline form.
Collect user feedback in native and cross-platform mobile apps — display feedback forms, identify
users, track screens and events, and submit responses to the Encatch backend. Functionally
equivalent to @encatch/react-native-sdk.
Two independent, fully native SDKs — one per platform, not a shared cross-platform core — plus two thin bridge libraries for customers building with Compose Multiplatform or Kotlin Multiplatform:
| Package | Platform | Install | What it is |
|---|---|---|---|
com.encatch:android |
Android (native Views) | Maven Central | The real Android SDK. |
Encatch (Swift Package) |
iOS (native Swift/UIKit) | SPM via get-encatch/encatch-swift | The real iOS SDK. Zero Kotlin dependency. |
com.encatch:kmp-sdk |
KMP (Android + iOS) | Maven Central | Thin bridge onto the two native SDKs above — full API, no UI. |
com.encatch:compose-sdk |
Compose Multiplatform (Android + iOS) | Maven Central |
:kmp-sdk + a ready-made inline-form composable. |
com.encatch:core is the platform-agnostic Kotlin business logic backing :android and
:kmp-sdk on Android — most apps don't depend on it directly (see core/README.md).
com.encatch:android.swift Swift Package.com.encatch:kmp-sdk.com.encatch:compose-sdk.Each package's README has full installation and usage instructions.
Android's native language is Kotlin, so :android/:core are already a real native
implementation there. iOS gets the same treatment — swift/ is genuinely native Swift (own
networking, storage, session management), not a Kotlin/Native UI wrapped in Swift syntax. Every
other integration (:kmp-sdk, :compose-sdk, and any future one — React Native, Flutter) is a
thin bridge onto these two, never a third reimplementation. This mirrors how other mobile SDK
providers (e.g. Refiner) structure theirs, and it's what lets a Compose Multiplatform or KMP
customer get the same "few lines, no plumbing" experience a plain native customer already gets.
core/, android/ — the native Android SDK.swift/ — the native iOS SDK (Swift Package).kmp-sdk/, compose-sdk/ — the cross-platform bridge libraries.mock-server/ — a local mock backend for development/testing (./gradlew :mock-server:run).examples/ — minimal example apps exercising each package above (sample-app, compose-sample,
kmp-sample, ios-sample, ios-compose-sample, ios-kmp-sample); not part of the published
SDKs.integrations/ — standalone tester apps with a runtime setup screen, buildable to an APK/build
you can hand to a real tester (see integrations/README.md).scripts/test-all-variants.sh — one-command build/test/screenshot pass across every example app.MIT
Collect user feedback in native and cross-platform mobile apps — display feedback forms, identify
users, track screens and events, and submit responses to the Encatch backend. Functionally
equivalent to @encatch/react-native-sdk.
Two independent, fully native SDKs — one per platform, not a shared cross-platform core — plus two thin bridge libraries for customers building with Compose Multiplatform or Kotlin Multiplatform:
| Package | Platform | Install | What it is |
|---|---|---|---|
com.encatch:android |
Android (native Views) | Maven Central | The real Android SDK. |
Encatch (Swift Package) |
iOS (native Swift/UIKit) | SPM via get-encatch/encatch-swift | The real iOS SDK. Zero Kotlin dependency. |
com.encatch:kmp-sdk |
KMP (Android + iOS) | Maven Central | Thin bridge onto the two native SDKs above — full API, no UI. |
com.encatch:compose-sdk |
Compose Multiplatform (Android + iOS) | Maven Central |
:kmp-sdk + a ready-made inline-form composable. |
com.encatch:core is the platform-agnostic Kotlin business logic backing :android and
:kmp-sdk on Android — most apps don't depend on it directly (see core/README.md).
com.encatch:android.swift Swift Package.com.encatch:kmp-sdk.com.encatch:compose-sdk.Each package's README has full installation and usage instructions.
Android's native language is Kotlin, so :android/:core are already a real native
implementation there. iOS gets the same treatment — swift/ is genuinely native Swift (own
networking, storage, session management), not a Kotlin/Native UI wrapped in Swift syntax. Every
other integration (:kmp-sdk, :compose-sdk, and any future one — React Native, Flutter) is a
thin bridge onto these two, never a third reimplementation. This mirrors how other mobile SDK
providers (e.g. Refiner) structure theirs, and it's what lets a Compose Multiplatform or KMP
customer get the same "few lines, no plumbing" experience a plain native customer already gets.
core/, android/ — the native Android SDK.swift/ — the native iOS SDK (Swift Package).kmp-sdk/, compose-sdk/ — the cross-platform bridge libraries.mock-server/ — a local mock backend for development/testing (./gradlew :mock-server:run).examples/ — minimal example apps exercising each package above (sample-app, compose-sample,
kmp-sample, ios-sample, ios-compose-sample, ios-kmp-sample); not part of the published
SDKs.integrations/ — standalone tester apps with a runtime setup screen, buildable to an APK/build
you can hand to a real tester (see integrations/README.md).scripts/test-all-variants.sh — one-command build/test/screenshot pass across every example app.MIT