Что делать с дублированием классов на ios в Kotlin Multiplatform?
Есть будущий проект Kotlin Multiplatform так вот в общем модуле shared/commonMain лежат классы. Ну к примеру вот:
data class Message(
var id: Long?,
var title: String
)
Так же в общем модуле лежат репозиторий который получает список таких классов List<Message> не важно откуда. И если взять android модуль, то все хорошо. Но в ios модуль то из-за того что Long там не совсем Long а KotlinLong ну я не помню точно, важно то что я теперь должен писать костыль и дублировать класс вот так:
extension Message {
func toSwiftModel() -> LMessage {
LMessage(
id: self.id?.int64Value,
title: self.title
)
}
}
struct LMessage {
let id: Int64?
let title: String
func toKotlinModel() -> Message {
return Message(id: id != nil ? KotlinLong(value: id!) : nil, title: title)
}
}
Если бы обьектов Message было мало, то и пусть, но в моем случае их будет не меньше 500000 а скорее всего больше и получаеться я еще должен буду 500000 обьектов создать, к тем что у меня есть, да еще и дублировать классы, как то мне это не нравится. Что можно с этим сделать? Я думал присылать просто строки и обрабатывать уже в ios, но тогда если android и ios будут дублированные классы то в чем смысл вообще Kotlin Multiplatform? Может еще что то есть чтобы не ухудшать производительность и время выполнения приложения?