SDK de cliente de configuración de apps para Android
El servicio App Configuration proporciona el SDK de cliente Android para integrarse con la aplicación Android escrita en el lenguaje de programación Kotlin o Java.
Requisitos previos
A continuación se muestran los requisitos previos para utilizar el SDK del servicio App Configuration para Android:
- API de Android nivel 22 o posterior
- Android Studio
- Gradle
Integración del SDK del cliente para la app Android escrita en Kotlin
El servicio App Configuration proporciona el SDK de cliente de Android para integrarse con la aplicación Android. Puede evaluar los valores de su propiedad y distintivo de característica integrando el SDK.
-
Instale el SDK utilizando una de las opciones siguientes:
- Descargue e importe el paquete en el proyecto de Android Studio.
- Obtenga el paquete a través de Gradle añadiendo:
-
Añada la dependencia de SDK de cliente de Android de App Configuration al archivo
build.gradlea nivel de proyecto.repositories { mavenCentral() } -
Añada la dependencia de SDK de cliente Android de App Configuration al archivo
build.gradlea nivel de módulo.dependencies { implementation "com.ibm.cloud:appconfiguration-android-sdk:0.3.1" }
-
-
Configure el archivo
AndroidManifest.xmlpara el permiso de Internet.<uses-permission android:name="android.permission.INTERNET"/> -
Inicialice el 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)Donde:
region- Nombre de la región donde se crea la instancia del servicio App Configuration. Consulte aquí la lista de lugares compatibles. Por ejemplo:us-south,au-syd, etc.guid: GUID del servicio App Configuration. Obténgalo de la sección de credenciales de servicio del panel de control.apikey: Clave de API del servicio App Configuration. Obténgalo de la sección de credenciales de servicio del panel de control.collectionId: Id de la recopilación creada en la instancia de servicio de App Configuration en la sección Recopilaciones.environmentId: Id del entorno creado en la instancia de servicio Configuración de apps en la sección Entornos.
-
Establecer escucha para los cambios de datos de características o propiedades
appConfiguration.registerConfigurationUpdateListener(object : ConfigurationUpdateListener { override fun onConfigurationUpdate() { // ADD YOUR CODE } })
Ejemplos para utilizar API relacionadas con características y propiedades para la aplicación Android escrita en Kotlin
-
Obtener una única característica
val feature: Feature? = appConfiguration.getFeature("featureId") -
Obtener todas las características
val features: HashMap<String, Feature>? = appConfiguration.getFeatures(); -
Evaluación de características
Puede utilizar el método
feature.getCurrentValue()para evaluar el valor del distintivo de característica. Pase unentityIdexclusivo como parámetro para realizar la evaluación de distintivos de características. Si el distintivo de característica se configura con segmentos en el servicio App Configuration, puede establecer los valores de atributos como 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) } -
Obtener una única propiedad
val property: Property? = appConfiguration.getProperty("propertyId") -
Obtener todas las propiedades
val properties: HashMap<String, Property>? = appConfiguration.getProperties(); -
Evaluación de propiedades
Puede utilizar el método
property.getCurrentValue()para evaluar el valor de la propiedad. Pase unentityIdexclusivo como parámetro para realizar la evaluación de propiedades. Si la propiedad se configura con segmentos en el servicio App Configuration, puede establecer los valores de atributos como 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)
Tipos de datos soportados
App Configuration configura el indicador de característica y las propiedades en los siguientes tipos de datos: Booleano, Numérico, Cadena. El tipo de datos String puede tener el formato de una cadena de texto, JSON o YAML. En consecuencia, el SDK procesa cada formato tal como se muestra en la Tabla 1.
| Valor de característica o propiedad | Tipo de datos | Formato de datos | Tipo de datos devueltos por getCurrentValue() |
Salida de ejemplo |
|---|---|---|---|---|
true |
BOOLEAN | no aplicable | java.lang.Boolean |
true |
25 |
NUMERIC | no aplicable | java.lang.Integer |
25 |
| "un texto de serie" | 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:
|
Distintivo de característica
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)
Propiedad
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)
-
Forzar la obtención de las configuraciones del servidor.
appConfiguration.fetchConfigurations()
Integración del SDK del cliente para la app Android escrita en Java
El servicio App Configuration proporciona el SDK de cliente de Android para integrarse con la aplicación Android. Puede evaluar los valores de su propiedad y distintivo de característica integrando el SDK.
-
Instale el SDK utilizando una de las opciones siguientes:
- Descargue e importe el paquete en el proyecto de Android Studio.
- Obtenga el paquete a través de Gradle añadiendo:
-
Añada la dependencia de SDK de cliente de Android de App Configuration al archivo
build.gradlea nivel de proyecto.repositories { mavenCentral() } -
Añada la dependencia de SDK de cliente Android de App Configuration al archivo
build.gradlea nivel de módulo.dependencies { implementation "com.ibm.cloud:appconfiguration-android-sdk:0.3.1" }
-
-
Configure el archivo
AndroidManifest.xmlpara el permiso de Internet.<uses-permission android:name="android.permission.INTERNET"/> -
Integre Kotlin en su proyecto Java con estos pasos:
-
Añada el plug-in de Kotlin Gradle al nivel de módulo
build.gradledependencies { classpath "com.android.tools.build:gradle:4.1.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } -
Añada el plugin
kotlin-androidal nivel de appbuild.gradleplugins { id 'com.android.application' id 'kotlin-android' }
-
-
Inicialice el 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");Donde:
region: nombre de región donde se crea la instancia de servicio. UtiliceAppConfiguration.REGION_US_SOUTHpara Dallas,AppConfiguration.REGION_US_EASTpara Washington DC,AppConfiguration.REGION_EU_GBpara Londres yAppConfiguration.REGION_AU_SYDpara Sídney.guid: GUID del servicio App Configuration. Obténgalo de la sección de credenciales de servicio del panel de control.apikey: Clave de API del servicio App Configuration. Obténgalo de la sección de credenciales de servicio del panel de control.collectionId: Id de la recopilación creada en la instancia de servicio de App Configuration.environmentId- ID del entorno creado en la instancia de servicio de App Configuration en la sección Entornos.
-
Escuchar los cambios de características
appConfiguration.registerConfigurationUpdateListener(new ConfigurationUpdateListener() { @Override public void onConfigurationUpdate() { // ADD YOUR CODE } });
Ejemplos de uso de API relacionadas con propiedades y características para aplicaciones Android escritas en Java
Consulte los ejemplos para utilizar las API relacionadas con características y propiedades.
-
Obtener una única característica
Feature feature = appConfiguration.getFeature("featureId"); -
Obtener todas las características
HashMap<String,Feature> features = appConfiguration.getFeatures(); -
Evaluación de características
Puede utilizar el método
feature.getCurrentValue()para evaluar el valor del distintivo de característica. Pase unentityIdexclusivo como parámetro para realizar la evaluación de distintivos de características. Si el distintivo de característica se configura con segmentos en el servicio App Configuration, puede establecer los valores de atributos como 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; } } -
Obtener una única propiedad
Property property = appConfiguration.getProperty("propertyId"); -
Obtener todas las propiedades
HashMap<String,Property> properties = appConfiguration.getProperties(); -
Evaluación de propiedades
Puede utilizar el método
property.getCurrentValue()para evaluar el valor de la propiedad. Pase unentityIdexclusivo como parámetro para realizar la evaluación de propiedades. Si la propiedad se configura con segmentos en el servicio App Configuration, puede establecer los valores de atributos como 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);
Tipos de datos soportados
App Configuration configura el indicador de característica y las propiedades en los siguientes tipos de datos: Booleano, Numérico, Cadena. El tipo de datos Serie puede tener el formato de una serie de texto, JSON o YAML. El SDK procesa cada formato en consecuencia, como se muestra en la Tabla 1.
Distintivo de característica
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)
Propiedad
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)
-
Forzar la obtención de las configuraciones del servidor.
appConfiguration.fetchConfigurations()