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

Redux.swift in Belo Horizonte

Redux.swift in Belo Horizonte

Speaking at the 15th CocoaTalks BH about Redux in Swift, and about writing iOS apps using Redux.swift, Sympla-style.

Fellipe Caetano

February 01, 2017
Tweet

More Decks by Fellipe Caetano

Other Decks in Programming

Transcript

  1. O que é Redux? “ Redux is a predictable state

    container for […] apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test.
  2. Princípios Existe uma única fonte de verdade O estado da

    aplicação inteira é armazenado em uma única árvore de objetos de forma centralizada
  3. Princípios O estado é read-only A única maneira de alterar

    o estado da aplicação é emitindo ações: objetos que descrevem um acontecimento
  4. Princípios As alterações são descritas por funções puras* Para especificar

    como a árvore de estados é transformada pelas ações, escrevemos funções puras chamadas "reducers" *Funções puras sempre retornam o mesmo valor para a mesma lista de parâmetros, e não promovem efeitos colaterais
  5. Actions Actions são payloads de informação que são usados para

    transmitir dados da aplicação para o armazém de estado Em geral, actions em Swift são implementadas como enums
  6. Reducers Reducers tem a responsabilidade de decidir como o estado

    da aplicação muda de acordo com cada ação Em geral, reducers são simplesmente funções com uma assinatura bem definida:
  7. Reducers Sendo funções puras, reducers não podem nem devem alterar

    o estado diretamente Em vez disso, para cada action, um reducer retorna uma nova instância do estado refletindo as alterações necessárias para aquela action
  8. Store A store de uma aplicação Redux é o componente

    que centraliza as interações entre reducers e actions
 
 As responsabilidade de uma store são variadas mas giram em torno de um objetivo comum: armazenar e proteger o estado de acessos diretos
  9. Store As responsabilidades de uma store são: •Armazenar o estado

    da aplicação; •Permitir a atualização do estado através do despacho de ações; •Notificar clientes interessados na atualização do estado;
  10. Fluxo de dados A arquitetura de uma aplicação Redux atinge

    previsibilidade ao unir actions, reducers e a store em um fluxo estritamente unidirecional de dados Em outras palavras, todo dado que transita pelas camadas da aplicação segue o mesmo padrão de ciclo de vida, e a lógica da aplicação fica mais fácil de entender
  11. Sobre mim @fellipe @fellipecaetano /fellipecaetano • Líder em desenvolvimento iOS

    na Sympla • 6 anos de experiência com tecnologias Apple • Campineiro de nascença e residência • Ex-Movile e ex-Dextra • Graduando em Ciência da Computação pela UNICAMP • Preguiça do Universo Expandido de Star Wars • Otaku e Pottermaníaco
  12. Sobre a Sympla A Sympla é uma plataforma de eventos

    “do it yourself” que nasceu em BH em idos de 2012 para se tornar a plataforma com o maior número de eventos do Brasil. Nossa solução dá aos organizadores e produtores de evento todas as ferramentas necessárias para gestão de eventos de qualquer porte e segmento: shows, festas, cursos, congressos, eventos esportivos, religiosos, gastronômicos e outros. Nossa presença mobile começou em 2016, em menos de um ano fomos duas vezes destaques na App Store (com direito a arte promocional e tudo ) e estamos só começando. Em nome da #FamiliaSympla, muito obrigado /sympla @sympla sympla.com.br