Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure...

21
Combine Laura Corssac

Transcript of Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure...

Page 1: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

CombineLaura Corssac

Page 2: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Programação assíncrona

Animações

Ações do usuário

API Responses

Notificações

12@IBactions

Callback

Closures

didSet { }

Page 3: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Combine

• Framework declarativo e reativo

• WWDC 2019

• Processar valores assíncronos

• Alternativa ao RxSwift

Page 4: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Publisher

Publisher

RX: Observable

Page 5: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

PublisherRX: Observable

“H” “He” “Hel”

Page 6: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

PublisherRX: Observable

Notification Notification

Page 7: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Término

“H” “He” “Hel”

Finished

Page 8: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Término

“He” “Hel”

Failure

“H”

Page 9: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Término

Page 10: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Publisher

• associatedtype Output

• associatedtype Failure

Page 11: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Subscriber

• associatedtype Input

• associatedtype Failure

Page 12: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Demanda

• .none

• .max(n)

• .unlimited

Page 13: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Subscribers

Page 14: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Subscribers

Page 15: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

SubscribersViewModel:

ViewController:

Page 16: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Operators

• Métodos do Publisher

• Mudam o tipo do Erro e/ou Output

• Combinados

Page 17: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Operators

Arrays Publishers

Page 18: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Operators

Publishers

Page 19: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Conclusão

RxSwift Combine

BackPressure ❌ ✅

Retrocompatibilidade ✅ ❌

Erros genéricos ❌ ✅

Velocidade 😥 😃

Manutenção Comunidade Apple

Page 20: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

Referências• try! Swift NYC 2019 - Getting Started With combine

• https://www.youtube.com/watch?v=fejmsuxoIvA&t=317s

• Ray Werderlich

• Sessions: Combine in Practice e Introducing Combine

• RxSwift to Apple's Combine “Cheat Sheet”

• https://medium.com/gett-engineering/rxswift-to-apples-combine-cheat-sheet-e9ce32b14c5b

• Will Combine Kill RxSwift?

• https://medium.com/flawless-app-stories/will-combine-kill-rxswift-64780a150d89

Page 21: Combine - Amazon S3 · 2019. 11. 29. · Conclusão RxSwift Combine BackPressure Retrocompatibilidade Erros genéricos Velocidade # $ Manutenção Comunidade Apple

@lauracorssac Laura Corssac