Skip to content

1. Introduction

Le PDF du document est disponible |ICI|.

Les exemples du document sont disponibles |ICI|.

1.1. Contexte

Ce document n'est pas destiné à des débutants mais à des utilisateurs ayant une solide expérience de Java. Il utilise les sources suivantes :

  1. Documentation [Reactive Programming] ;
  1. Les fonctions lambda de Java 8 ;
  2. Learning Reactive Programming With Java 8 ;
  3. Java 8 in Action ;

Contrairement à d'autres documents que j'ai pu écrire, ce document s'appuie surtout sur des exemples et approfondit peu la théorie. Cependant, chaque exemple est accompagné d'une explication et il y a une progession logique dans le document.

ReactiveX est un ensemble de bibliothèques facilitant la programmation asynchrone et l'exploitation des données ainsi obtenues :

 
 
 

La bibliothèque Rx a été implémentée dans beaucoup de langages :

 

Nous nous intéressons ici aux bibliothèques suivantes :

  • RxJava pour le monde Java ;
  • RxAndroid, une spécialisation de RxJava pour l'environnement Android ;
  • RxSwing, une spécialisation de RxJava pour l'environnement Swing ;

Les concepts de la programmation réactive sont de prime abord complexes. C'est pourquoi ce document n'est a priori pas destiné aux débutants. Néanmoins, j'ai fait beaucoup d'efforts pour expliquer les codes utilisés et un faux débutant pourra se familiariser avec la programmation réactive avec ce document.

1.2. Les outils utilisés

Les exemples qui suivent ont été testés avec l'environnement de travail suivant :

  • machine Windows 10 pro 64 bits ;
  • JDK 1.8 (paragraphe 1) ;
  • Intellij IDEA Community Edition  (paragraphe 10.4) ;

1.3. Les codes des exemples

Les codes des exemples qui vont suivre peuvent être trouvés |ICI| dans le dossier [dvp/exemples].

 

Le dossier [dvp/exemples] [2] est celui d'un projet Gradle contenant la plupart des exemples de ce document. Il peut être ouvert par tous les IDE supportant le gestionnaire de projets Gradle [http://gradle.org/]. Intellij IDEA le supporte nativement. Pour Eclipse ou Netbeans il faut un plugin. Avec Intellij IDEA Community Edition, on pourra procéder de la façon suivante :

Le projet [exemples] est configuré par le fichier [build.gradle] [4] suivant :


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'
}
  • lignes 18-22 : les dépendances Gradle du projet (les bibliothèques à télécharger) ;
  • ligne 19 : la bibliothèque nécessaire à l'exemple Swing étudié au paragraphe 2 ;
  • ligne 20 : la bibliothèque RxJava ;
  • ligne 21 : une bibliothèque jSON ;
  • lignes 9-12 : les caractéristiques de l'archive Jar produite par la compilation du projet ;

Pour télécharger les dépendances nécessaires au projet, procédez comme suit [1-4] :