Да, работал. Создавал общую логику для iOS и Android на Kotlin Multiplatform Mobile (сейчас в составе Kotlin Multiplatform).
Использовал Ktor для сетевых запросов, SQLDelight для работы с базой данных и Koin для зависимостей.
Разрабатывал следующие слои:
- Data Layer: Работа с локальными данными и сетью.
- Domain Layer: Бизнес-логика.
UI слой оставался платформозависимым.
Основные преимущества, которые выделил:
- Переиспользование кода: Значительное сокращение дублирования логики.
- Единый язык: Kotlin для обеих платформ.
- Интероперабельность: Нативное взаимодействие с платформенным кодом (Swift/Objective-C и Java/Kotlin).
Выделил также сложности:
- Зрелость экосистемы: Некоторые библиотеки могут быть менее зрелыми, чем на платформоспцифичных стеках.
- Отладка: Отладка кросс-платформенного кода может быть менее тривиальной.
- CI/CD: Настройка CI/CD pipeline требует внимания к специфике KMP.
Да, работал. Создавал общую логику для iOS и Android на Kotlin Multiplatform Mobile (сейчас в составе Kotlin Multiplatform).
Использовал Ktor для сетевых запросов, SQLDelight для работы с базой данных и Koin для зависимостей.
Разрабатывал следующие слои:
- Data Layer: Работа с локальными данными и сетью.
- Domain Layer: Бизнес-логика.
UI слой оставался платформозависимым.
Основные преимущества, которые выделил:
- Переиспользование кода: Значительное сокращение дублирования логики.
- Единый язык: Kotlin для обеих платформ.
- Интероперабельность: Нативное взаимодействие с платформенным кодом (Swift/Objective-C и Java/Kotlin).
Выделил также сложности:
- Зрелость экосистемы: Некоторые библиотеки могут быть менее зрелыми, чем на платформоспцифичных стеках.
- Отладка: Отладка кросс-платформенного кода может быть менее тривиальной.
- CI/CD: Настройка CI/CD pipeline требует внимания к специфике KMP.