appwin_core 0.4.1
appwin_core: ^0.4.1 copied to clipboard
Flutter foundation for the Appwin SDKs: one configure, plus the device identity and session shared by every product.
appwin_core #
appwin_core is the foundation of the Appwin SDKs for Flutter. It carries what
every Appwin product shares: the device identity, the authenticated session and
the network client. You configure it once, and the products you installed use
it.
Appwin is an engagement platform for mobile app studios. It puts an in-app support messenger, a community feed and push notifications inside your app, all rendered natively, and gives your team one dashboard to run them.
Features #
- ✅ One
configurefor every Appwin product in your app, whatever the number - ✅ Anonymous by default - a device is known without asking anyone to sign up
- ✅
identifyattaches your own user id when someone signs in - ✅ One identity across products - sign in once, recognised in Support and Community
- ✅
signOutclears the person without losing the device - ✅ Native under the hood - Swift on iOS, Kotlin on Android
Installation #
flutter pub add appwin_core
Most apps never run that command. Every Appwin product declares appwin_core
as a dependency and re-exports it, so installing appwin_support or
appwin_community already gives you AppwinCore under the same import. Add it
directly only if you want the identity API with no product at all.
Requirements #
| Platform | Minimum |
|---|---|
| iOS | 16.0 |
| Android | 7.0 (API 24) |
Nothing to add to your Podfile or to your Gradle repositories: the plugin
declares the native SDKs it needs, from CocoaPods and Maven Central.
Getting started #
Configure once, at launch:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AppwinCore.instance.configure(appId: 'your-app-id');
runApp(const MyApp());
}
When someone signs in to your app:
await AppwinCore.instance.identify(externalId: user.id);
await AppwinCore.instance.bootstrapSession(externalId: user.id);
Both calls, not one: identify records the identity, bootstrapSession mints
the token that carries it. Without the second, the calls that follow stay on the
anonymous session until the next launch.
On sign-out:
await AppwinCore.instance.signOut();
One configure, then one initialize() per product #
configure prepares the foundation and checks nothing. Each product you
install has its own initialize(), which asks the server whether that product
may open for this app, and answers rather than throwing:
final support = await AppwinSupport.instance.initialize();
debugPrint('Appwin Support: $support'); // ready / unavailable(plan) / ...
if (support.isReady) {
// Show your help button.
}
Gate your own entry point on that result: the SDK cannot hide your tab or your button, it does not own your navigation. The three products share one round trip and the verdict is cached on disk, so being offline falls back to the last known answer instead of closing a product you pay for.
Documentation #
License #
Proprietary. Use is reserved to studios holding a current Appwin contract.