Identifiable e IDs estáveis
Torne os modelos Identifiable para realizar a diferenciação corretamente.
Identifiable e IDs estáveis é uma aula grátis de SwiftUI Academy no CoddyKit. Esta é a aula 3 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.
The Diffing Problem
When data changes, SwiftUI must know which rows moved, stayed, or vanished. Stable identity makes that diffing correct. 🧩
Why id: .self Is Fragile
Using id: .self breaks when two items are equal or a value changes, because the identity shifts unexpectedly.
Meet Identifiable
The Identifiable protocol asks a type for just one thing: a stable, unique id property that never changes for that item.
protocol Identifiable {
var id: ID { get }
}Conforming a Model
Add an id property and conform to Identifiable, and your struct is ready for clean, reliable lists.
struct Task: Identifiable {
let id = UUID()
var title: String
}UUID for Fresh IDs
A UUID generates a guaranteed-unique value, perfect when items have no natural identifier of their own.
let id = UUID()ForEach Without id:
Once a type is Identifiable, ForEach finds the id by itself, so you can drop the id parameter entirely.
ForEach(tasks) { task in
Text(task.title)
}Stable Means Persistent
A good id never changes for the same logical item, even when its title or other fields are edited later on.
Natural Keys
If your data already has a unique field, like a database id, use it instead of generating a new one.
struct User: Identifiable {
let id: Int
var name: String
}Why It Matters for Animation
Correct identity lets SwiftUI animate moves and deletes smoothly instead of redrawing everything.
Avoid Index as ID
Using array indexes as ids is risky: inserting or deleting shifts every index and confuses diffing.
Identity Is About Sameness
Two items with the same id are treated as the same row; different ids mean different rows. Choose ids carefully.
Quick Check
Pick the most reliable approach to row identity.
Recap
You learned Identifiable: a stable id per item lets SwiftUI diff and animate lists correctly, far safer than id: .self. 🎉
Perguntas Frequentes
A aula “Identifiable e IDs estáveis” é grátis?
Sim — o texto completo de “Identifiable e IDs estáveis” é 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 “Identifiable e IDs estáveis”?
Torne os modelos Identifiable para realizar a diferenciação corretamente. 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 3 de 4.
Quanto tempo leva a aula “Identifiable e IDs estáveis”?
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
- Criando uma lista estática
- Repetindo com ForEach
- Identifiable e IDs estáveis
- Seções e estilos de lista