Defina una interfaz de repositorio
Exponga las necesidades de datos sin filtrar detalles de HTTP
Defina una interfaz de repositorio es una lección gratuita de Kotlin Multiplatform Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Multiplatform Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en 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 : UserRepositoryClear, 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.
Preguntas frecuentes
¿La lección «Defina una interfaz de repositorio» es gratis?
Sí — el texto completo de «Defina una interfaz de repositorio» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Multiplatform Academy, actualiza a CoddyKit PRO. El curso de Kotlin Multiplatform Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Defina una interfaz de repositorio»?
Exponga las necesidades de datos sin filtrar detalles de HTTP Practicas Kotlin Multiplatform Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Kotlin Multiplatform Academy?
No se requiere experiencia previa. Kotlin Multiplatform Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Defina una interfaz de repositorio»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Kotlin Multiplatform Academy?
Sí. Cada lección de Kotlin Multiplatform Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Defina una interfaz de repositorio
- Envuelva la API tras el repositorio
- Mapee DTO a modelos de dominio
- Exponga resultados como Flow