This guide will walk you through integrating the Saakuru App wallet into your Android app.
Step 1: Adding Saakuru Mobile SDK to your project
To begin integrating the Saakuru Mobile SDK into your Android application, you need to add the SDK package as a dependency in your project. The SDK package is hosted on Maven Central, making it easy to include in your app using Gradle:
Add the following config to your local properties file:
walletsdk.maven.url=given-by-aag
walletsdk.maven.username=given-by-aag
walletsdk.maven.password=given-by-aag\`
sdk.environment=test (test(testnet), stage(mainnet), prod(mainnet))
sdk.mainnet=depending-on-set-environment (false/true)
sdk.api.client.reference=given-by-aag
sdk.config.url=your-personal-SDK-configuration-url
sdk.key=given-by-aag
sdk.realm=given-by-aag
sdk.api.key.phrase=given-by-aag
Add the following code to your build.gradle file:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
maven { url '<https://www.jitpack.io'> }
maven {
Properties properties = new Properties()
try {
properties.load(new FileInputStream(rootProject.file('local.properties')))
} catch (Exception e) {
println("Failed to load local.properties file.")
}
url properties.getProperty('walletsdk.maven.url')
credentials {
username = properties.getProperty('walletsdk.maven.username')
password = properties.getProperty('walletsdk.maven.password')
}
}
}
}
Add the following code to your app/build.gradle file
implementation 'io.github.aag-ventures:MetaOneSDK:{version}' (latest ver. 1.8.2)
Add mapping to local.properties key values to your app/build.gradle file:
defaultConfig {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// M1 SDK auth realm
buildConfigField("String", "SDK_REALM", "\"${properties["sdk.realm"]}\"")
// M1 SDK environment (dev, test, stage, prod)
buildConfigField("String", "SDK_ENVIRONMENT", "\"${properties["sdk.environment"]}\"")
// Wallet SDK Key (provided by AAG)
buildConfigField("String", "SDK_KEY", "\"${properties["sdk.key"]}\"")
// Client config url
buildConfigField("String", "SDK_CONFIG_URL", "\"${properties["sdk.config.url"]}\"")
// Client reference for API (provided by AAG)
buildConfigField("String", "SDK_API_CLIENT_REFERENCE", "\"${properties["sdk.api.client.reference"]}\"")
// Client Key Phrase for API
buildConfigField("String", "SDK_API_KEY_PHRASE", "\"${properties["sdk.api.key.phrase"]}\"")
}
Step 2: Initializing SDK
Initialize MetaOneSDKManager instance:
metaOneSDKManager = new MetaOneSDKManager(this);
Map your BuildConfig values to sdkConfig object:
SDKConfig sdkConfig = new SDKConfig(BuildConfig.SDK_REALM, BuildConfig.SDK_ENVIRONMENT, BuildConfig.SDK_KEY, BuildConfig.SDK_CONFIG_URL, BuildConfig.SDK_API_CLIENT_REFERENCE, VERSION);
Initialize MetaOne SDK:
metaOneSDKManager.initialize(sdkConfig)
Step 3: Creating User Session
To successfully initialize a user session your back-end integration has to be ready first. Your backend should receive an Authorization token during the initialization request.
Initialize the session by calling:
metaOneSDKManager.login(token, this, callback)
Your session is initialized. You can now use all other functions that require Authorization
Call metaOneSDKManager.setupUserData()
to initialize user profile data
Demo app project
https://github.com/AAG-Ventures/android-sdk-demo