Flutter SDK Installation
Get started with the DoorstepAI Flutter SDK to add intelligent delivery tracking to your Flutter application.
Prerequisites
Before you begin, ensure you have:
- Flutter 3.0 or later with Dart 2.17+
- Valid API Key from DoorstepAI
- iOS 15+ deployment target for iOS
- Android API 24+ for Android
Installation
1. Add Dependencies
Add the DoorstepAI Flutter SDK to your pubspec.yaml:
dependencies:
flutter:
sdk: flutter
# DoorstepAI SDK
doorstepai_dropoff_sdk: ^2.0.0
# Permission handling
permission_handler: ^10.0.0
2. Install Dependencies
Run the following command to install the dependencies:
flutter pub get
3. Platform-Specific Setup
iOS Setup
For iOS, run the following command to install CocoaPods dependencies:
cd ios && pod install && cd ..
Android Setup
For Android, the SDK will be automatically linked via autolinking. No additional manual steps are required.
Platform-Specific Configuration
iOS Configuration
Update your iOS app's Info.plist file with the required permissions:
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app requires access to your location for enhanced delivery intelligence</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app requires access to your location for enhanced delivery intelligence</string>
<key>NSMotionUsageDescription</key>
<string>This app requires access to motion data for enhanced delivery intelligence</string>
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
</dict>
Android Configuration
Update your Android app's AndroidManifest.xml file with the required permissions:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yourapp.package">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_LOCATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:name="android.hardware.sensor.accelerometer" />
<uses-feature android:name="android.hardware.sensor.gyroscope" />
<uses-feature android:name="android.hardware.sensor.barometer" />
<uses-feature android:name="android.hardware.sensor.compass" />
<uses-feature android:name="android.hardware.sensor.proximity" />
<application>
<!-- Your app components -->
</application>
</manifest>
Permission Requirements
| Permission | Purpose | Platform | Runtime Required |
|---|---|---|---|
ACCESS_FINE_LOCATION | Precise location tracking | Android | Yes |
ACCESS_COARSE_LOCATION | Approximate location | Android | Yes |
ACCESS_BACKGROUND_LOCATION | Background location access | Android | Yes |
ACTIVITY_RECOGNITION | Motion and activity detection | Android | Yes |
FOREGROUND_SERVICE | Background processing | Android | No |
FOREGROUND_SERVICE_LOCATION | Location foreground service | Android | No |
FOREGROUND_SERVICE_DATA_SYNC | Data sync foreground service | Android | No |
POST_NOTIFICATIONS | Delivery notifications | Android | Yes (API 33+) |
WAKE_LOCK | Keep device awake during tracking | Android | No |
ACCESS_WIFI_STATE | WiFi state access | Android | No |
ACCESS_NETWORK_STATE | Network state access | Android | No |
INTERNET | Network communication | Android | No |
NSLocationWhenInUseUsageDescription | Location access during app usage | iOS | Yes |
NSLocationAlwaysAndWhenInUseUsageDescription | Background location access | iOS | Yes |
NSMotionUsageDescription | Motion and sensor data | iOS | Yes |
* Starting with Android 13 (API level 33), apps must request
POST_NOTIFICATIONSat runtime.
Verification
To verify the installation was successful:
Build your project:
# iOS
flutter build ios
# Android
flutter build apk
Import Test
import 'package:doorstepai_dropoff_sdk/doorstepai_dropoff_sdk.dart';
import 'package:doorstepai_dropoff_sdk/doorstep_ai_view.dart';
void main() {
runApp(MyApp());
}
Next Steps
Now that you have the SDK installed and configured:
- 📚 Learn SDK Usage - Initialize and use the SDK
- 💡 View Examples - See complete implementation examples
For support and questions, contact us at support@doorstep.ai