SDK client App Configuration per Android
Il servizio App Configuration fornisce l'SDK client Android da integrare con la tua applicazione Android scritta in linguaggio di programmazione Java o Kotlin.
Prerequisiti
Di seguito sono riportati i prerequisiti per l'uso dell'SDK del servizio App Configuration per Android:
- Android API livello 22 o successivo
- Android Studio
- Gradle
Integrazione dell'applicazione client SDK per Android scritta in Kotlin
Il servizio App Configuration fornisce l'SDK client Android da integrare con la tua applicazione Android. È possibile valutare i valori della proprietà e dell'indicatore della funzione integrando l'SDK.
-
Installa l'SDK utilizzando una delle opzioni:
- Scarica e importa il pacchetto nel tuo progetto Android Studio.
- Ottieni il pacchetto tramite Gradle aggiungendo:
-
Aggiungi la dipendenza SDK client Android App Configuration al file a livello di progetto
build.gradle.repositories { mavenCentral() } -
Aggiungi la dipendenza SDK client Android App Configuration al file di livello modulo
build.gradle.dependencies { implementation "com.ibm.cloud:appconfiguration-android-sdk:0.3.1" }
-
-
Configurare il file
AndroidManifest.xmlper l'autorizzazione Internet.<uses-permission android:name="android.permission.INTERNET"/> -
Inizializza l'SDK.
import com.ibm.cloud.appconfiguration.android.sdk.AppConfiguration val collectionId = "airlines-webapp" val environmentId = "dev" val appConfigClient = AppConfiguration.getInstance() //application is a member of the AppCompatActivity() class, if you have inherited the //AppCompatActivity() class then you can call the application variable. appConfigClient.init(application, "region", "guid", "apikey") appConfigClient.setContext(collectionId, environmentId)Dove:
region- Nome della regione in cui viene creata l'istanza del servizio App Configuration. Vedere l'elenco delle località supportate qui. Ad esempio:us-south,au-sydecc.guid- GUID del servizio App Configuration. Ottieni questo dalla sezione delle credenziali del servizio del dashboard.apikey- ApiKey del servizio App Configuration. Ottieni questo dalla sezione delle credenziali del servizio del dashboard.collectionId- ID della raccolta creata nell'istanza del servizio App Configuration nella sezione Raccolte.environmentId- ID dell'ambiente creato nell'istanza del servizio App Configuration nella sezione Ambienti.
-
Impostare il listener per le modifiche ai dati della funzione o della proprietà
appConfiguration.registerConfigurationUpdateListener(object : ConfigurationUpdateListener { override fun onConfigurationUpdate() { // ADD YOUR CODE } })
Esempi per l'utilizzo di API relative a proprietà e funzioni per l'app Android scritta in Kotlin
-
Scarica una singola funzione
val feature: Feature? = appConfiguration.getFeature("featureId") -
Scarica tutte le funzionalità
val features: HashMap<String, Feature>? = appConfiguration.getFeatures(); -
Valutazione della funzione
È possibile utilizzare il metodo
feature.getCurrentValue()per valutare il valore dell'indicatore di funzione. Inoltrare unentityIdunivoco come parametro per eseguire la valutazione dell'indicatore della funzione. Se l'indicatore della funzione è configurato con segmenti nel servizio App Configuration, puoi impostare i valori degli attributi come JSONObject.JSONObject entityAttributes = new JSONObject(); try { entityAttributes.put("city", "Bangalore"); entityAttributes.put("country", "India"); } catch (JSONException e) { e.printStackTrace(); } val appConfiguration = AppConfiguration.getInstance() val feature: Feature? = appConfiguration.getFeature("featureId") if (feature?.getFeatureDataType() === Feature.FeatureType.NUMERIC) { val value = feature.getCurrentValue("entityId", entityAttributes) } else if (feature?.getFeatureDataType() === Feature.FeatureType.BOOLEAN) { val value = feature.getCurrentValue("entityId", entityAttributes) } else if (feature?.getFeatureDataType() === Feature.FeatureType.STRING) { val value = feature.getCurrentValue("entityId", entityAttributes) } -
Acquisisci singola proprietà
val property: Property? = appConfiguration.getProperty("propertyId") -
Ottenere tutte le proprietà
val properties: HashMap<String, Property>? = appConfiguration.getProperties(); -
Valutazione proprietà
È possibile utilizzare il metodo
property.getCurrentValue()per valutare il valore della proprietà. Inoltrare unentityIdunivoco come parametro per eseguire una valutazione della proprietà. Se la proprietà è configurata con i segmenti nel servizio App Configuration, puoi configurare i valori degli attributi come un JSONObject.JSONObject entityAttributes = new JSONObject(); try { entityAttributes.put("city", "Bangalore"); entityAttributes.put("country", "India"); } catch (JSONException e) { e.printStackTrace(); } val appConfiguration = AppConfiguration.getInstance() val property: Property? = appConfiguration.getProperty("propertyId") val value = property.getCurrentValue("entityId", entityAttributes)
Tipi di dati supportati
Il servizio App Configuration configura l'indicatore della funzione e le proprietà nei seguenti tipi di dati: Booleano, Numerico, Stringa. Il tipo di dati stringa può avere il formato di una stringa di testo, JSON o YAML. Di conseguenza, l'SDK elabora ogni formato come mostrato nella Tabella 1.
| Valore della funzione o della proprietà | Tipo di dati | Formato dati | Tipo di dati restituiti da getCurrentValue() |
Output di esempio |
|---|---|---|---|---|
true |
BOOLEAN | non applicabile | java.lang.Boolean |
true |
25 |
NUMERIC | non applicabile | java.lang.Integer |
25 |
| "a string text" | STRING | TEXT | java.lang.String |
a string text |
{"firefox": {"name": "Firefox","pref_url": "about:config"}} |
STRING | JSON | org.json.JSONObject |
{"firefox":{"name":"Firefox","pref_url":"about:config"}} |
men:- John Smith- Bill Joneswomen:- Mary Smith- Susan Williams |
STRING | YAML | java.lang.String |
`"men:
|
Indicatore di funzione
val feature: Feature? = appConfiguration.getFeature("json-feature")
feature.getFeatureDataType(); // STRING
feature.getFeatureDataFormat(); // JSON
// Example below (traversing the returned JSONObject)
if (feature != null) {
val result = feature.getCurrentValue(entityId, entityAttributes) as JSONObject
result.get("key") // returns the value of the key
}
val feature: Feature? = appConfiguration.getFeature("yaml-feature")
feature.getFeatureDataType(); // STRING
feature.getFeatureDataFormat(); // YAML
feature.getCurrentValue(entityId, entityAttributes); // returns the stringified yaml (check Table 1)
Proprietà
val property: Property? = appConfiguration.getProperty("json-property")
property.getPropertyDataType(); // STRING
property.getPropertyDataFormat(); // JSON
// Example below (traversing the returned JSONObject)
if (property != null) {
val result = property.getCurrentValue(entityId, entityAttributes) as JSONObject
result.get("key") // returns the value of the key
}
val property: Property? = appConfiguration.getProperty("yaml-property")
property.getPropertyDataType(); // STRING
property.getPropertyDataFormat(); // YAML
property.getCurrentValue(entityId, entityAttributes); // returns the stringified yaml (check above Table 1)
-
Forzare il richiamo delle configurazioni dal server.
appConfiguration.fetchConfigurations()
Integrazione dell'applicazione SDK client per Android scritta in Java
Il servizio App Configuration fornisce l'SDK client Android da integrare con la tua applicazione Android. È possibile valutare i valori della proprietà e dell'indicatore della funzione integrando l'SDK.
-
Installa l'SDK utilizzando una delle opzioni:
- Scarica e importa il pacchetto nel tuo progetto Android Studio.
- Ottieni il pacchetto tramite Gradle aggiungendo:
-
Aggiungi la dipendenza SDK client Android App Configuration al file a livello di progetto
build.gradle.repositories { mavenCentral() } -
Aggiungi la dipendenza SDK client Android App Configuration al file di livello modulo
build.gradle.dependencies { implementation "com.ibm.cloud:appconfiguration-android-sdk:0.3.1" }
-
-
Configurare il file
AndroidManifest.xmlper l'autorizzazione Internet.<uses-permission android:name="android.permission.INTERNET"/> -
Integra Kotlin al tuo progetto Java con questi passi:
-
Aggiungere il plugin Kotlin Gradle al livello Modulo
build.gradledependencies { classpath "com.android.tools.build:gradle:4.1.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } -
Aggiungi il plugin di
kotlin-androidal livello dell'appbuild.gradleplugins { id 'com.android.application' id 'kotlin-android' }
-
-
Inizializza l'SDK.
AppConfiguration appConfiguration = AppConfiguration.getInstance(); appConfiguration.init(getApplication(), "region", "guid", "apikey"); // To start the configuration fetching operation, set the collectionId in the following way. appConfiguration.setContext("collectionId", "environmentId");Dove:
region- Il nome della regione in cui viene creata l'istanza del servizio. UtilizzareAppConfiguration.REGION_US_SOUTHper Dallas,AppConfiguration.REGION_US_EASTper Washington DC,AppConfiguration.REGION_EU_GBper Londra eAppConfiguration.REGION_AU_SYDper Sydney.guid- GUID del servizio App Configuration. Ottieni questo dalla sezione delle credenziali del servizio del dashboard.apikey- ApiKey del servizio App Configuration. Ottieni questo dalla sezione delle credenziali del servizio del dashboard.collectionId- ID della raccolta creata nell'istanza del servizio App Configuration.environmentId- l'ID dell'ambiente creato nell'istanza del servizio App Configuration nella sezione Ambienti.
-
Ascolta le modifiche della funzionalità
appConfiguration.registerConfigurationUpdateListener(new ConfigurationUpdateListener() { @Override public void onConfigurationUpdate() { // ADD YOUR CODE } });
Esempi di utilizzo delle API relative a proprietà e funzioni per app Android scritte in Java
Fare riferimento agli esempi per l'utilizzo delle API relative alla proprietà e alla funzione.
-
Scarica una singola funzione
Feature feature = appConfiguration.getFeature("featureId"); -
Scarica tutte le funzionalità
HashMap<String,Feature> features = appConfiguration.getFeatures(); -
Valutazione della funzione
È possibile utilizzare il metodo
feature.getCurrentValue()per valutare il valore dell'indicatore di funzione. Inoltrare unentityIdunivoco come parametro per eseguire la valutazione dell'indicatore della funzione. Se l'indicatore della funzione è configurato con segmenti nel servizio App Configuration, puoi impostare i valori degli attributi come JSONObject.JSONObject entityAttributes = new JSONObject(); try { entityAttributes.put("city", "Bengaluru"); entityAttributes.put("country", "India"); } catch (JSONException e) { e.printStackTrace(); } AppConfiguration appConfiguration = AppConfiguration.getInstance(); Feature feature = appConfiguration.getFeature("featureId") if(feature != null) switch (feature.getFeatureDataType()) case STRING: String value = (String) feature.getCurrentValue(entityId, entityAttributes); System.out.println(value); break; case BOOLEAN: Boolean boolVal = (Boolean) feature.getCurrentValue(entityId, entityAttributes); System.out.println(boolVal); break; case NUMERIC: Integer intVal = (Integer) feature.getCurrentValue(entityId, entityAttributes); System.out.println(intVal); break; } } -
Acquisisci singola proprietà
Property property = appConfiguration.getProperty("propertyId"); -
Ottenere tutte le proprietà
HashMap<String,Property> properties = appConfiguration.getProperties(); -
Valutazione proprietà
È possibile utilizzare il metodo
property.getCurrentValue()per valutare il valore della proprietà. Inoltrare unentityIdunivoco come parametro per eseguire una valutazione della proprietà. Se la proprietà è configurata con i segmenti nel servizio App Configuration, puoi configurare i valori degli attributi come un JSONObject.JSONObject entityAttributes = new JSONObject(); try { entityAttributes.put("city", "Bengaluru"); entityAttributes.put("country", "India"); } catch (JSONException e) { e.printStackTrace(); } AppConfiguration appConfiguration = AppConfiguration.getInstance(); Property property = appConfiguration.getProperty("propertyId"); String value = (String) property.getCurrentValue(entityId, entityAttributes);
Tipi di dati supportati
Il servizio App Configuration configura l'indicatore della funzione e le proprietà nei seguenti tipi di dati: Booleano, Numerico, Stringa. Il tipo di dati String può avere il formato di una stringa di testo, JSON o YAML. L'SDK elabora ogni formato di conseguenza come mostrato nella Tabella 1.
Indicatore di funzione
Feature feature = appConfiguration.getFeature("json-feature");
feature.getFeatureDataType(); // STRING
feature.getFeatureDataFormat(); // JSON
// Example below (traversing the returned JSONObject)
if (feature != null) {
JSONObject result = (JSONObject) feature.getCurrentValue(entityId, entityAttributes);
result.get("key") // returns the value of the key
}
Feature feature = appConfiguration.getFeature("yaml-feature");
feature.getFeatureDataType(); // STRING
feature.getFeatureDataFormat(); // YAML
feature.getCurrentValue(entityId, entityAttributes); // returns the stringified yaml (check above Table 1)
Proprietà
Property property = appConfiguration.getProperty("json-property");
property.getPropertyDataType(); // STRING
property.getPropertyDataFormat(); // JSON
// Example below (traversing the returned JSONObject)
if (property != null) {
JSONObject result = (JSONObject) property.getCurrentValue(entityId, entityAttributes);
result.get("key") // returns the value of the key
}
Property property = appConfiguration.getProperty("yaml-property");
property.getPropertyDataType(); // STRING
property.getPropertyDataFormat(); // YAML
property.getCurrentValue(entityId, entityAttributes); // returns the stringified yaml (check Table 1)
-
Forzare il richiamo delle configurazioni dal server.
appConfiguration.fetchConfigurations()