<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=160269078105920&amp;ev=PageView&amp;noscript=1">
This service has been removed!
Service successfully added!
Sign up for our blog, talk to a specialist, or just send us an email

Enlace de datos con Kotlin

Lunes 19 de Noviembre 2018./ Tiempo de Lectura: 3 minutos./ Por Avantica

Todo desarrollador de Android debería conocer y usar Data Binding, una biblioteca que le permite vincular de forma flexible los datos de sus modelos directamente a vistas XML.Mi primera experiencia con esto fue hace aproximadamente  un año mientras trataba de configurar más de 10 fuentes diferentes para la aplicación de Android que estaba desarrollando en ese momento.

Fue entonces que descubrí el lenguaje de programación llamado Kotlin, el

cual es una herramienta poderosa.

En este artículo mostraré  el enfoque que utilicé para mezclar el poder de la vinculación de datos con Kotlin usando un ejemplo simple.

En primer lugar, después de tener un proyecto de Android creado en Android Studio, debemos agregar las dependencias de enlace de datos y Kotlin al archivo build.gradle de nuestra aplicación de esta manera:

//build.gradle
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'

android { 
	...
	dataBinding {
		enabled = true
	}
} 
dependencies {
	... 
	// notice that the compiler version must be the same as our gradle version
	kapt 'com.android.databinding:compiler:2.3.1'
}

Basta con esta  configuración para comenzar a usar enlace de datos con Kotlin. Ahora continuamos avanzando a más viendo el código.

Primero, necesitamos crear un modelo. En este caso, crearemos uno básico como User.kt

 data class User(val name: String, val age: Int)

 

En nuestro activity_main.xml podemos hacer algo como esto: 

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" 
	xmlns:app="http://schemas.android.com/apk/res-auto" 
	xmlns:tools="http://schemas.android.com/tools" >
<!-- Inside the layout tag it is possible to set the data tag in order to set one or many variables. For this example we are having an User property-->
  <data> 
  	<variable name="user" type="com.kuma.sample.User" /> 
  </data>
  <LinearLayout 
  	android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.kuma.sample.MainActivity" > 
    <TextView 
    	android:id="@+id/user_name_text_view" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:padding="16dp" 
        android:text="@{user.name}" 
        tools:text="Name" 
    />
    <TextView 
    	android:id="@+id/user_age_text_view" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:padding="16dp" 
        android:text="@{Integer.toString(user.age)}" 
        tools:text="XX" 
    />
  </LinearLayout>
</layout> 

 

Recuerde siempre establecer su vista xml habitual dentro de la etiqueta <layout> y adjuntarle todas las propiedades "xmlns:". De lo contrario, mostrará un error de compilación, ya que los archivos generados tendrán propiedades duplicadas.

Ahora comparto el enlace:

package com.kuma.sample
import android.databinding.DataBindingUtil import android.os.Bundle import android.support.v7.app.AppCompatActivity import com.kuma.kotlinsteps.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main) val user = User("Kuma", 23) binding.setVariable(BR.user, user) binding.executePendingBindings() } }

 

En ese fragmento de código hay algunas cosas importantes a tener en cuenta:

  1.  Ahora existe una clase llamada ActivityMainBinding, que se autogenera desde activity_main.xml y contiene todas las referencias para usar las vistas que contiene el xml.
  2.  La forma de crear una instancia de ActivityMainBinding es un poco diferente de cómo configuramos el diseño xml para una actividad. 
  3. También hay una nueva clase BR que es algún tipo de clase R secundaria utilizada para almacenar las variables declaradas en la etiqueta de datos del xml. 
  4. Después de configurar la variable para el objeto de enlace, es necesario llamar a executePendingBindings () para establecer los atributos de la variable de usuario a las vistas marcadas. 
  5. Después de compilar esto, podrá ver que los datos se han configurado a su vista sin tener que escribir ningún textView.text = user.name 

 

Queremos conocer tu experiencia como programador y que nos cuentes si lograste implementar o utilizar el enlace de datos con Kotlin y cuán útil resultó esta herramienta con los pasos que te dimos hoy.

Acerca de Avantica

En Avantica contamos con más de 20 de años de experiencia en innovación y tecnológica digital. Buscamos siempre mejorar y simplificar lo que puede parecer muy complejo.

Nuestro enfoque es siempre resolver problemas y encontrar las mejores soluciones. En esta ocasión les mostré un ejemplo sencillo de cómo usar DataBinding dentro de un proyecto Kotlin. En general, nos especializamos en lograr que nuestros clientes cumplan sus objetivos comerciales. Ofrecemos equipos dedicados, aumento de equipo y proyectos individuales para nuestros clientes. Además, utilizamos las mejores metodologías para brindarle los resultados que busca y el mayor valor de retorno a su inversión. No dude en contactarnos. ¡Estamos para servirle!

Iniciemos un proyecto

ANTERIOR
¿Cuál es la clave para garantizar un internet más inclusivo?

TAMBIÉN LE PODRÍA INTERESAR