Seguridad

Configuración remota de AppGallery Connect: agregue fácilmente diversión a su aplicación

Como desarrollador de aplicaciones, es posible que su aplicación deba proporcionar a los usuarios contenido nuevo.
Y funciones para mantener su interés y personalizar la experiencia de la aplicación para que se adapte
Las necesidades de todos, aquí es donde entra en juego la configuración remota.

En resumen, la configuración remota de AppGallery Connect puede:

La modificación de parámetros a través de la nube permite que las aplicaciones instaladas en el dispositivo obtengan periódicamente actualizaciones de parámetros de la nube sin necesidad de que los usuarios actualicen la aplicación, lo que acelera el lanzamiento de la aplicación.

Este blog le mostrará cómo cambiar de aplicación usando la configuración remota
Funciones basadas en configuraciones remotas.Utilice la galería de aplicaciones de Huawei Conéctese con nosotros
Puede aprovechar los atributos del usuario y las condiciones remotas de forma rápida y sencilla.
Modifica parámetros desde la nube.

Como una comparación rápida con la cadena de herramientas comúnmente utilizada por los desarrolladores de Android. Puede pensar en AppGallery Connect (AGC) como el equivalente de Firebase. Entonces, cuando hablo de la consola AGC, puedes compararla con la consola de Firebase. En ambas consolas, puede acceder a análisis, análisis de fallos, configuración remota, notificaciones push con enlaces profundos, mensajería en la aplicación y más.

Si ha utilizado la configuración remota de Firebase, la configuración remota de Huawei AGC también es fácil de usar. Si no ha usado Firebase, ¡está bien! La configuración remota de AGC tiene una API intuitiva y sencilla. La aplicación de muestra escrita para esta publicación de blog está disponible en la ubicación de código abierto en GitHub.

Con eso … comencemos … ¡empecemos!

Inicie sesión / regístrese en AppGallery Connect

Lo primero que debe hacer es registrarse y / o iniciar sesión en AppGallery Connect y verificar su identidad (puede demorar hasta 3 días, así que planifique). Asegúrese de crear una aplicación y un proyecto de trabajo. Si no lo ha hecho antes, puede leer más al respecto aquí.

Una vez completado, podrá acceder a la consola como se muestra a continuación:

Cree aplicaciones que utilicen la configuración remota

Construiremos una aplicación que usa configuración remota para decidir cómo diseñar su interfaz de usuario. AGC Academy tiene una explicación en video aquí. Este es un caso de uso típico de configuración remota. Tal vez sea más común que cambie toda la función o cambie la ruta de navegación para activar y desactivar la función, pero para mantener el tutorial simple, cambiaremos algo de texto y cambiaremos el fondo color.

Utilice la aplicación de configuración remota una vez finalizada.

A través de la configuración remota, se pueden aplicar una variedad de funciones, como varios filtros, administración de versiones históricas y actualizaciones en tiempo real.

En el análisis, tiene algo llamado «atributos de usuario». Estos son detalles específicos sobre los usuarios o los comportamientos de los usuarios que pueden ayudarlo a distinguir y aislar grupos de usuarios. AGC Analytics tiene un atributo de usuario incorporado llamado «País / Región», que le permite agrupar usuarios según la dirección IP del hardware de red al que se conectó el teléfono por última vez.

Por ejemplo, suponga que tiene una aplicación de fútbol. Puede mostrar la bandera escocesa a los seguidores «de» Escocia y la bandera británica a los seguidores de Inglaterra en la interfaz de usuario de la pantalla de inicio. Esto puede causar algunos casos de borde de IP en la frontera entre Escocia e Inglaterra. Esto es un problema, pero el mayor problema serán los españoles que acaban de visitar Escocia de vacaciones. Podemos usar algo llamado atributos de usuario personalizados para resolver este problema.

La creación de un atributo de usuario personalizado para «país / región» le permitirá determinar de dónde proviene esta persona basándose en algo que no sea IP. En nuestra demostración, tenemos un EditText en la pantalla donde puede ingresar el nombre del país / región (en el mundo real, no ingresaría el nombre, pero puede inferirse de la ISO de SIM activa o la configuración regional del dispositivo, O usted puede permitir que los usuarios lo seleccionen de una lista.

Configurar los ajustes de la consola de configuración remota

Para crear este atributo de usuario personalizado, vaya a AppGallery Connect Console> Huawei Analytics> Atributos de usuario y presione «Crear». Luego se le pedirá que proporcione una identificación, nombre y descripción. El Nombre y la Descripción son solo para uso humano, y la ID se utilizará como clave para que podamos leer / escribir este atributo de usuario desde nuestra aplicación.

Establezca los siguientes valores:

  • Id = «país»
  • Nombre = «país»
  • Description = «Determinamos el país en el que se encuentran actualmente».

Cuando termine, se verá así:

Ahora hemos creado un atributo de usuario personalizado. Podemos usarlo para filtrar desde nuestra configuración remota.

Vaya a la consola de AppGallery Connect> Crecer> Configuración remota nuevamente, seleccione la pestaña «Condiciones» y presione el botón «Nueva condición». A continuación, se le pedirá que proporcione condiciones e instrucciones A continuación se muestra una lista desplegable donde puede seleccionar las condiciones que se utilizarán para el filtro. Establezca los siguientes valores:

  • Condición = «país del Reino Unido»
  • Description = «Verdadero cuando el atributo de usuario de país / región se establece en Reino Unido».
  • Seleccione = «Propiedades del usuario»> «País / Región»> «Igualdad»> «Reino Unido»

Cuando termine, se verá así:

Haga clic en «Guardar» y vuelva a la pestaña «Parámetros».

Crearemos dos parámetros, el primero es el conmutador de configuración remota estándar, será el conjunto booleano verdadero o falso en la consola. El segundo también será un cambio booleano, pero verdadero o falso se determinará en función de la condición que acabamos de crear.

Presione el botón «Nuevo parámetro» para crear estos valores. Luego se le pedirá que proporcione el «parámetro», que es el nombre de la clave que usaremos para referirnos a este parámetro de configuración remota en nuestra aplicación. Se puede utilizar el «valor predeterminado» de JSON o cualquier tipo de valor primitivo (como String, Int, etc.). También hay una «descripción» para recordar el propósito de este valor.

Establezca los siguientes valores para el primer conmutador de función:

  • Parámetros = «enable_feature_1234_cool» (Intente utilizar un esquema de nomenclatura universal)
  • Valor predeterminado = «falso»
  • Description = «Habilitar la característica 1234 es verdadera. Esto abrirá esta nueva característica interesante».

Configure los siguientes valores para el segundo selector de función:

  • Parámetros = «enable_feature_1235_theme» (Intente utilizar un esquema de nomenclatura universal)
  • Valor predeterminado = «falso»
  • Description = «Habilitar la función 1235 es verdadera. Esto activará la función del tema».
  • Agregar valor de condición> condición = «país del Reino Unido», valor = «verdadero»

Cuando termine, se verá así:

Configurar e inicializar la aplicación

Ahora que toda la configuración de la consola está completa, ¡podemos continuar creando la aplicación de Android! Si aún no ha agregado el servicio AppGallery Connect a su aplicación de Android (al incluir el complemento y el archivo json del servicio), puede leer más al respecto aquí. Puede reconocer este patrón. Este es el mismo proceso que debe realizar la primera vez que agrega Firebase a un proyecto. El proyecto de muestra también se configura de esta manera, agregue el complemento agconnect para analizar json su configuración.

/build.gradle:

buildscript  
  repositories  
    ...
    maven url 'https://developer.huawei.com/repo/' 
   


buildscript  
  dependencies  
    ...
    classpath 'com.huawei.agconnect:agcp:1.5.2.300'
   

/app/build.gradle:

dependencies {
  implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
  ...

Crea una configuración remota en la aplicación

Para usar la configuración remota con atributos de usuario, debe agregar la configuración remota y el análisis de alta como dependencias a su proyecto:

dependencies {
  ...
  implementation 'com.huawei.agconnect:agconnect-remoteconfig:1.5.2.300'
  implementation 'com.huawei.hms:hianalytics:6.0.0.300' 
  ...

A continuación, creamos un diseño que nos permite mostrar y editar los atributos de usuario de «país / región». Agregamos un TextView para mostrar el estado de nuestra función 1234 y un botón para forzar una actualización de la configuración remota actualmente adquirida. Nos aseguramos de que la vista raíz tenga una ID para que podamos cambiar su color de fondo.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <TextView
        android:id="@+id/text_explanation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This would usually be a value hidden from the user. But for the sake of the demo you can change it here. Refresh the config after changing the value. User country:"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="User country (try 'Spain' or 'UK'):"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@id/text_explanation">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/edit_text_one"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Spain" />

    </com.google.android.material.textfield.TextInputLayout>

    <TextView
        android:id="@+id/text_view_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onRefreshConfigClick"
        android:text="Refresh Remote Configuration"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

El diseño XML que acabamos de crear.

Para usar la configuración remota, necesitamos una instancia AGConnectConfig (api doc), y get / set UserAttributes usamos un ejemplo HiAnalyticsInstance (Documentación de API).

private lateinit var config: AGConnectConfig
private lateinit var analytics: HiAnalyticsInstance

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    config = AGConnectConfig.getInstance()
    analytics = HiAnalytics.getInstance(this)
    ...

Cuando se carga la interfaz de usuario, queremos que EditText muestre las propiedades del usuario del país actual, y cuando se presiona el botón de actualización, queremos guardar el último país ingresado. En HiAnalyticsInstance API, UserAttribute se llama UserProfile.

val currentCountry = analytics.getUserProfiles(false)["country"] ?: "Spain"

val editTextOne: EditText = findViewById(R.id.edit_text_one)
val currentCountry = editTextOne.text.toString()
// This sets the custom UserAttribute 'country' we created in the console
analytics.setUserProfile("country", currentCountry)

Ahora lo configuramos cuando cambia el país / región del usuario, lo que significa que si obtenemos la configuración remota de «enable_feature_1235_theme», considerará su país / región cuando nos envíe verdadero o falso. Por el contrario, si obtenemos «enable_feature_1234_cool», siempre devolverá «falso» porque lo configuramos explícitamente como «falso» en la consola. Así es como se obtienen estos dos valores booleanos mediante la configuración remota:

val enableFeature = config.getValueAsBoolean("enable_feature_1234_cool")
val textView: TextView = findViewById(R.id.text_view_one)
if (enableFeature) 
    textView.text = "Feature Enabled! (Go to the console to toggle this)"
 else 
    textView.text = "Feature Disabled! (Go to the console to toggle this)"


val enableFeature1235 = config.getValueAsBoolean("enable_feature_1235_theme")
val contentMain: ViewGroup = findViewById(R.id.content_main)
if (enableFeature1235) 
 contentMain.setBackgroundColor(Color.parseColor("#22FF0000"))
 Toast.makeText(this, "Welcome to the UK!", Toast.LENGTH_SHORT).show()
 else 
 contentMain.setBackgroundColor(Color.parseColor("#2200FF00"))
 Toast.makeText(this, "Goodbye!", Toast.LENGTH_SHORT).show()

Finalmente, forzaremos una actualización de la configuración remota cuando se presione el botón. Por lo general, esto no es necesario en las aplicaciones de producción, porque tendrá un ciclo de actualización razonable y la biblioteca buscará automáticamente actualizaciones de esta configuración. Pero con fines de demostración, queremos forzar una actualización para que podamos ver el impacto de cambiar el país.

config.fetch(0) // a value of 0 here is for DEBUGGING ONLY, delete for prod (giving a 12 hour refresh period)
    .addOnSuccessListener 
        config.apply(it)
        Log.d(TAG, "Applied")
        updateUIBasedOnRemoteConfig()
    

En conclusión

¡Eso es todo! Todo el código que ve arriba se puede encontrar en GitHub aquí. Ha podido usar la consola de AppGallery Connect para crear configuraciones remotas que consideran atributos de usuario personalizados y usarla para activar y desactivar funciones en la aplicación. Es compatible con la integración de SDK y puede acceder fácilmente al servicio con solo unas pocas líneas de código.

Además, el servicio AppGallery Connect se puede utilizar para Android, Web,
Y aplicaciones rápidas con marcos multiplataforma, incluido Flutter,
Cordova y React Native.

Aviso de divulgación completo: escribí este artículo en colaboración con Huawei, y están felices de anunciar AppGallery Connect Academy y fomentar el uso de AppGallery Connect.

Huawei AppGallery Connect tiene una academia de capacitación aquí que proporciona artículos escritos, documentos y explicaciones en video para ayudarlo a dominar estas poderosas funciones. Hay muchas más, incluidas pruebas AB, mensajería en la aplicación, enlaces profundos de aplicaciones y más formas de usar la configuración remota.

LEER  Mensaje del gobierno federal: ¡Este correo electrónico es una estafa!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba