loyalty_core_flutter 0.1.0 copy "loyalty_core_flutter: ^0.1.0" to clipboard
loyalty_core_flutter: ^0.1.0 copied to clipboard

A flutter plug-in for the native Loyalty Core library (Android and iOS).

loyalty_flutter #

A flutter plug-in for the native Loyalty library (Android and iOS).

Installation #

Add dependency to your pubspec.yaml file #

Add loyalty_flutter as a dependency in your pubspec.yaml file.

Android #

Open the android project inside the android folder of your project in Android studio.

1. Add token to get Terra libraries

Add TekoGoogleRegistryToken to the local.properties file (contact trung.cs@teko.vn to get the token).

// android/local.properties

TekoGoogleRegistry.password=<your-token>

In project build.grade (android/build.gralde file). Add the following code:

// android/build.gradle
allprojects {
    repositories {
        ...

        Properties properties = new Properties()
        properties.load(project.rootProject.file('local.properties').newDataInputStream())

        maven {
            setUrl("https://asia-southeast1-maven.pkg.dev/teko-development/teko-mobile-sdks")

            authentication {
                basic(BasicAuthentication)
            }

            credentials {
                username = "_json_key_base64"
                password = properties.getProperty('TekoGoogleRegistry.password')
            }
        }
    }
}

2. Enable dataBinding and multiDex for the app module

Add some line below to the build.gradle of app module (android/app/build.gradle file).

//...

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
// add line below
apply plugin: 'kotlin-kapt'

//...

android {
  //...

  defaultConfig {
    //...

    multiDexEnabled true  // Add this line
  }

  // Add 3 lines below to enable dataBinding
  buildFeatures {
      dataBinding true
  }

  //...

}

iOS #

Open the ios project insdie the android folder of your project in xcode.

1. Setup github access token for accessing Teko iOS frameworks

Please contact Terra team to get the token

Add new environment variable to your computer with the following key: GITHUB_USER_TOKEN.

2. Set up the Podfile

  1. At the beginning of your Podfile, define the source:
// on local machine
source 'https://github.com/teko-vn/Specs-ios.git'

// on CI environment
source 'https://' + ENV['GITHUB_USER_TOKEN'] + '@github.com/teko-vn/Specs-ios.git'
  1. Configure targets for frameworks
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      # set valid architecture
      config.build_settings['VALID_ARCHS'] = 'arm64 armv7 armv7s x86_64'

      # Xcode12 have to exclude arm64 for simulator architecture
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

      config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
    end
  end
end

Normally, in the Podfile there is the following code:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

In this case, we update the existing code to:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)

    # new code
    target.build_configurations.each do |config|
      # set valid architecture
      config.build_settings['VALID_ARCHS'] = 'arm64 armv7 armv7s x86_64'

      # Xcode12 have to exclude arm64 for simulator architecture
      config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"

      config.build_settings["BUILD_LIBRARY_FOR_DISTRIBUTION"] = "YES"
    end
    # end of new code
  end
end

Note: please do not commit <your_token_secret> to github or it will be revoked

Library usage #

Get an TerraLoyalty instance #

Static Method: `getInstance(String appName) → Future

Should be called in initialize phase of your app and must be called after initilizing TerraApp successful.

Get the configuration of Loyalty Service #

Method: Future<Result<LoyaltyConfiguration, Exception>> getConfiguration()

Register new loyalty member #

Method: Future<Result<RegisterMemberResult, Exception>> registerMember( RegisterMemeberRequest request)

Get the configuration of Loyalty Service #

Method: Future<Result<LoyaltyConfiguration, Exception>> getConfiguration()

Get membership QR content #

Method: Future<Result<EncryptedMemCode, Exception>> getMembershipQr()

Get the current member information #

Method: Future<Result<MemberInfo, Exception>> getMemberInfo(MemberInfoRequest request)

Get all the loylaty transactions of current memeber #

Method: Future<Result<TransactionHistory, Exception>> getTransactionHistory( TransactionHistoryRequest request)

Get loyalty network config #

Method: Future<Result<NetworkConfigResult, Exception>> getNetworkConfig()

Get current clientID #

Method: Future<Result<String, Exception>> getClientId()

Assign member card id to the member #

Method: Future<Result<void, Exception>> assignMemberCardId(String memberId, String memberCardId)

0
likes
130
pub points
0%
popularity

Publisher

unverified uploader

A flutter plug-in for the native Loyalty Core library (Android and iOS).

Repository

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on loyalty_core_flutter