Publicado en Android

Solventar problemas del Kotlin Plugin 4.2 en Android Studio


Algo se rompe cuando hay una actualización del Gradle o no acaba de ir fino como se espera, si has decidido en actualizar android Studio y tambien actualizar el gradle pero luego al crear build te devuelve el error

Kotlin version that is used for building with Gradle (1.5.0) differs from the one bundled into the IDE plugin (1.5.0-release-764)

Sigue leyendo “Solventar problemas del Kotlin Plugin 4.2 en Android Studio”
Publicado en Android

Usando el plugin Safe args para gestionar argumentos


Google con la presentación del componente de Navegación que forma parte del Android Jetpack (AndroidX), saco un plugin Gradle para gestionar los argumentos en las actividades, fragmentos de forma segura.

Preparativos

Añadir al build.gradle del proyecto en dependencies

dependencies {
    classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0-rc01"
}

para usar el complemento en el archivo app.gradle de nivel de módulo

apply plugin: 'androidx.navigation.safeargs'

Definir argumentos

En la ventana de diseño de navegación del controlller en la parte derecha hay las pestaña argumentos, allí se puede ir añadiendo los argumentos que permite la actividad, fragmento o dialogo

También se puede realizar de forma manual editando el navigation/navigation_main.xml

<fragment ...>
<argument
    android:name="title"
    android:defaultValue="null"
    app:argType="string" />
</fragment>

Enviar argumentos

Para enviar los argumentos se realiza parecido a lo que haciamos con Intent, se deben cargar los datos y asignar el argumento portador

val actionDetail = HomeFragmentDirections.ActionDetail()
actionDetail.setTitle(item)
Navigation.findNavController(view).navigate(actionDetail)

Recibir argumentos

Para recibir los argumentos usando el Navigation controller y usando el plugin Safe Args se debe crear una variable global para la gestión de argumentos

private val safeArgs: DetailFragmentArgs by this.navArgs()

Luego podemos usar con seguridad la lectura de datos

val title = safeArgs.title

Enlaces

Más información en Safe Args – Gradle Plugin