1. Introdução
O PDF do documento está disponível |AQUI|.
Os exemplos no documento estão disponíveis |AQUI|.
1.1. Contexto
Este documento não se destina a principiantes, mas sim a utilizadores com sólida experiência em Java. Utiliza as seguintes fontes:
Ao contrário de outros documentos que escrevi, este baseia-se principalmente em exemplos e aborda a teoria apenas de forma sucinta. No entanto, cada exemplo é acompanhado por uma explicação e existe uma progressão lógica ao longo de todo o documento.
O ReactiveX é um conjunto de bibliotecas que facilita a programação assíncrona e o processamento dos dados resultantes:
![]() |
![]() |
![]() |
A biblioteca Rx foi implementada em várias linguagens:
![]() |
Aqui, estamos a concentrar-nos nas seguintes bibliotecas:
- RxJava para o mundo Java;
- RxAndroid, uma especialização da RxJava para o ambiente Android;
- RxSwing, uma especialização da RxJava para o ambiente Swing;
Os conceitos da programação reativa são complexos à primeira vista. É por isso que este documento não se destina principalmente a principiantes. No entanto, fiz um grande esforço para explicar o código utilizado, e um novato pode familiarizar-se com a programação reativa utilizando este documento.
1.2. Ferramentas utilizadas
Os exemplos seguintes foram testados no seguinte ambiente:
- Máquina com Windows 10 Pro de 64 bits;
- JDK 1.8 (secção 1);
- IntelliJ IDEA Community Edition (Secção 10.4);
1.3. Código de exemplo
O código para os exemplos a seguir pode ser encontrado |AQUI| na pasta [dvp/examples].
![]() | ![]() |
A pasta [dvp/examples] [2] é um projeto Gradle que contém a maioria dos exemplos deste documento. Pode ser aberta por qualquer IDE que suporte o gestor de projetos Gradle [http://gradle.org/]. O IntelliJ IDEA suporta-o nativamente. Para o Eclipse ou o NetBeans, é necessário um plugin. Com o IntelliJ IDEA Community Edition, pode proceder da seguinte forma:
![]() | ![]() |
O projeto [examples] é configurado pelo seguinte ficheiro [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'
}
- linhas 18–22: as dependências Gradle do projeto (bibliotecas a descarregar);
- linha 19: a biblioteca necessária para o exemplo Swing discutido na secção 2;
- linha 20: a biblioteca RxJava;
- linha 21: uma biblioteca JSON;
- linhas 9–12: as características do arquivo JAR produzido pela compilação do projeto;
Para descarregar as dependências necessárias para o projeto, siga estes passos [1-4]:
![]() | ![]() |









