intellign_growth
Official Dart and Flutter client SDK for Intellign Growth.
Let your business tell you what it needs.
Send meaningful product and business signals from Dart and Flutter applications into the same Growth learning loop used across websites, services, and custom integrations.
Install
dart pub add intellign_growth
For Flutter projects, the same package works with:
flutter pub add intellign_growth
Quick start
Create an app-scoped client credential in Growth → Connections and initialize the SDK with its allowed application ID:
import 'package:intellign_growth/intellign_growth.dart';
final growth = Growth(
clientKey: 'ig_ck_live_...',
appId: 'com.example.myapp',
);
await growth.track('product_view', properties: {
'product': 'Studio Lamp',
'value': 79,
});
When the customer becomes known:
growth.identify('customer_123');
await growth.track('purchase', properties: {
'product': 'Studio Lamp',
'value': 79,
'currency': 'USD',
});
Track business moments, not noise
Prefer stable events that describe meaningful movement through your product:
product_view → add_to_cart → signup → purchase
await growth.track('add_to_cart', properties: {
'productId': 'lamp_001',
'value': 79,
'currency': 'USD',
});
Do not put passwords, authentication tokens, payment credentials, private messages, or other sensitive content in event properties.
Identity
Each Growth instance has an anonymous ID. You can also provide your own stable anonymous ID when your app already maintains one:
final growth = Growth(
clientKey: 'ig_ck_live_...',
appId: 'com.example.myapp',
anonymousId: 'install_abc123',
);
Associate subsequent events with a known customer:
growth.identify('customer_123');
Clear the known identity when appropriate, such as after sign-out:
growth.reset();
reset() clears the known userId; it does not replace the instance's anonymous ID.
Configuration
final growth = Growth(
clientKey: 'ig_ck_live_...',
appId: 'com.example.myapp',
retries: 2,
timeout: const Duration(seconds: 8),
);
The SDK sends SDK/version metadata, uses bounded retries, honors request timeouts, and throws GrowthException when delivery ultimately fails.
try {
await growth.track('checkout_started');
} on GrowthException catch (error) {
// Do not block the customer's primary action just because analytics failed.
print(error);
}
When you own the SDK instance for the lifetime of a short-lived process, close its HTTP client when finished:
growth.close();
Credentials and security
Growth uses different credential classes for different environments:
| Credential | Intended use | Put it in a Dart/Flutter app? |
|---|---|---|
ig_ck_live_... |
Distributed client applications, scoped to an app/package/bundle ID | Yes |
ig_pk_live_... |
Approved browser origins | No — use the web/JavaScript integration |
ig_sk_live_... |
Trusted server infrastructure | Never |
Never ship an ig_sk_... server secret inside a Dart or Flutter application. Mobile and desktop binaries are distributed to users and cannot safely contain server secrets.
The appId passed to Growth should match the application identity allowed by the client credential in Growth.
Verify the connection
After running your application and sending a real event, return to Growth → Connections and verify the Dart/Flutter connection. Growth should only report Connected ✓ after activity reaches the project.
Runnable examples
The public Intellign Growth examples repository contains working integrations across the ecosystem:
https://github.com/intellign/intellign_growth_examples
Other platforms
The same Growth project can receive signals from the hosted Web runtime, JavaScript, Python/Kivy, trusted server integrations, REST, Dart, and Flutter. They all feed the same Growth event language and learning loop.
Product
Growth discovers opportunity, learns from real product behavior, and helps a business understand what it needs next.
License
Proprietary software. Copyright © 2026 Intellign LLC. All rights reserved. See LICENSE for the current package terms. Public availability on pub.dev does not make this package open source.
Made in New York by Intellign LLC.