1. Introduzione
Il PDF del documento è disponibile |QUI|.
Gli esempi nel documento sono disponibili |QUI|.
1.1. Contesto
Questo documento non è destinato ai principianti, ma agli utenti con una solida esperienza in Java. Si avvale delle seguenti fonti:
A differenza di altri documenti che ho scritto, questo si basa principalmente su esempi e approfondisce solo brevemente la teoria. Tuttavia, ogni esempio è accompagnato da una spiegazione e c'è una progressione logica in tutto il documento.
ReactiveX è un insieme di librerie che facilitano la programmazione asincrona e l'elaborazione dei dati risultanti:
![]() |
![]() |
![]() |
La libreria Rx è stata implementata in molti linguaggi:
![]() |
In questa sede ci concentreremo sulle seguenti librerie:
- RxJava per l'ambiente Java;
- RxAndroid, una specializzazione di RxJava per l'ambiente Android;
- RxSwing, una versione di RxJava pensata per l'ambiente Swing;
I concetti della programmazione reattiva sono complessi a prima vista. Ecco perché questo documento non è destinato principalmente ai principianti. Tuttavia, ho fatto un grande sforzo per spiegare il codice utilizzato, e un principiante può familiarizzare con la programmazione reattiva utilizzando questo documento.
1.2. Strumenti utilizzati
Gli esempi seguenti sono stati testati con il seguente ambiente:
- Macchina Windows 10 Pro a 64 bit;
- JDK 1.8 (sezione 1);
- IntelliJ IDEA Community Edition (Sezione 10.4);
1.3. Codice di esempio
Il codice per i seguenti esempi è disponibile |QUI| nella cartella [dvp/examples].
![]() | ![]() |
La cartella [dvp/examples] [2] è un progetto Gradle contenente la maggior parte degli esempi presenti in questo documento. Può essere aperta da qualsiasi IDE che supporti il gestore di progetti Gradle [http://gradle.org/]. IntelliJ IDEA lo supporta in modo nativo. Per Eclipse o NetBeans è necessario un plugin. Con IntelliJ IDEA Community Edition, è possibile procedere come segue:
![]() | ![]() |
Il progetto [examples] è configurato dal seguente file [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'
}
- righe 18–22: le dipendenze Gradle del progetto (librerie da scaricare);
- riga 19: la libreria richiesta per l'esempio Swing discusso nella sezione 2;
- riga 20: la libreria RxJava;
- riga 21: una libreria JSON;
- righe 9–12: le caratteristiche dell'archivio JAR prodotto dalla compilazione del progetto;
Per scaricare le dipendenze necessarie per il progetto, segui questi passaggi [1-4]:
![]() | ![]() |









