---
title: "Carregamento iterativo de dados em Swift"
description: "Como usar AsyncSequence para controlar a concorrência e atualizar a UI progressivamente."
canonical: "https://ronanrodrigo.dev/notes/carregamento-iterativo-dados-swift"
markdown: "https://ronanrodrigo.dev/notes/carregamento-iterativo-dados-swift.md"
last-updated: "2026-10-05"
---
## Carregamento iterativo de dados em Swift

Disparar dezenas de requisições assíncronas ao mesmo tempo nem sempre é a melhor abordagem em telascheias de dados. O artigo mostra como usar `AsyncSequence` para carregar dados iterativamente, controlar a concorrência e atualizar a UI progressivamente, com um exemplo de 40 a 50 requisições ao HealthKit.

- **O problema**: `async let` para dezenas de requisições cria muitas tasks e consome memória. O Cooperative Thread Pool limita o número de threads, mas isso não limita necessariamente as requisições concorrentes ao HealthKit — e a tela esperava todos os resultados antes de atualizar.
- **Carregamento iterativo**: implemente um `AsyncSequence` customizado com `AsyncIterator` para dividir a busca em etapas controladas.
- **Gestão de etapas**: um enum `CaseIterable` define os estágios de carregamento; cada chamada de `next()` busca o próximo conjunto de dados.

[Acesse a fonte original](https://swiftwithmajid.com/2026/09/29/iterative-data-loading-in-swift/)
