0Pricing
Kotlin Multiplatform Academy · Lección

expect/actual para la información del dispositivo

Devuelva la versión del sistema operativo y el modelo según la plataforma.

expect/actual para la información del dispositivo es una lección gratuita de Kotlin Multiplatform Academy en CoddyKit. Esta es la lección 2 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.

De la interfaz a expect

A veces puede omitir una interfaz y usar directamente expect/actual. Esto declara la información del dispositivo una vez en commonMain y la implementa en cada plataforma.

Declare la clase expect

En commonMain, escriba una clase expect con los datos del dispositivo que necesita. Todavía no hay cuerpo, solo la forma que deben cumplir ambas plataformas.

expect class DeviceInfo() {
  val model: String
  val osVersion: String
}

El actual de Android

En androidMain, el actual lee Build.MODEL y la versión del sistema operativo para obtener los valores reales de Android durante la ejecución.

actual class DeviceInfo {
  actual val model = Build.MODEL
  actual val osVersion = Build.VERSION.RELEASE
}

El actual de iOS

En iosMain, el actual usa UIDevice para informar del nombre del modelo de Apple y de la versión de iOS en ejecución.

actual class DeviceInfo {
  actual val model = UIDevice.currentDevice.model
  actual val osVersion = UIDevice.currentDevice.systemVersion
}

Las firmas deben coincidir

Cada propiedad de cada actual debe coincidir con expect en nombre y tipo. Un solo desacuerdo basta para que el compilador se niegue a enlazar los destinos.

Úselo desde el código compartido

El código común crea DeviceInfo() y lee sus propiedades como cualquier código normal de Kotlin. El actual correcto se conecta durante la compilación según el destino.

fun banner() = "Running on " + DeviceInfo().model

Android obtiene los valores de Build

Cuando se compila la aplicación de Android, se enlaza el actual de androidMain, por lo que model devuelve el nombre real del hardware de la clase Build.

iOS obtiene los valores de UIDevice

La misma llamada dentro del framework de iOS devuelve los valores de Apple, porque en este caso se compiló el actual de iosMain en ese destino.

Las importaciones permanecen en los source sets

Build vive en androidMain y UIDevice en iosMain. CommonMain nunca importa un tipo de platform, que es precisamente lo que permite mantenerlo compartido.

expect/actual frente a interface

Una interface requiere inyectar una implementación. expect/actual se enlaza automáticamente durante la compilación, por lo que quienes llaman solo tienen que construir la clase.

Elija la herramienta más sencilla

Para un único dato de la plataforma y sin estado, expect/actual es la opción más ligera. Elija una interfaz cuando también quiera intercambiar fakes libremente.

Comprobación rápida

Considere cómo llegan los valores correctos del dispositivo a cada aplicación.

Resumen

Ha declarado un expect DeviceInfo en commonMain y le ha proporcionado actuals para Android e iOS, con firmas coincidentes para que cada aplicación informe de sus propios valores. 🎉

Preguntas frecuentes

¿La lección «expect/actual para la información del dispositivo» es gratis?

Sí — el texto completo de «expect/actual para la información del dispositivo» 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 «expect/actual para la información del dispositivo»?

Devuelva la versión del sistema operativo y el modelo según la plataforma. 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 2 de 4.

¿Cuánto tiempo toma la lección «expect/actual para la información del dispositivo»?

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

  1. Diseñe una interfaz de capacidades
  2. expect/actual para la información del dispositivo
  3. Sistema de archivos y rutas por plataforma
  4. Inyecte implementaciones de plataforma
← Volver a Kotlin Multiplatform Academy