Обновите пользовательский интерфейс
Для создания пользовательского интерфейса используйте инструментарий Compose Multiplatform для Android-части проекта и SwiftUI для iOS-части. Это декларативные UI-фреймворки, поэтому вы увидите сходство в реализациях пользовательского интерфейса. В обоих случаях данные хранятся в переменной phrases, а затем по ним выполняется итерация для создания списка элементов Text.
Обновите Android-часть
Модуль androidApp содержит приложение для Android и определяет его основную Activity. Код пользовательского интерфейса в основном находится в модуле sharedUI, который приложение Android использует как библиотеку Android. Пользовательский интерфейс реализован с помощью фреймворка Compose Multiplatform.
Внесите изменения и посмотрите, как они отразятся на пользовательском интерфейсе:
Перейдите к файлу
App.ktв каталогеsharedUI/src/commonMain/.../greetingkmp.Найдите вызов функции
Greeting().greet(). Щёлкните правой кнопкой мыши поgreet()и выберите Перейти к | Объявлению или использованиям. IDE откроет файлsharedLogic/src/commonMain/.../Greeting.kt.-
В файле
Greeting.ktобновите классGreeting, чтобы функцияgreet()возвращала список строк:class Greeting { private val platform: Platform = getPlatform() fun greet(): List<String> = buildList { add(if (Random.nextBoolean()) "Hi!" else "Hello!") add("Guess what this is! > ${platform.name.reversed()}!") } } Импортируйте пакет
kotlin.random.Random, следуя предложению IDE.-
Вернитесь к файлу
sharedUI/src/commonMain/.../App.ktи обновите реализациюApp(), чтобы отобразить список строк:@Composable @Preview fun App() { MaterialTheme { val greeting = remember { Greeting().greet() } Column( modifier = Modifier .padding(all = 10.dp) .safeContentPadding() .fillMaxSize(), verticalArrangement = Arrangement.spacedBy(8.dp), ) { greeting.forEach { greeting -> Text(greeting) HorizontalDivider() } } } }Здесь компонуемая функция
Columnотображает каждый элементText, добавляя отступы вокруг них и расстояние между ними. Следуйте рекомендациям IDE, чтобы импортировать отсутствующие зависимости.
-
Теперь можно запустить приложение Android и посмотреть, как оно отображает список строк:
Обновите iOS-часть
Каталог iosApp собирается в приложение для iOS. Он зависит от модуля sharedLogic и использует его как фреймворк iOS. Пользовательский интерфейс приложения написан на Swift.
Внесите те же изменения, что и в приложении Android, чтобы учесть обновление общего кода:
В IntelliJ IDEA найдите папку
iosApp/iosAppв корне проекта в окне инструмента Проект.Откройте файл
iosApp/ContentView.swift, щёлкните правой кнопкой мыши по вызовуGreeting().greet()и выберите Перейти к | Объявлению или использованиям. Вы увидите, что IDEA правильно сопоставляет вызов Swift с объявлением Kotlin.-
Вернитесь к файлу
ContentView.swift. Чтобы отобразить список строк так же, как в приложении Android, замените код структурыContentViewследующим:struct ContentView: View { let phrases = Greeting().greet() var body: some View { List(phrases, id: \.self) { Text($0) } } }Результаты вызова
greet()сохраняются в переменнойphrases(letв Swift аналогиченvalв Kotlin).Функция
Listсоздаёт список элементовText.
-
Запустите конфигурацию запуска iOS, чтобы увидеть изменения:

Возможные проблемы и решения
Xcode сообщает об ошибках в коде, который вызывает общий фреймворк
Если вы работаете в Xcode, в проекте Xcode может использоваться старая версия фреймворка. Чтобы решить эту проблему, вернитесь в IntelliJ IDEA и пересоберите проект или запустите конфигурацию запуска iOS.
Xcode сообщает об ошибке при импорте общего фреймворка
Если вы используете Xcode, возможно, потребуется очистить кэшированные двоичные файлы: попробуйте сбросить среду, выбрав Продукт | Очистить папку сборки в главном меню.
Следующий шаг
В следующей части руководства вы узнаете о зависимостях и добавите стороннюю библиотеку, чтобы расширить функциональность проекта.
Получить помощь
Kotlin Slack. Получите приглашение и присоединитесь к каналу #multiplatform.
Трекер задач Kotlin. Сообщить о новой проблеме.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/multiplatform/multiplatform-update-ui.html