Skip to content

1. Introducción

El PDF del documento está disponible |AQUÍ|.

Los ejemplos del documento están disponibles |AQUÍ|.

1.1. Contexto

Este documento no está destinado a principiantes, sino a usuarios con una sólida experiencia en Java. Utiliza las siguientes fuentes:

  1. Documentación sobre [programación reactiva];
  1. Funciones lambda de Java 8;
  2. Aprender programación reactiva con Java 8;
  3. Java 8 en acción;

A diferencia de otros documentos que he escrito, este se basa principalmente en ejemplos y solo aborda brevemente la teoría. Sin embargo, cada ejemplo va acompañado de una explicación, y hay una progresión lógica a lo largo de todo el documento.

ReactiveX es un conjunto de bibliotecas que facilitan la programación asíncrona y el procesamiento de los datos resultantes:

 
 
 

La biblioteca Rx se ha implementado en muchos lenguajes:

 

En este artículo nos centramos en las siguientes bibliotecas:

  • RxJava para el mundo Java;
  • RxAndroid, una especialización de RxJava para el entorno Android;
  • RxSwing, una especialización de RxJava para el entorno Swing;

Los conceptos de la programación reactiva son complejos a primera vista. Por eso, este documento no está destinado principalmente a principiantes. No obstante, me he esforzado mucho por explicar el código utilizado, y un principiante puede familiarizarse con la programación reactiva utilizando este documento.

1.2. Herramientas utilizadas

Los siguientes ejemplos se han probado en el siguiente entorno:

  • Equipo con Windows 10 Pro de 64 bits;
  • JDK 1.8 (sección 1);
  • IntelliJ IDEA Community Edition (Sección 10.4);

1.3. Código de ejemplo

El código de los siguientes ejemplos se puede encontrar |AQUÍ| en la carpeta [dvp/examples].

 

La carpeta [dvp/examples] [2] es un proyecto Gradle que contiene la mayoría de los ejemplos de este documento. Se puede abrir con cualquier IDE que admita el gestor de proyectos Gradle [http://gradle.org/]. IntelliJ IDEA lo admite de forma nativa. Para Eclipse o NetBeans, se necesita un complemento. Con IntelliJ IDEA Community Edition, puedes proceder de la siguiente manera:

El proyecto [ejemplos] está configurado mediante el siguiente archivo [build.gradle] [4]:


buildscript {
    repositories {
        mavenCentral()
    }
}
 
apply plugin: 'java'
 
jar {
    baseName = 'exemples-01'
    version = '0.0.1-SNAPSHOT'
}
 
repositories {
    mavenCentral()
}
 
dependencies {
    compile('io.reactivex:rxswing:0.25.0')
    compile('io.reactivex:rxjava:1.1.3')
    compile('com.fasterxml.jackson.core:jackson-databind:2.7.3')
}
 
task wrapper(type: Wrapper) {
    gradleVersion = '2.9'
}
  • líneas 18–22: las dependencias de Gradle del proyecto (bibliotecas que se deben descargar);
  • línea 19: la biblioteca necesaria para el ejemplo de Swing comentado en la sección 2;
  • línea 20: la biblioteca RxJava;
  • línea 21: una biblioteca JSON;
  • líneas 9-12: las características del archivo JAR generado al compilar el proyecto;

Para descargar las dependencias necesarias para el proyecto, sigue estos pasos [1-4]: