Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Por que eu criei uma biblioteca Open Source?

Por que eu criei uma biblioteca Open Source?

Motivações e o caminho traçado para a criação do Frisbee uma biblioteca para requisições HTTP. Foi apresentado sobre design patterns, automação de testes e a distribuição da biblioteca usando Carthage, CocoaPods e Swift Package Manager (pra rodar no Linux também) através do Bitrise e IFTTT.

Ronan Rodrigo Nunes

July 17, 2018
Tweet

More Decks by Ronan Rodrigo Nunes

Other Decks in Programming

Transcript

  1. Por que eu criei uma
    biblioteca open source?
    Caminho e motivações na criação do Frisbee

    View Slide

  2. Motivações
    Artesanato de Software

    View Slide

  3. View Slide

  4. Desafios

    View Slide

  5. github.com/ronanrodrigo/Frisbee

    View Slide

  6. Distribuição
    CocoaPods, Carthage, Swift Package Manager, IFTTT e Bitrise

    View Slide

  7. Bitrise

    View Slide

  8. Envman & PlistBuddy

    View Slide

  9. 1.0.0 1.0.1

    View Slide

  10. Carthage

    View Slide

  11. View Slide

  12. CocoaPods

    View Slide

  13. View Slide

  14. Swift Package Manager (SPM)

    View Slide

  15. SPM e Linux

    View Slide

  16. View Slide

  17. View Slide

  18. Readme.md

    View Slide

  19. View Slide

  20. IFTTT

    View Slide

  21. View Slide

  22. View Slide

  23. bitrise.yml

    View Slide

  24. Detalhes de Implementação
    Não tão detalhado assim

    View Slide

  25. Arquitetura

    View Slide

  26. View Slide

  27. Pra que tanto arquivo?
    Por que não fazer genérico?
    Você está repetindo código…

    View Slide

  28. Mais organização
    YAGNI
    Baby Steps

    View Slide

  29. Design Patterns

    View Slide

  30. Adapters
    Embrulham as APIs utilizadas;
    Expõem somente o que for utilizado;

    View Slide

  31. Factory Methods
    Facilitam a injeção de dependências;
    Concentram a criação de instâncias;
    Retornam algo que conforma com um protocolo;

    View Slide

  32. Interactors
    Concentra as regras de negócio;
    Trata os erros;
    Valida o cast dos dados;
    Executa as requests;

    View Slide

  33. View Slide

  34. Utilização
    Breve demonstração de uso do Frisbee

    View Slide

  35. View Slide

  36. View Slide

  37. @danielCarlosCE @amadeu01
    @williamhjcho @judarlima

    View Slide

  38. [email protected]
    github.com/ronanrodrigo
    ronanrodrigo.com
    Obrigado Temos Vagas
    nubank.workable.com

    View Slide