0Pricing
Swift Academy · Aula

Publishers e subscribers

Conheça o contrato Publisher/Subscriber, sink e os subscribers integrados assign.

Publishers e subscribers é uma aula grátis de Swift 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 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

Combine é a estrutura reativa da Apple. Seus elementos centrais são os publicadores (que produzem valores) e os assinantes (que os consomem).

Protocolo de publicador

Um `Publisher` emite valores ao longo do tempo e, por fim, é concluído ou falha: ```swift publisher .sink { print("Received: \\($0)") } ``` O tipo `Output` é o tipo do valor; `Failure` é o tipo do erro.

Assinante: sink

```swift let nums = [1,2,3].publisher let cancel = nums.sink { print($0) } // 1, 2, 3 ```

Assinante: assign

```swift class ViewModel { @Published var status = "" } let vm = ViewModel() statusPublisher .assign(to: &vm.$status) ```

AnyCancellable

Cada assinatura retorna `AnyCancellable`. Armazene-o para manter a assinatura ativa: ```swift var cancellables = Set() pub.sink { print($0) }.store(in: &cancellables) ```

Publicador Just

```swift Just(42).sink { print($0) } // emits once then completes ```

Publicador de notificações

```swift NotificationCenter.default .publisher(for: UIApplication.didBecomeActiveNotification) .sink { _ in print("Active!") } .store(in: &cancellables) ```

Publicador de temporizador

```swift Timer.publish(every: 1, on: .main, in: .common) .autoconnect() .sink { date in print(date) } .store(in: &cancellables) ```

Eventos de conclusão

```swift pub.sink( receiveCompletion: { completion in switch completion { case .finished: print("Done") case .failure(let e): print("Error: \\(e)") } }, receiveValue: { print($0) } ) ```

Contrapressão

Combine oferece suporte à contrapressão — os assinantes podem solicitar quantidades específicas de valores. A demanda `.unlimited` é o padrão de `sink`.

Verificação rápida

Que tipo você precisa armazenar para manter uma assinatura do Combine ativa?

Recapitulação

Principais conclusões: • Os publicadores emitem valores ao longo do tempo; os assinantes os recebem • `sink` recebe valores e a conclusão; `assign` vincula a uma propriedade • Armazene `AnyCancellable` para manter as assinaturas ativas • Publicadores integrados: `Just`, `Timer.publish`, NotificationCenter Próximo: Operadores.

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 Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Publishers e subscribers”?

Conheça o contrato Publisher/Subscriber, sink e os subscribers integrados assign. 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 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 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. Publishers e subscribers
  2. Operadores: map, filter, combineLatest
  3. PassthroughSubject e CurrentValueSubject
  4. Redes com Combine e URLSession
← Voltar para Swift Academy