Что делать с дублированием классов на 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? Может еще что то есть чтобы не ухудшать производительность и время выполнения приложения?


Ответы (0 шт):