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().modelAndroid 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
- Diseñe una interfaz de capacidades
- expect/actual para la información del dispositivo
- Sistema de archivos y rutas por plataforma
- Inyecte implementaciones de plataforma