# Flutter SDK

> Integrate deep linking, attribution, and smart links into your Flutter app with the Grovs SDK.

Source: https://docs.grovs.io/docs/sdk/flutter

Deep linking, link generation, push campaigns, in-app messages, event and screen tracking, revenue and attribution for Flutter. Plugin 3.1.1 wraps the native 3.1 SDKs (`Grovs ~> 3.1` on iOS, `io.grovs:Grovs:3.1.0` on Android).

**Requirements:** Flutter 3.38.0+, Dart 3.9.2+, iOS 13.0+, Android 7.0 (API 24)+. Install `grovs_flutter_plugin` from pub.dev. On iOS the plugin works with Swift Package Manager and CocoaPods.

- [Quick Start](https://docs.grovs.io/docs/sdk/flutter/quick-start): Install and configure the SDK
- [Deep Linking](https://docs.grovs.io/docs/sdk/flutter/deep-linking): Handle incoming deep links, in-app links and SDK errors
- [Link Creation](https://docs.grovs.io/docs/sdk/flutter/link-creation): Generate smart links and read link details
- [Push notifications](https://docs.grovs.io/docs/sdk/flutter/push-notifications): Push campaign tokens, taps and links (3.1.1)
- [In-app messages](https://docs.grovs.io/docs/sdk/flutter/in-app-messages): Dashboard campaigns shown inside your app (3.1.1)
- [Revenue](https://docs.grovs.io/docs/sdk/flutter/revenue): Track in-app purchases and custom payments
- [Events & Screen Tracking](https://docs.grovs.io/docs/sdk/flutter/analytics): Track custom events and screen views
- [Privacy & Consent](https://docs.grovs.io/docs/sdk/flutter/privacy): Gate collection on consent, and what the SDK collects
- [API Reference](https://docs.grovs.io/docs/sdk/flutter/api-reference): All properties and methods

## Upgrading

**3.0 to 3.1:** requires Flutter 3.38.0. Turn off Flutter's own deep linking (`FlutterDeepLinkingEnabled` / `flutter_deeplinking_enabled`), remove any SceneDelegate code that forwards links to Grovs, and set the notification center delegate on iOS. See the [3.1 upgrade guide](https://docs.grovs.io/docs/upgrade-guides/flutter-3-2).

**1.x to 3.0:** existing Dart code still compiles. Clipboard-assisted deferred deep linking runs on first launch, consent is gated with `GrovsEnabled` / `grovs_enabled` and `setSDK`, and screen views come from `Grovs.navigatorObserver`. See the [3.0 upgrade guide](https://docs.grovs.io/docs/upgrade-guides/flutter-3-0).

## Example app

[grovs-io/grovs-flutter](https://github.com/grovs-io/grovs-flutter) has a demo app in `example/` covering link generation, link details, deep links, `handleUrl`, consent, analytics, revenue, push and in-app messages.
