問題タブ [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.
ios - JSON シリアル化により UI がフリーズする
Android および iOS 用の Kotlin Multiplatform プロジェクトを作成しています。私の目標は、ネットワークと JSON のシリアル化を共通モジュールで行い、そのデータをターゲット プラットフォームで使用することです。
しかし、問題があります。iOS アプリの UI がブロックされます。ダウンロードはネットワーク ライブラリによって行われるため問題ありませんが、JSON が十分に大きく、シリアル化に時間がかかる場合、シリアル化が完了するまで UI がフリーズします。
私の手順は次のとおりです。
一般
ktor ライブラリを使用したリクエスト メソッド:
JSON シリアル化を使用したリクエスト メソッド:
実行要求:
Dispatcher とコルーチンのスコープ:
iOS
実装DownloadListener
方法:
そしてリクエストを呼び出します
UI をブロックすることなく、メイン スレッドで非同期に実行する必要があると想定しました。
私は何を間違っていますか?コルーチンを呼び出すときに使用してみwithContext
ましたが、役に立ちませんでした。
特定のプラットフォームで UI をブロックすることなく、共通モジュールで重いタスクを実行する方法はありますか?
gradle-kotlin-dsl - Kotlin マルチプラットフォーム: Gradle Kotlin dsl を使用して一部のプラットフォームの公開をスキップする
Kotlin マルチプラットフォーム プロジェクトがあります。そして、別の部分をスキップして、部分のアーティファクトをリポジトリに公開したいと思います。私は次の設定を使用しています:
たとえば、「ファットフレームワーク」を実行していて、それを公開したいので、iosX64 をスキップしたいと思います。公開を避けるためにGradle Kotlin DSLを設定するには?