Top Banner
Globalcode – Open4education Programando interfaces reativas com Xamarin e ReactiveUI Mahmoud Ali Desenvolvedor @ Lambda3
23

Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Jan 08, 2017

Download

Software

akamud
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Programando interfaces reativas com Xamarin e ReactiveUI

Mahmoud AliDesenvolvedor @ Lambda3

Page 2: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Interface Reativas

Usuários esperam interfaces reativas e respostas em milisegundos e 100% de disponibilidadeSeu sistema precisa ser resistente a falhas

http://www.reactivemanifesto.org/pt-BR

Page 3: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Reactive Extensions (Rx)

Reactive Extensions é uma biblioteca para compor programas assíncronos e orientados a eventos utilizando observables e operadores LINQ-style.

Page 4: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Reactive Extensions

Criado pela Microsoft pelo mesmo time de desenvolvedores do LINQ“LINQ para eventos”Conceitos de paradigma funcionalUtiliza o design pattern: ObserverPortada para várias linguagens: Javascript, Java, Ruby, Python...

Page 5: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

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-basedPodem ser transformados de diversas maneiras

Page 6: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Streams

Quem quiser tratar o conteúdo que está passando pela esteira precisa dar um subscribeNo padrão Observer: o stream (IObservable) é o subject, o subscriber é o observerEmite três estados: OnNext, OnError e OnCompletedSão disposables

Page 7: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Streams

https://gist.github.com/staltz/868e7e9bc2a7b8c1f754

Page 8: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Streams

Tudo pode ser transformado em um stream:Cliques de mouseTeclas digitadasTasks assíncronasTimersInclusive streams

Page 9: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Streams

https://gist.github.com/staltz/868e7e9bc2a7b8c1f754

Page 10: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Onde usar?

Eventos que dependem de infraestrutura (filewatcher)Eventos real-timeEventos de UIStreams (ex.: rede)

Page 11: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Quem está usando?

Page 12: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Demo: Rx

Page 13: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Observable.Range

Page 14: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Throttle

Page 15: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Buffer

Page 16: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

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

Page 17: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

ReactiveUI

Também é um framework MVVM

Page 18: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

ReactiveUI

Disponibiliza uma série de helpers para facilitar a criação das interfaces:

BindObservableAsPropertyHelperReactiveCommandsReactiveAdapters

Page 19: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Demo: ReactiveUI

Page 20: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

DistinctUntilChanged

Page 21: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Switch

Page 22: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Referências

The introduction to Reactive Programming you've been missinghttp://rxmarbles.com/ http://www.introtorx.com/https://reactivex.slack.com/http://reactiveui.net/https://goo.gl/KazgWphttps://github.com/akamud/HackDaysRxUI

Page 23: Programando interfaces reativas com ReacitveUI na plataforma Xamarin

Globalcode – Open4education

Obrigado!@akamud