Publishers e Subscribers
Entenda o fluxo central do Combine.
Publishers e Subscribers é uma aula grátis de SwiftUI Academy no CoddyKit. Esta é a aula 1 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 SwiftUI Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SwiftUI Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Meet Combine
Combine is Apple's framework for handling values that arrive over time, like taps, timers, or network responses. 🌊
Values Over Time
Instead of asking for data once, you describe a stream of values and react each time a new one arrives, now or later.
What a Publisher Does
A Publisher is the source. It emits values downstream and tells you when it finishes or fails.
let publisher = [1, 2, 3].publisherOutput and Failure
Every publisher declares two types: its Output (the values it sends) and its Failure (the error it may throw).
Just(42) // Output: Int, Failure: NeverWhat a Subscriber Does
A Subscriber attaches to a publisher, receives each value as it arrives, and decides what to do with it.
Connecting with sink
The sink subscriber is the simplest one: you hand it a closure that runs for every value received.
publisher.sink { value in
print(value)
}Handling Completion
A fuller sink takes two closures: one for completion (finished or failure) and one for each value.
publisher.sink(
receiveCompletion: { print($0) },
receiveValue: { print($0) }
)Storing the Subscription
Subscribing returns a cancellable. Keep it alive, or the stream is torn down immediately.
var bag = Set<AnyCancellable>()
publisher.sink { _ in }
.store(in: &bag)Just and Empty
Just emits one value then finishes. Empty finishes with no values at all. Both are handy building blocks.
let one = Just("hello")Subjects Push Values
A PassthroughSubject lets you send values manually, perfect for forwarding events you control.
let subject = PassthroughSubject<Int, Never>()
subject.send(5)The Pull and Push Flow
The subscriber signals demand, the publisher pushes values, and completion ends the relationship cleanly.
Quick Check
You attached a closure to a publisher and nothing printed. What likely went wrong?
Recap: The Combine Trio
You met the three players: a publisher emits values, a subscriber receives them, and a stored cancellable keeps the link alive. 🎉
Perguntas Frequentes
A aula “Publishers e Subscribers” é grátis?
Sim — o texto completo de “Publishers e Subscribers” é 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 SwiftUI Academy, atualize para CoddyKit PRO. O curso de SwiftUI Academy inclui 4 aulas no total.
O que vou aprender em “Publishers e Subscribers”?
Entenda o fluxo central do Combine. Você pratica SwiftUI 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 SwiftUI Academy?
Nenhuma experiência prévia é necessária. SwiftUI 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 1 de 4.
Quanto tempo leva a aula “Publishers e Subscribers”?
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 SwiftUI Academy?
Sim. Cada aula de SwiftUI 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
- Publishers e Subscribers
- Transformando com map e filter
- Debounce para Busca Instantânea
- Conectando Combine ao SwiftUI