1. Introdução
O PDF do documento está disponível |AQUI|.
Os exemplos do documento estão disponíveis |AQUI|.
1.1. Contexte
Este documento não se destina a principiantes, mas sim a utilizadores com uma sólida experiência em Java. Utiliza as seguintes fontes:
Ao contrário de outros documentos que já escrevi, este documento baseia-se sobretudo em exemplos e aprofunda pouco a teoria. No entanto, cada exemplo é acompanhado por uma explicação e existe uma progressão lógica ao longo do documento.
ReactiveX é um conjunto de bibliotecas que facilitam a programação assíncrona e a exploração dos dados assim obtidos:
![]() |
![]() |
![]() |
A biblioteca Rx foi implementada em várias linguagens:
![]() |
Aqui, estamos interessados nas seguintes bibliotecas:
- RxJava para o mundo Java;
- RxAndroid, uma especialização de RxJava para o ambiente Android;
- RxSwing, uma especialização de RxJava para o ambiente Swing;
Os conceitos da programação reativa são, à primeira vista, complexos. É por isso que este documento não se destina, a priori, a principiantes. No entanto, esforcei-me bastante para explicar os códigos utilizados e um principiante poderá familiarizar-se com a programação reativa através deste documento.
1.2. As ferramentas utilizadas
Os exemplos que se seguem foram testados com o seguinte ambiente de trabalho:
- computador com Windows 10 Pro de 64 bits;
- JDK 1.8 (parágrafo 1);
- Intellij IDEA Community Edition (parágrafo 10.4);
1.3. Os códigos dos exemplos
Os códigos dos exemplos que se seguem podem ser encontrados |ICI| na pasta [dvp/exemples].
![]() | ![]() |
A pasta [dvp/exemples] [2] é a de 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-se proceder da seguinte forma:
![]() | ![]() |
O projeto [exemples] é 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 (as bibliotecas a descarregar);
- linha 19: a biblioteca necessária para o exemplo Swing analisado no parágrafo 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 ao projeto, proceda da seguinte forma [1-4]:
![]() | ![]() |









