問題タブ [kotlin-multiplatform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
860 参照

ios - JSON シリアル化により UI がフリーズする

Android および iOS 用の Kotlin Multiplatform プロジェクトを作成しています。私の目標は、ネットワークと JSON のシリアル化を共通モジュールで行い、そのデータをターゲット プラットフォームで使用することです。

しかし、問題があります。iOS アプリの UI がブロックされます。ダウンロードはネットワーク ライブラリによって行われるため問題ありませんが、JSON が十分に大きく、シリアル化に時間がかかる場合、シリアル化が完了するまで UI がフリーズします。

私の手順は次のとおりです。

一般

ktor ライブラリを使用したリクエスト メソッド:

JSON シリアル化を使用したリクエスト メソッド:

実行要求:

Dispatcher とコルーチンのスコープ:

iOS

実装DownloadListener方法:

そしてリクエストを呼び出します

UI をブロックすることなく、メイン スレッドで非同期に実行する必要があると想定しました。

私は何を間違っていますか?コルーチンを呼び出すときに使用してみwithContextましたが、役に立ちませんでした。

特定のプラットフォームで UI をブロックすることなく、共通モジュールで重いタスクを実行する方法はありますか?

0 投票する
1 に答える
185 参照

gradle-kotlin-dsl - Kotlin マルチプラットフォーム: Gradle Kotlin dsl を使用して一部のプラットフォームの公開をスキップする

Kotlin マルチプラットフォーム プロジェクトがあります。そして、別の部分をスキップして、部分のアーティファクトをリポジトリに公開したいと思います。私は次の設定を使用しています:

たとえば、「ファットフレームワーク」を実行していて、それを公開したいので、iosX64 をスキップしたいと思います。公開を避けるためにGradle Kotlin DSLを設定するには?