0Pricing
Swift Academy · Aula

Redes com Combine e URLSession

Use URLSession.dataTaskPublisher com Combine para tratar respostas de rede.

Redes com Combine e URLSession é 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

URLSession oferece suporte integrado ao Combine por meio de `dataTaskPublisher`. Combinado com `decode`, ele cria cadeias de comunicação em rede com segurança de tipos em apenas algumas linhas.

dataTaskPublisher

```swift URLSession.shared .dataTaskPublisher(for: URL(string:"https://api.example.com/users")!) .sink(receiveCompletion: { print($0) }, receiveValue: { data, response in print(data.count) }) .store(in: &cancellables) ```

Decodificando JSON

```swift struct User: Decodable { var name: String; var id: Int } URLSession.shared .dataTaskPublisher(for: url) .map(\\.data) .decode(type: [User].self, decoder: JSONDecoder()) .receive(on: DispatchQueue.main) .sink(receiveCompletion: { print($0) }, receiveValue: { users in self.users = users }) .store(in: &cancellables) ```

Tratamento de erros com catch

```swift .catch { error -> AnyPublisher<[User],Never> in print("Error: \\(error)") return Just([]).eraseToAnyPublisher() } ```

retry

```swift .retry(3) // retry up to 3 times on failure ```

Validando o status HTTP

```swift .tryMap { data, response -> Data in guard let http = response as? HTTPURLResponse, (200...299).contains(http.statusCode) else { throw URLError(.badServerResponse) } return data } ```

Criando um publicador genérico

```swift func fetch(_ url: URL) -> AnyPublisher { URLSession.shared.dataTaskPublisher(for: url) .map(\\.data) .decode(type: T.self, decoder: JSONDecoder()) .eraseToAnyPublisher() } ```

Cancelamento

```swift var searchCancellable: AnyCancellable? searchCancellable?.cancel() // cancel previous searchCancellable = fetch(url).sink { ... } ```

flatMap para solicitações sequenciais

```swift fetch(userUrl) .flatMap { user in fetch(user.profileUrl) } .sink { profile in render(profile) } .store(in: &cancellables) ```

Combinando várias solicitações

```swift Publishers.Zip(fetch(url1), fetch(url2)) .sink { a, b in combinedUI(a, b) } .store(in: &cancellables) ```

Verificação rápida

Qual operador do Combine decodifica a saída de um publicador em um tipo Decodable?

Recapitulação

Principais conclusões: • `dataTaskPublisher(for:)` — busca de URLs baseada no Combine • `.map(\\.data)` → `.decode(type:decoder:)` para JSON • `.tryMap` valida o status HTTP • `.retry(n)` faz novas tentativas automaticamente • `.catch { }` fornece um publicador alternativo Curso concluído! Próximo: Concorrência estruturada do Swift.

Perguntas Frequentes

A aula “Redes com Combine e URLSession” é grátis?

Sim — o texto completo de “Redes com Combine e URLSession” é 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 “Redes com Combine e URLSession”?

Use URLSession.dataTaskPublisher com Combine para tratar respostas de rede. 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 “Redes com Combine e URLSession”?

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