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:

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.

  1. 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"
        }
        
  2. Configurare il file AndroidManifest.xml per l'autorizzazione Internet.

    <uses-permission android:name="android.permission.INTERNET"/>
    
  3. 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-syd ecc.
    • 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.
  4. 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 un entityId univoco 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 un entityId univoco 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.

Esempi di uscite
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 Jones
women:
- Mary Smith
- Susan Williams
STRING YAML java.lang.String

`"men:

  • John Smith
  • Bill Jones\women:
  • Mary Smith
  • Susan Williams"`

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.

  1. 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"
        }
        
  2. Configurare il file AndroidManifest.xml per l'autorizzazione Internet.

    <uses-permission android:name="android.permission.INTERNET"/>
    
  3. Integra Kotlin al tuo progetto Java con questi passi:

    • Aggiungere il plugin Kotlin Gradle al livello Modulo build.gradle

      dependencies {
        classpath "com.android.tools.build:gradle:4.1.1"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
      }
      
    • Aggiungi il plugin di kotlin-android al livello dell'app build.gradle

      plugins {
         id 'com.android.application'
         id 'kotlin-android'
      }
      
  4. 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. Utilizzare AppConfiguration.REGION_US_SOUTH per Dallas, AppConfiguration.REGION_US_EAST per Washington DC, AppConfiguration.REGION_EU_GB per Londra e AppConfiguration.REGION_AU_SYD per 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.
  5. 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 un entityId univoco 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 un entityId univoco 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()