0Pricing
Kotlin Multiplatform Academy · Aula

Defina uma interface de repositório

Exponha as necessidades de dados sem revelar detalhes HTTP

Defina uma interface de repositório é uma aula grátis de Kotlin Multiplatform 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 Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

What a Repository Is

A repository is the single doorway your apps walk through to get data, hiding where that data actually comes from.

Start With an Interface

Define the repository as a Kotlin interface first, so callers depend on a contract instead of a concrete class.

interface UserRepository {
    suspend fun getUser(id: String): User
}

Speak in Domain Terms

Name methods after what the app needs, like getUser, not after how you fetch it. The intent stays clear and stable.

Return Domain Models

The interface returns clean domain models, never raw JSON or HTTP responses, so the UI stays simple.

suspend fun getUsers(): List<User>

No HTTP Words Allowed

Keep words like Ktor, headers, and status codes out of the interface. Callers should never know HTTP exists.

Suspend for Async Work

Mark data methods as suspend so they can do async work without blocking, and fit naturally into coroutines on both apps.

suspend fun refresh()

It Lives in commonMain

Put the interface in commonMain so Android and iOS share the exact same data contract with zero duplication.

Many Implementations Possible

One interface can have several implementations: a real network one and a fake one for tests, swapped freely.

Easier to Test

Because callers depend on the interface, you can inject a fake repository in tests and avoid hitting the real network.

class FakeUserRepository : UserRepository

Clear, Focused Methods

Keep each method small and purposeful. A focused API is easier to read, mock, and evolve over time.

A Complete Example

Here is a tidy repository contract that exposes everything the user feature needs and nothing more.

interface UserRepository {
    suspend fun getUsers(): List<User>
    suspend fun getUser(id: String): User
}

Quick Check

Where should the repository interface live in a KMP project?

Recap

A repository interface in commonMain defines what data the app needs using suspend methods and domain models, hiding all HTTP details.

Perguntas Frequentes

A aula “Defina uma interface de repositório” é grátis?

Sim — o texto completo de “Defina uma interface de repositório” é 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 Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Defina uma interface de repositório”?

Exponha as necessidades de dados sem revelar detalhes HTTP Você pratica Kotlin Multiplatform 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 Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform 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 “Defina uma interface de repositório”?

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 Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform 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. Defina uma interface de repositório
  2. Encapsule a API por trás do repositório
  3. Mapeie DTOs para modelos de domínio
  4. Exponha resultados como Flow
← Voltar para Kotlin Multiplatform Academy