O objetivo desse exercício é aprender o método mais simples de se criar e consumir uma sequência observável, bem como práticas as construções oferecidas pela linguagem Java para se trabalhar com programação reativa.
Para isso, crie um Observable atrás do factory method just( ) e consuma o mesmo imprimindo os itens emitidos no console com uma Action.
O objetivo desse exercício é verificar outra forma de criação de obseráveis, desse vez com o factory method fromCallable( ). Siga de forma similar ao exercício anterior.
Nesse exerício, nós aprendemos mais sobre Observers e como consumir os eventos terminais de uma sequência também com Actions
Para isso, no método consumeWithObservers, consuma a sequência passando uma instântica de Observer para o método subscribe( ). Já no método consumeWithActions, verifique como a sintaxe fica mais limpa ao se utilizar três Actions separadas ao invés de um único Observer como callback.
O objetivo desse exerício é demonstrar que existem diversos factory methods que criam sequências observáveis com comportamento pré-definido. Nesse caso, tomaremos como exemplo range( ).
Link para o Marble Diagram do operador map( ).
Link para o Marble Diagram do operador filter( ).
Link para o Marble Diagram do operador reduce( ).
O operador collect( ) é uma variante de reduce( ). O objetivo aqui é entender as diferenças entre esses dois operadores.
Link para o Marble Diagram do operador concat( ).
Link para o Marble Diagram do operador flatMap( ).
Link para o Marble Diagram do operador groupBy( ).
O objetivo aqui é entender como RxJava lida com processamento concorrente, em particular do ponto de vista sobre em que momento se deseja aplicar o paralelismo.
O objetivo desse exercício é verificar que alguns factory methods que retornam sequências pré-definidas ou mesmo alguns operadores associam um novo Scheduler à sequência. Isso é particularmente verdade para operações que lidam com tempo.
De posso dos conhecimento de Schedulers, vamos visualizar o comportamento do operador merge( ) , usando para isso duas sequências que emitem itens em intervalos aleatórios no tempo.
Nesses exercícios, nós iremos consumir uma REST API com o framework Retrofit. Esse framework oferece uma maneira muito simples de se consumir REST em Java, e em particular, ele é capaz de adaptar o consumo de uma chamada HTTP assíncrona no formato de um Observable.
Para os exercícios 16 e 17, os métodos necessários já estão modelados já classe StarWarsAPI.
O exercício 16 executa uma consulta trivial. Já no exercício 17, iremos encadear uma consulta de modo assíncrono com o operador flatMap.
Para o exercício 18, você deverá adicionar os métodos necessários na classe StarWarsAPI, de maneira a conseguir construir executar a consulta proposta.