0Pricing
Swift Academy · Aula

Fonte única da verdade e fluxo unidirecional

Crie aplicativos SwiftUI com um único modelo de estado autoritativo.

Fonte única da verdade e fluxo unidirecional é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Boas-vindas

O fluxo de dados unidirecional significa que o estado desce pela árvore de visualizações e os eventos sobem. Uma única fonte de verdade elimina inconsistências.

O princípio

``` State → View → Event → State mutation → View re-renders ``` As visualizações são funções puras do estado. Elas não decidem qual é o estado — apenas o exibem e emitem eventos.

Interface orientada pelo modelo

```swift struct AppState { var count = 0; var filter: Filter = .all } struct AppView: View { @State var state = AppState() var body: some View { CounterView(state: state, onIncrement: { state.count += 1 }) } } ```

Evitando estado duplicado

```swift // ❌ Duplicate state — can drift out of sync: @State var isLoading = false @ObservedObject var viewModel: ViewModel // also has isLoading // ✓ Single source: @ObservedObject var viewModel: ViewModel // owns all state ```

Padrão de ações e eventos

```swift enum CounterAction { case increment, decrement, reset } func reduce(state: inout AppState, action: CounterAction) { switch action { case .increment: state.count += 1 case .decrement: state.count -= 1 case .reset: state.count = 0 } } ```

TCA (A Arquitetura Componível)

A The Composable Architecture (de código aberto) formaliza esse padrão em Swift com redutores, efeitos e armazenamentos — de forma semelhante ao Redux no React.

Evitando conflitos bidirecionais

```swift // ✓ Clear ownership: parent owns, child observes: struct Parent: View { @State private var text = "" var body: some View { Child(text: $text) } } struct Child: View { @Binding var text: String var body: some View { TextField("", text: $text) } } ```

Propagando alterações para cima

Use fechamentos (funções de retorno) para propagar eventos para cima: ```swift struct Child: View { var onDelete: () -> Void var body: some View { Button("Delete", action: onDelete) } } ```

Testando código unidirecional

Estado puro + redutor puro são facilmente testáveis: ```swift var state = AppState() reduce(state: &state, action: .increment) XCTAssertEqual(state.count, 1) ```

Vantagens

• Previsível: o mesmo estado → a mesma interface • Fácil de depurar: registre cada ação e alteração de estado • Testável: não é necessária uma interface para os testes de lógica • Depuração com viagem no tempo: reproduza o histórico do estado

Verificação rápida

No fluxo de dados unidirecional, o que dispara uma alteração de estado?

Recapitulação

Principais conclusões: • O estado desce; os eventos sobem • Uma única fonte de verdade — sem estado duplicado • Use ações e redutores para uma lógica de alteração testável • Funções de retorno propagam eventos do elemento filho para o pai • Estado puro + redutor = testes unitários fáceis Curso concluído! Próximo: Estrutura Combine.

Perguntas Frequentes

A aula “Fonte única da verdade e fluxo unidirecional” é grátis?

Sim — o texto completo de “Fonte única da verdade e fluxo unidirecional” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Fonte única da verdade e fluxo unidirecional”?

Crie aplicativos SwiftUI com um único modelo de estado autoritativo. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Fonte única da verdade e fluxo unidirecional”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. @Binding: fluxo de dados bidirecional
  2. @ObservableObject e @StateObject
  3. @EnvironmentObject para estado compartilhado
  4. Fonte única da verdade e fluxo unidirecional
← Voltar para Swift Academy