---
title: Next to the Native SDK
slug: web-view-sdk-next-to-native-sdk
createdAt: 2026-11-03T10:14:21.212Z
---

The web view SDK and the native Kindly SDK can be in the same app, for example while you move from one to the other. They are separate modules with separate state, storage, logs and telemetry, and each shows its own chat with its own conversation. A conversation started in one does not continue in the other

## Packages and names

::::Tabs
:::Tab{title="iOS"}
The web view SDK is the module `KindlyWebView` from `https://github.com/kindly-ai/sdk-chat-webview`, the native SDK the module `Kindly` from `https://github.com/kindly-ai/sdk-chat-ios`. Some type names exist in both, such as `KindlyEvent` and `KindlyAuthCredentials`, so in a file that imports both modules, qualify them with the module name:

```swift
import Kindly
import KindlyWebView

func handle(_ event: KindlyWebView.KindlyEvent) {
    // an event from the web view SDK
}
```
:::

:::Tab{title="Android"}
The web view SDK is `ai.kindly:sdk-webview` in the package `ai.kindly.webview`, the native SDK `ai.kindly:sdk` in `no.kindly.chatsdk`. Some type names exist in both, such as `KindlyEvent` and `KindlyAuthCredentials`, so in a file that uses both, import one of them under another name:

```kotlin
import ai.kindly.webview.models.KindlyEvent as KindlyWebViewEvent
import no.kindly.chatsdk.chat.models.KindlyEvent
```

The two use separate resources, preferences, file provider authorities and Logcat tags. Both depend on Sentry 8, and Gradle resolves one version for both
:::

:::Tab{title="Flutter"}
The web view SDK is the `kindly_webview` package, the native SDK the `kindly` package. Every type in `kindly_webview` starts with `KindlyWebView`, and its channels, iOS module and Android artifact are separate, so both import cleanly in the same file
:::

:::Tab{title="React Native"}
The web view SDK is `@kindly-ai/react-native-webview`, the native SDK `@kindly-ai/react-native`. Every type in the web view package starts with `KindlyWebView`, its native module and pod are `KindlyWebViewReactNative`, and its Android package is `ai.kindly.webview.reactnative`, so both build side by side
:::
::::

## Bot setup

Both SDKs send your app's iOS bundle id or Android package name to the Kindly chat backend, so a bot that lists your app for the native SDK accepts the web view SDK as it is, see [Configuration](docId\:ki6dE8DkffvzmLIj7LAaH)
