Котлин как проблема мультиплатформенности - PullRequest
1 голос
/ 12 апреля 2019

Я пишу экспериментальный проект для мультиплатформы с использованием Kotlin. Я написал некоторую общую логику, используя RXjava и модернизацию. Есть три папки Котлин [commonMain] Котлин [androidMain] Котлин [iosMain]

Код отлично работает в папке Kotlin [androidMain]. Когда я перешел в Kotlin [commonMain], Class не смог восстановить библиотеки модификации и RX.

Это потому, что мультиплатформа Kotlin не может компилировать Rx и модифицировать библиотеки?

Или я что-то не так делаю.

Пожалуйста, кто-нибудь может мне объяснить.

привет,

**import okhttp3. unalbe to resolve***
**import okhttp3.Response unable to resolve**


class AuthorizationInterceptor(private val authorization: Authorization) : Interceptor{

    override fun intercept(chain: Interceptor.Chain): Response {
        var accessToken =  authorization.getCachedToken()
        val request: Request =
            chain.request().newBuilder().addHeader("Authorization", "%s ,  %s  , %s".format(accessToken))
                .build()
        return chain.proceed(request)
    }
}

1 Ответ

0 голосов
/ 14 апреля 2019

Это правильно. Нет варианта retrofit, доступного (пока) для родного котлина. ktor-client очень хорошая альтернатива.

Это очень хорошая статья о мультиплатформенном проекте kotlin, демонстрирующая ktor-client.

Что касается RxJava, как следует из названия, платформа реализована только для Java (и некоторых языков на основе JVM). В настоящее время предпринимаются значительные усилия для родного котлина, такого как RxKotlin / Reaktive , но ничего (широко приемлемого) еще не готово к производству.

...