SDK quickstart

The whole path, from an empty project to an Appwin screen showing inside your app. Allow about ten minutes.

This page is the road map. Each step says what you do and why, then points to the page that carries the detail for all four platforms. Nothing is duplicated here: when a command changes, it changes in one place.


1. Get your App ID

In the dashboard: Community → Customise, or Support → Settings. It is the same identifier for every product of a given project.

The App ID is public - it ships inside your app binary. It routes requests to your project; it opens no access to your studio's data.

2. Install and configure the foundation

You install AppwinCore, then the module for the product you want. Core carries the device identity, the session and the network client; the products are only consumers of it, and none of them works without it. configure is also called on Core, which is why it is declared explicitly.

One configure at launch, whatever the number of products you integrate.

Install the SDK carries the coordinates, the minimum versions, the snippets for SPM, Gradle, npm and pub, and how to check the session opens.

Come back here once deviceId answers something other than null.

3. Attach your user

Optional, but it is what makes a person the same in Community and in Support, and across devices. The externalId is yours, the one from your database: Appwin does not interpret it.

swift
AppwinCore.identify(externalId: user.id)
try await AppwinCore.bootstrapSession(externalId: user.id)

await AppwinCore.signOut()   // on sign-out

identify alone is not enough. Replaying the bootstrap mints a token that carries the new identity; without it, the calls that follow stay on the anonymous session until the next launch. On React Native, where Core does not expose the externalId variant, the product's login does it for you.

Identity details the three states: anonymous, attached, enriched.

4. Wire a product

Each product is added through its module, and must be enabled in the dashboard. Two things have to be true: your plan includes the product, and the product is switched on for this project.

Initialise it, then gate your own UI

AppwinCore.configure is the only call that never checks anything: it prepares the device identity and the network client. Each product then has its own initialize(), which asks the server whether it may open, and answers rather than throwing.

swift
let support = await AppwinSupport.initialize()
print("Appwin Support: \(support)")

Gate your own entry point on that result. The SDK cannot hide your tab or your help button: it does not own your navigation, only you do. What the SDK does guarantee is that it never crashes and never silently does nothing. A refused product logs loudly in a debug build, quietly in release, and its screens fall back to a neutral view if presented anyway.

initialize() is cheap: the three products share one server round trip, and the verdict is cached on disk. Offline, the SDK falls back to the last known answer rather than closing a product you pay for. Only a first launch with no network and no cache is undecided, and that answers unknown, which means "retry", not "no".

ResultWhat it meansWhat to do
readyOpen.Show your entry point.
unavailable, reason planYour plan does not include this product.Upgrade, or hide the feature.
unavailable, reason disabledSwitched off for this project.Turn it on in the dashboard.
notConfiguredAppwinCore.configure was never called.Fix the integration.
unknownNo network and no cached verdict.Retry later; do not treat it as a no.

What each product adds

ProductWhat you addWhere to enable it
CommunityA view to embed: AppwinCommunity.communityView() (iOS), CommunityView() (Android), <AppwinCommunityView /> (RN), AppwinCommunityView() (Flutter)Community → Customise
SupportA modal presentation: AppwinSupport.presentMessenger(), or the MessengerView viewSupport → Settings
NotificationsNo UI: AppwinNotifications.registerPushToken(...) at launch, then trackEvent(...)Notifications → Settings

This is where you finally see something on screen. The step by step for each product, with snippets for all four platforms, lives under SDK → Integration in the dashboard.


Something is wrong?

The table of common symptoms is in Install the SDK.

Next

  • Concepts - what a project, an App ID and an end-user are
  • Mobile SDK - what Core carries, what the products carry
  • Community - showing the feed, customisation, localisation