Skip to content

1. Вступ

PDF цього документа доступний за посиланням |TYT|.

Приклади з документа доступні за посиланням |TYT|.

1.1. Contexte

Цей документ призначений не для початківців, а для користувачів, які мають солідний досвід роботи з Java. У ньому використовуються такі джерела:

  1. Документація [Reactive Programming];
  1. Лямбда-функції Java 8;
  2. «Java 8 in Action»;

На відміну від інших документів, які я писав, цей документ базується переважно на прикладах і не заглиблюється в теорію. Проте кожен приклад супроводжується поясненням, а сам документ має логічну послідовність.

ReactiveX — це набір бібліотек, що полегшують асинхронне програмування та роботу з отриманими даними:

 
 
 

Бібліотека Rx реалізована на багатьох мовах:

 

Тут нас цікавлять такі бібліотеки:

  • RxJava для середовища Java;
  • RxAndroid — спеціалізація RxJava для середовища Android;
  • RxSwing — спеціалізація RxJava для середовища Swing;

Концепції реактивного програмування на перший погляд є складними. Тому цей документ, в принципі, не призначений для початківців. Проте я доклав чимало зусиль, щоб пояснити використані коди, і навіть «початківець-початківець» зможе ознайомитися з реактивним програмуванням за допомогою цього документа.

1.2. Використані інструменти

Наведені нижче приклади було протестовано в такому робочому середовищі:

  • комп’ютер із Windows 10 Pro 64-біт;
  • JDK 1.8 (параграф 1);
  • Intellij IDEA Community Edition (параграф 10.4);

1.3. Код прикладів

Код прикладів, наведених нижче, можна знайти |ICI| у папці [dvp/exemples].

 

Папка [dvp/exemples] [2] — це папка проекту Gradle, що містить більшість прикладів з цього документа. Її можна відкрити в будь-якому IDE, що підтримує менеджер проектів Gradle [http://gradle.org/]. IntelliJ IDEA підтримує його нативно. Для Eclipse або NetBeans потрібен плагін. У IntelliJ IDEA Community Edition можна діяти наступним чином:

Проєкт [exemples] налаштовується за допомогою такого файлу [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'
}
  • рядки 18–22: залежності Gradle проекту (бібліотеки, які потрібно завантажити);
  • рядок 19: бібліотека, необхідна для прикладу Swing, розглянутого в параграфі 2;
  • рядок 20: бібліотека RxJava;
  • рядок 21: бібліотека jSON;
  • рядки 9–12: характеристики архіву Jar, створеного в результаті компіляції проєкту;

Щоб завантажити необхідні для проекту залежності, виконайте такі дії: [1-4]: