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 14+ deployment target for iOS
- Android API 21+ for Android
We recommend using the latest stable version of Flutter for the best development experience and access to the latest platform features.
Installation
1. Add Dependencies
Add the DoorstepAI Flutter SDK to your pubspec.yaml
:
dependencies:
flutter:
sdk: flutter
# DoorstepAI SDK
doorstepai_dropoff_sdk: ^1.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 the POST_NOTIFICATIONS
permission at runtime.
Verification
To verify the installation was successful:
-
Build your project:
# iOS
flutter build ios
# Android
flutter build apk -
Check for import errors in files using the SDK
-
Verify permissions are properly configured in platform-specific files
Import Test
import 'package:doorstepai_dropoff_sdk/doorstepai_dropoff_sdk.dart';
import 'package:doorstepai_dropoff_sdk/doorstep_ai_view.dart';
void main() {
runApp(MyApp());
}
If you encounter any issues during installation, check our troubleshooting guide or contact our support team.
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