aware

Flutter plugin for AIQAware


Prerequisite

AIQAware studio

  • Create project in AIQAware studio

  • Create android, ios app in project

  • Get App ID, API key, App package(bundle) name

  • For iOS, you have to put Apple team ID, APNs key ID, APNs auth key to studio. Those can be found Apple developer program

Apple team IDMembership - Team ID
APNs key IDCertificates, Identifiers & Profiles - Keys - APNs Key's Key ID
APNs auth keyAPNs key ID's value (body of .p8 file)

Android

  1. Create aware-client-config.json in src/main/assets and put information

     {
       "version": 1,
       "project_id": "AAAAAAAAAA",
       "app_id": "AAAAAAAAAA",
       "api_key": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
     }
    
  2. Add permissions to AndroidManifest.xml

     <!-- Required Permissions to Use the SDK -->
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <!-- targetSDKVersion is Android API Level 28 or higher -->
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    

More information, see simple app

iOS

  1. Create AwareClient-Info.plist in Runner and put information (Be sure to create in xcode)

     <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
     <plist version="1.0">
     <dict>
       <key>API_KEY</key>
       <string>AAAAAAAAAAAAAAAAAAAAAAAAAAA</string>
       <key>APP_ID</key>
       <string>AAAAAAAAAA</string>
       <key>PROJECT_ID</key>
       <string>AAAAAAAAAA</string>
     </dict>
     </plist>
    
  2. Add Capabilities

    • background modes

      • Location updates
      • Background fetch
      • Remote notifications
    • wifi information

    • push notification

  3. Add permission strings to plist

       Privacy - Location When In Use Usage Description
       Privacy - Location Always Usage Description
       Privacy - Location Always and When In Use Usage Description
       Privacy - Media Library Usage Description
       Privacy - Photo Library Usage Description
       Privacy - Microphone Usage Description
       Privacy - Calendars Usage Description
       Privacy - Motion Usage Description
    

Prerequisite for development

  1. Go to example directory

  2. Build Android, iOS projects

For Android

flutter build apk

For iOS

flutter build ios --no-codesign

Develop plugins on Android

  • Open example/android project in Android Studio.

  • You can see aware, android projects.

  • android is example project

  • aware is plugin project

Develop plugins on iOS

  • Open example/ios/Runner.xcworkspace in xcode

  • You can see Runner, Pods

  • Runner is example project

  • Pods/DevelopmentPods/../../example/ios/.symlink/plugins/aware/ios/Classes is plugin project

Libraries

aware