Skip to main content
PESDK/Flutter/Getting Started

Integration into your Flutter application

Quickly integrate PhotoEditor SDK for Flutter into your application.

Free Trial#

Our tech is modified to be used for testing purposes without a license key. To start testing just follow this Get Started guide and leave out the step of entering the commercial license keys. The editor will simply render a watermark over the preview and final results. And in case you need any technical assistance, make sure to reach out to us: https://img.ly/support. We’ll be glad to help.

Requirements#

For this version, the requirements are:

  • Flutter: 1.20.0
  • Dart: 2.12.0
  • iOS: 13
  • Android: 5 (SDK 21)

If your app depends on some older versions of these requirements please have a look at previous versions of the SDK.

Flutter CLI#

Install the Flutter plugin in your project as follows:

flutter pub add photo_editor_sdk

or add it manually to your pubspec.yaml:

dependencies:
photo_editor_sdk: ^3.0.0

Platform specific#

Since the photo_editor_sdk plugin depends on our native PhotoEditor SDK, you need to make some native changes to your Flutter application.

Android#

  1. Add the IMG.LY repository and plugin by opening the android/build.gradle file (not android/app/build.gradle) and changing the following block:

    buildscript {
    - ext.kotlin_version = '1.3.50'
    + ext.kotlin_version = '1.7.21'
    repositories {
    ...
    mavenCentral()
    + maven { url "https://artifactory.img.ly/artifactory/imgly" }
    ...
    }
    dependencies {
    ...
    + classpath 'com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:1.7.21-1.0.8' // Depending on your `kotlin_version` version.
    + classpath 'ly.img.android.sdk:plugin:10.9.0'
    ...
    }
    }

    The KSP version depends on the Kotlin version that you are using. In order to find the correct version, please visit the official KSP release page.

    In order to update PhotoEditor SDK for Android replace the version string 10.9.0 with a newer release.

  2. Still in the android/build.gradle file (not android/app/build.gradle), add these lines at the bottom:

    allprojects {
    repositories {
    maven { url 'https://artifactory.img.ly/artifactory/imgly' }
    }
    }
  3. In the android/app/build.gradle file (not android/build.gradle) you will need to modify the minSdkVersion to at least 21 depending on the version of Flutter that you are using. We also recommend to update the buildToolsVersion to 34.0.0 as well as the compileSdkVersion to 34:

    android {
    - compileSdkVersion flutter.compileSdkVersion
    + compileSdkVersion 34
    + buildToolsVersion "34.0.0"
    ...
    defaultConfig {
    ...
    - minSdkVersion flutter.minSdkVersion
    + minSdkVersion 21
    ...
    }
    ...
    }

    Depending on your stable Flutter SDK version (<= 2.5.0), your android/app/build.gradle file might look a bit different. In this case, please modify it in the following way:

    android {
    - compileSdkVersion 30
    + compileSdkVersion 34
    + buildToolsVersion "34.0.0"
    ...
    defaultConfig {
    ...
    - minSdkVersion 16
    + minSdkVersion 21
    ...
    }
    ...
    }
  4. In the same file, configure PhotoEditor SDK for Android by adding the following lines under apply plugin: "com.android.application":

    apply plugin: 'ly.img.android.sdk'
    apply plugin: 'kotlin-android'
    // Comment out the modules you don't need, to save size.
    IMGLY.configure {
    modules {
    include 'ui:text'
    include 'ui:focus'
    include 'ui:frame'
    include 'ui:brush'
    include 'ui:filter'
    include 'ui:sticker'
    include 'ui:overlay'
    include 'ui:transform'
    include 'ui:adjustment'
    include 'ui:text-design'
    // This module is big, remove the serializer if you don't need that feature.
    include 'backend:serializer'
    // Remove the asset packs you don't need, these are also big in size.
    include 'assets:font-basic'
    include 'assets:frame-basic'
    include 'assets:filter-basic'
    include 'assets:overlay-basic'
    include 'assets:sticker-shapes'
    include 'assets:sticker-emoticons'
    include 'backend:sticker-smart'
    include 'backend:background-removal'
    }
    }