Não faltam frameworks MVVM para a plataforma Xamarin, o ReactiveUI (RxUI) é mais um deles, mas o que o torna o interessante é que o desenvolvedor que já está acostumado a programar utilizando Reactive Extensions (Rx) se sentirá em casa, com uma API mais intuitiva é possível criar interfaces gráficas elegantes, reativas e testáveis. Com suporte ao Xamarin.Android, Xamarin.iOS, Xamarin.Mac, Windows Phone 8 e até plataformas desktop (WPF, Windows Forms, Windows Store), é possível escrever códigos para interface gráfica que aumenta ainda mais a reusabilidade de código que o Xamarin proporciona.
2. Globalcode – Open4education
Interface Reativas
Usuários esperam interfaces reativas e respostas
em milisegundos e 100% de disponibilidade
Seu sistema precisa ser resistente a falhas
http://www.reactivemanifesto.org/pt-BR
3. Globalcode – Open4education
Reactive Extensions (Rx)
Reactive Extensions é uma biblioteca para compor
programas assíncronos e orientados a eventos
utilizando observables e operadores LINQ-style.
4. Globalcode – Open4education
Reactive Extensions
Criado pela Microsoft pelo
mesmo time de desenvolvedores
do LINQ
“LINQ para eventos”
Conceitos de paradigma
funcional
Utiliza o design pattern: Observer
Portada para várias linguagens:
Javascript, Java, Ruby, Python...
5. Globalcode – Open4education
Streams
Funciona como uma esteira de produção
É uma sequência de eventos ordenados por
tempo
É a base do Rx (IObservable<T> no .NET)
É assíncrono e push-based
Podem ser transformados de diversas maneiras
6. Globalcode – Open4education
Streams
Quem quiser tratar o conteúdo que está passando
pela esteira precisa dar um subscribe
No padrão Observer: o stream (IObservable) é o
subject, o subscriber é o observer
Emite três estados: OnNext, OnError e
OnCompleted
São disposables
16. Globalcode – Open4education
ReactiveUI (RxUI)
Framework open source para facilitar a utilização
de Rx na criação de interfaces reativas em
qualquer plataforma, reaproveitando código