Получение имени платформы для каждой цели
Классическая функция expect/actual для Android и iOS
«Получение имени платформы для каждой цели» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
The Hello World of KMP
Returning the platform name is the classic first expect/actual you write. It proves your shared module really runs on both apps. 👋
Declare the expect
Start in commonMain with an expect function that returns a String. No body yet, just the shape both platforms agree on.
expect fun platform(): StringThe Android actual
In androidMain, provide the actual using Android's Build class to report the Android version at runtime.
actual fun platform(): String =
"Android " + Build.VERSION.SDK_INTThe iOS actual
In iosMain, the actual reaches into Apple's UIKit to read the device's system name and version.
actual fun platform(): String =
UIDevice.currentDevice.systemNameSignatures Must Match
Both actuals share the exact name, parameters, and return type of the expect. One mismatch and the compiler refuses to build.
Call It from Shared Code
Now any common function can call platform() freely. It reads like normal Kotlin while the right actual runs underneath.
fun greeting() = "Hi from " + platform()Android Sees Its Value
When the Android app calls greeting(), the compiler linked the androidMain body, so it shows the Android string.
iOS Sees Its Value
The very same call from Swift returns the iOS version instead, because the iosMain actual was compiled into that framework.
Platform Imports Stay Local
Notice that Build and UIDevice are imported only in their own source sets. Shared code never imports a platform type directly.
A Tiny Surface Area
Keep the expect small and focused. One function that returns a name is enough to bridge into each platform cleanly. ✨
Test It Early
Run both apps and print the result. Seeing two different strings confirms your expect/actual wiring works end to end.
Quick Check
Think about how the right value gets chosen.
Recap
You built the classic platform() function: one expect in commonMain, an actual in androidMain and iosMain, and matching signatures across all three. 🎉
Часто задаваемые вопросы
Урок «Получение имени платформы для каждой цели» бесплатный?
Да — полный текст урока «Получение имени платформы для каждой цели» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Чему я научусь в уроке «Получение имени платформы для каждой цели»?
Классическая функция expect/actual для Android и iOS Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?
Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Получение имени платформы для каждой цели»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?
Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Зачем нужны expect/actual
- Получение имени платформы для каждой цели
- Классы и свойства expect/actual
- Распространённые ошибки и ошибки компилятора