{"id":35275,"date":"2020-06-12T21:16:35","date_gmt":"2020-06-12T12:16:35","guid":{"rendered":"https:\/\/blog.jetbrains.com\/jp\/?p=3233"},"modified":"2020-06-12T21:16:35","modified_gmt":"2020-06-12T12:16:35","slug":"kotlin-1-4-m2-released","status":"publish","type":"post","link":"https:\/\/blog.jetbrains.com\/ja\/2020\/06\/12\/kotlin-1-4-m2-released\/","title":{"rendered":"Kotlin 1.4-M2 \u30ea\u30ea\u30fc\u30b9"},"content":{"rendered":"\u3042\u3063\u3068\u3044\u3046\u9593\u306b\u3001\u6b21\u306e Kotlin 1.4 \u306e\u5f37\u529b\u306a\u6a5f\u80fd\u3092\u3044\u304f\u3064\u304b\u7d39\u4ecb\u3059\u308b\u65e5\u304c\u3084\u3063\u3066\u304d\u307e\u3057\u305f\u3002 Kotlin 1.4 \u3068\u3057\u3066\u6b63\u5f0f\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u308b\u524d\u306b\u3001Kotlin 1.4-M2 \u306e\u65b0\u6a5f\u80fd\u3068\u5f37\u5316\u6a5f\u80fd\u3092\u78ba\u8a8d\u3057\u3001\u305d\u308c\u3089\u3092\u8a66\u3057\u3066\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\u3002\r\n\r\n\r\n\r\nKotlin 1.4 \u306e\u6700\u521d\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u3092\u8a66\u3057\u3066\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u3054\u63d0\u4f9b\u3044\u305f\u3060\u3044\u305f\u7686\u3055\u3093\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002Kotlin\u306e\u6539\u5584\u306b\u5927\u304d\u304f\u5f79\u7acb\u305f\u305b\u3066\u3044\u305f\u3060\u304d\u307e\u3057\u305f\uff01\r\n\r\n\u307e\u305f\u3001\u3053\u306e\u8a18\u4e8b\u00a0\uff08\u82f1\u8a9e\uff09\u3067\u767a\u8868\u3057\u305f Kotlin 1.4-M2 \u306e\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6539\u5584\u6a5f\u80fd\u3092\u3059\u3067\u306b\u8a66\u3057\u3066\u3044\u305f\u3060\u3044\u305f\u65b9\u306b\u3082\u3001\u304a\u793c\u3092\u7533\u3057\u4e0a\u3052\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\r\n\r\n\u3053\u306e\u8a18\u4e8b\u3067\u306f\u30011.4-M2 \u306e\u65b0\u6a5f\u80fd\u3068\u4e3b\u306a\u6539\u5584\u70b9\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002\r\n\r\n\t\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u968e\u5c64\u69cb\u9020\u306b\u3088\u308a\u5b9f\u73fe\u3055\u308c\u305f\u8907\u6570\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3067\u306e\u30b3\u30fc\u30c9\u5171\u6709\u30b5\u30dd\u30fc\u30c8\r\n\t\u3055\u307e\u3056\u307e\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30bf\u30a4\u30d7\u306e\u4f5c\u6210\u3068\u69cb\u6210\u3092\u7c21\u5358\u306b\u884c\u3046\u305f\u3081\u306e\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u65b0\u3057\u3044 Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30a6\u30a3\u30b6\u30fc\u30c9\r\n\t\u3057\u3063\u304b\u308a\u3068\u8a18\u8ff0\u3055\u308c\u305f\u4e00\u8cab\u3057\u305f API \u306e\u4f5c\u6210\u306b\u5f79\u7acb\u3064\u300cExplicit API \u30e2\u30fc\u30c9\u300d\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u4f5c\u6210\u8005\u7528\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u30e2\u30fc\u30c9\r\n\tSwift \u304a\u3088\u3073 Objective-C \u304b\u3089\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e Kotlin\/Native \u30b5\u30dd\u30fc\u30c8\r\n\tKotlin\/JS \u306b\u304a\u3051\u308b\u6539\u826f\u3055\u308c\u305f Gradle DSL\u3001\u3059\u3050\u306b\u4f7f\u3048\u308b CSS \u30b5\u30dd\u30fc\u30c8\u3001\u304a\u3088\u3073 common \u30b3\u30fc\u30c9\u5411\u3051\u30a8\u30af\u30b9\u30dd\u30fc\u30c8\u6ce8\u91c8\r\n\r\n\u5b8c\u5168\u306a\u5909\u66f4\u30ea\u30b9\u30c8\u306f\u5909\u66f4\u30ed\u30b0\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u307e\u3067\u540c\u69d8\u3001\u793e\u5916\u8ca2\u732e\u8005\u306e\u7686\u69d8\u304b\u3089\u306e\u3054\u5354\u529b\u306b\u6df1\u304f\u611f\u8b1d\u3044\u305f\u3057\u307e\u3059\u3002\r\n\r\n\u305c\u3072\u30d7\u30ec\u30d3\u30e5\u30fc\u3092\u304a\u8a66\u3057\u306e\u4e0a\u3001\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044\u3002\r\n\r\n&nbsp;\r\n\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306b\u3088\u308a\u8907\u6570\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u30b3\u30fc\u30c9\u3092\u5171\u6709\r\n\u65b0\u3057\u3044\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306e\u30b5\u30dd\u30fc\u30c8\u306b\u3088\u308a\u3001\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8907\u6570\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u9593\u3067\u30b3\u30fc\u30c9\u3092\u5171\u6709\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\r\n\r\n\u4ee5\u524d\u306f\u3001\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u305f\u30b3\u30fc\u30c9\u306f\u3059\u3079\u3066\u3001\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u304b\u5171\u901a\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306b\u3044\u305a\u308c\u304b\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002\u305f\u3060\u3057\u3001\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u5834\u5408\u306f\u30011\u3064\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u5236\u9650\u3055\u308c\u308b\u305f\u3081\u3001\u307b\u304b\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u304c\u518d\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u4e00\u65b9\u3001commonMain\u00a0\u3084\u00a0commonTest\u00a0\u3068\u3044\u3063\u305f\u5171\u901a\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u5834\u5408\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e\u3059\u3079\u3066\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306b\u5171\u6709\u3055\u308c\u3066\u3057\u307e\u3046\u3068\u3044\u3046\u6b20\u70b9\u304c\u3042\u308a\u307e\u3057\u305f\u3002 \u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e API \u3092\u547c\u3073\u51fa\u3059\u306b\u306f\u3001\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u00a0actual\u00a0\u5b9f\u88c5\u304c\u5fc5\u8981\u3068\u306a\u308b\u00a0expect\u00a0\u5ba3\u8a00\u3092\u4f7f\u3046\u3057\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u3002\r\n\r\n\u3053\u306e\u305f\u3081\u3001\u3059\u3079\u3066\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u9593\u3067\u30b3\u30fc\u30c9\u3092\u5171\u6709\u3059\u308b\u306e\u306f\u7c21\u5358\u3067\u3057\u305f\u304c\u3001\u4e00\u90e8\u306b\u9650\u5b9a\u3057\u3066\u5171\u6709\u3059\u308b\u306e\u306f\u305d\u308c\u307b\u3069\u7c21\u5358\u306a\u3053\u3068\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u7279\u306b\u3001\u591a\u6570\u306e\u5171\u901a\u30ed\u30b8\u30c3\u30af\u3068\u30b5\u30fc\u30c9\u30d1\u30fc\u30c6\u30a3 API \u3092\u518d\u5229\u7528\u3059\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u4f3c\u305f\u3088\u3046\u306a\u3082\u306e\u3067\u3042\u308c\u3070\u3001\u5c1a\u66f4\u3067\u3059\u3002\r\n\r\n\u305f\u3068\u3048\u3070\u3001iOS \u3092\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u305f\u4e00\u822c\u7684\u306a\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306f\u3001iOS ARM64 \u7cfb\u30c7\u30d0\u30a4\u30b9\u3068 x64 \u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u306e2\u7a2e\u985e\u306e iOS \u95a2\u9023\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002 \u305d\u308c\u305e\u308c\u306b\u500b\u5225\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u5b9f\u969b\u306e\u3068\u3053\u308d\u3001\u30c7\u30d0\u30a4\u30b9\u3068\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u306b\u5225\u3005\u306e\u30b3\u30fc\u30c9\u3092\u7528\u610f\u3059\u308b\u5fc5\u8981\u306f\u307b\u3068\u3093\u3069\u306a\u304f\u3001\u4f9d\u5b58\u30d5\u30a1\u30a4\u30eb\u306b\u3064\u3044\u3066\u3082\u540c\u3058\u3053\u3068\u304c\u8a00\u3048\u307e\u3059\u3002 \u3064\u307e\u308a\u3001iOS \u56fa\u6709\u306e\u30b3\u30fc\u30c9\u3092\u3053\u308c\u30892\u3064\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3067\u5171\u6709\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u306a\u306e\u3067\u3059\u3002\r\n\r\n\u3053\u306e\u6761\u4ef6\u3067\u306f\u660e\u3089\u304b\u306b\u30012\u3064\u306e iOS \u30bf\u30fc\u30b2\u30c3\u30c8\u3067\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3001\u3055\u3089\u306b iOS \u30c7\u30d0\u30a4\u30b9\u3068\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc\u306e\u4e21\u65b9\u306b\u5171\u901a\u3059\u308b\u4efb\u610f\u306e API \u3092\u76f4\u63a5\u547c\u3073\u51fa\u305b\u308b Kotlin\/Native \u30b3\u30fc\u30c9\u3092\u4f7f\u7528\u3067\u304d\u308b\u306e\u304c\u7406\u60f3\u7684\u3060\u3068\u8a00\u3048\u307e\u3059\u3002\r\n\r\n\r\n\r\n\u3053\u308c\u306f\u3001\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306e\u30b5\u30dd\u30fc\u30c8\u306b\u3088\u3063\u3066\u5b9f\u73fe\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u4f7f\u7528\u3055\u308c\u308b\u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u57fa\u3065\u3044\u3066\u3001\u5404\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306b\u5b58\u5728\u3059\u308b API \u3068\u8a00\u8a9e\u6a5f\u80fd\u3092\u63a8\u8ad6\u3057\u3066\u9069\u5408\u3055\u305b\u3066\u3044\u307e\u3059\u3002\r\n\u4f7f\u7528\u65b9\u6cd5\r\n\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b 1.4-M2 Kotlin \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4eca\u3059\u3050\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3057\u3087\u3046\uff01\r\n\r\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e gradle.properties \u30d5\u30a1\u30a4\u30eb\u306b\u6b21\u306e\u30d5\u30e9\u30b0\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002\r\nkotlin.mpp.enableGranularSourceSetsMetadata=true\r\n\r\n\u306a\u304a\u3001Kotlin 1.4-M2 \u4ee5\u964d\u3001\u968e\u5c64\u69cb\u9020\u3060\u3051\u3067\u306a\u304f\u3001\u3059\u3079\u3066\u306e\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306b\u306f Gradle 6.0 \u304c\u5fc5\u8981\u3067\u3059\u3002\r\n\r\n\u968e\u5c64\u69cb\u9020\u306f\u3001\u4e00\u822c\u7684\u306a\u30de\u30eb\u30c1\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u30b7\u30ca\u30ea\u30aa\u306b\u7528\u610f\u3055\u308c\u305f\u30bf\u30fc\u30b2\u30c3\u30c8\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u4f7f\u3063\u3066\u3001\u307e\u305f\u306f\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3092\u63a5\u7d9a\u3057\u3066\u624b\u52d5\u3067\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u305f\u3068\u3048\u3070\u3001ios()\u00a0 \u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u4e0a\u306b\u793a\u3059\u3088\u3046\u306b2\u3064\u306e iOS \u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\r\nkotlin runnable=\"false\"] kotlin { ios() \/\/ iOS device and simulator\r\ntargets; iosMain and iosTest source sets}\r\n\r\n\u4ed6\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7d44\u307f\u5408\u308f\u305b\u306b\u3064\u3044\u3066\u306f\u3001dependsOn \u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u4f7f\u3063\u3066\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3092\u63a5\u7d9a\u3057\u3001\u624b\u52d5\u3067\u4f5c\u6210\u3057\u307e\u3059\u3002\r\n\r\n\r\nkotlin {\r\n\r\n   linuxX64()\r\n   mingwX64()\r\n   macosX64()\r\n\r\n   sourceSets {\r\n       ...\r\n\r\n       val desktopMain by creating {\r\n           dependsOn(commonMain)\r\n       }\r\n\r\n       val linuxX64Main by getting {\r\n           dependsOn(desktopMain)\r\n       }\r\n\r\n       val mingwX64Main by getting {\r\n           dependsOn(desktopMain)\r\n       }\r\n\r\n       val macosX64Main by getting {\r\n           dependsOn(desktopMain)\r\n       }\r\n   }\r\n}\r\n\r\n\u6b21\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7d44\u307f\u5408\u308f\u305b\u3067\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\r\n\r\n\tJVM + JS + Native\r\n\tJVM + Native\r\n\tJS + Native\r\n\tJVM + JS\r\n\tNative\r\n\r\n\u73fe\u6642\u70b9\u3067\u306f\u3001\u6b21\u306e\u7d44\u307f\u5408\u308f\u305b\u306b\u306f\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u5171\u6709\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093\u3002\r\n\r\n\t\u8907\u6570\u306e JVM \u30bf\u30fc\u30b2\u30c3\u30c8\r\n\tJVM + Android \u30bf\u30fc\u30b2\u30c3\u30c8\r\n\t\u8907\u6570\u306e JS \u30bf\u30fc\u30b2\u30c3\u30c8\r\n\r\n\u3054\u5e0c\u671b\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u305c\u3072\u30e1\u30fc\u30eb\u3067\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\uff08feedback@kotlinlang.org\uff09\u3002 \u3069\u306e\u7d44\u307f\u5408\u308f\u305b\u304c\u3088\u308a\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u306e\u304b\u304c\u308f\u304b\u308c\u3070\u3001\u5bfe\u5fdc\u3092\u512a\u5148\u4ed8\u3051\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002\r\n\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30b3\u30fc\u30c9\u3092\u5171\u6709\r\n\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306b\u3088\u308a\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u3082\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u30b5\u30d6\u30bb\u30c3\u30c8\u306b\u5bfe\u3057\u3066\u5171\u901a API \u3092\u9069\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002\r\n\r\n\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u516c\u958b\u3055\u308c\u308b\u3068\u3001\u305d\u306e\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e API \u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306b\u95a2\u3059\u308b\u60c5\u5831\u3068\u3068\u3082\u306b\u30e9\u30a4\u30d6\u30e9\u30ea\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u306b\u7d44\u307f\u8fbc\u307e\u308c\u307e\u3059\u3002 \u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3059\u308b\u969b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306f\u3001\u5404\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3067\u5229\u7528\u3067\u304d\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u306eAPI\u306b\u6b63\u78ba\u306b\u30a2\u30af\u30bb\u30b9\u3057\u307e\u3059\u3002\r\n\r\n\u305f\u3068\u3048\u3070\u3001kotlinx.coroutines \u30ea\u30dd\u30b8\u30c8\u30ea\u306e native-mt \u30d6\u30e9\u30f3\u30c1\u306b\u3042\u308b\u6b21\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u968e\u5c64\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002\r\n\r\n\r\n\r\nconcurrent \u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306f\u3001runBlocking \u95a2\u6570\u3092\u5ba3\u8a00\u3057\u305f\u4e0a\u3067\u3001JVM\u3068\u30cd\u30a4\u30c6\u30a3\u30d6\u30bf\u30fc\u30b2\u30c3\u30c8\u5411\u3051\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3055\u308c\u307e\u3059\u3002 \u30e9\u30a4\u30d6\u30e9\u30ea\u306e concurrent \u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u300c\u30bf\u30fc\u30b2\u30c3\u30c8\u30b7\u30b0\u30cd\u30c1\u30e3\u30fc\u300d\u3068\u4e00\u81f4\u3059\u308b\u305f\u3081\u3001\u5b89\u5fc3\u3057\u3066JVM\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u30cd\u30a4\u30c6\u30a3\u30d6\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u5171\u6709\u3059\u308b\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u304b\u3089 runBlocking() \u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\u4f9d\u5b58\u95a2\u4fc2\u306e\u6307\u5b9a\u306f\u4e00\u5ea6\u304d\u308a\r\n\u3053\u308c\u304b\u3089\u306f\u3001\u540c\u4e00\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5225\u30d0\u30fc\u30b8\u30e7\u30f3\u3078\u306e\u4f9d\u5b58\u3092\u3001\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3068\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306b\u6307\u5b9a\u3059\u308b\u4ee3\u308f\u308a\u306b\u3001\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306b\u4e00\u5ea6\u3060\u3051\u6307\u5b9a\u3059\u308b\u3060\u3051\u3067\u3088\u304f\u306a\u308a\u307e\u3059\u3002\r\nkotlin {\r\n  sourceSets {\r\n      val desktopMain by creating {\r\n          dependencies {\r\n               implementation(\"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7-1.4-M2\")\r\n          }\r\n      }\r\n  }\r\n}\r\n\r\nKotlinx \u30e9\u30a4\u30d6\u30e9\u30ea\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u540d\u306b\u306f\u3001 -common \u3084 -native \u306e\u3088\u3046\u306a\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u6307\u5b9a\u3059\u308b\u63a5\u5c3e\u8f9e\u3092\u4f7f\u308f\u306a\u3044\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u3089\u306e\u30b5\u30dd\u30fc\u30c8\u306f\u7d42\u4e86\u3057\u3066\u3044\u307e\u3059\u3002 \u4ee3\u308f\u308a\u306b\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u30d9\u30fc\u30b9\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u540d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u4e0a\u306e\u4f8b\u3067\u306f\u3001kotlinx-coroutines-core \u3067\u3059\u3002 \u3053\u306e\u5909\u66f4\u306f\u73fe\u5728 stdlib \u3068 kotlin.test \u30e9\u30a4\u30d6\u30e9\u30ea\uff08stdlib-common and test-common\uff09\u306b\u306f\u5f71\u97ff\u3057\u307e\u305b\u3093\u304c\u3001\u305d\u308c\u306b\u3064\u3044\u3066\u3082\u5f8c\u3067\u89e3\u6c7a\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002\r\n\r\n\u7279\u5b9a\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306b\u9650\u5b9a\u3057\u3066\u4f9d\u5b58\u95a2\u4fc2\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001\u6a19\u6e96\u30e9\u30a4\u30d6\u30e9\u30ea\u3068kotlinx\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30d0\u30ea\u30a2\u30f3\u30c8\u306b -jvm or -js \u306a\u3069\u306e\u63a5\u5c3e\u8f9e\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001kotlinx-coroutines-core-jvm \u3068\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\u968e\u5c64\u69cb\u9020\u306b\u304a\u3051\u308b\u30cd\u30a4\u30c6\u30a3\u30d6\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6d3b\u7528\r\n\u8907\u6570\u306e\u30cd\u30a4\u30c6\u30a3\u30d6\u30bf\u30fc\u30b2\u30c3\u30c8\u3067\u5171\u6709\u3055\u308c\u308b\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306b\u3001Foundation\u3001UIKit\u3001posix \u3068\u3044\u3063\u305f\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u4f9d\u5b58\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u3053\u306e\u305f\u3081\u3001\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u4f9d\u5b58\u95a2\u4fc2\u306b\u5236\u9650\u3055\u308c\u308b\u3053\u3068\u306a\u304f\u3088\u308a\u591a\u304f\u306e\u30cd\u30a4\u30c6\u30a3\u30d6\u30b3\u30fc\u30c9\u3092\u5171\u6709\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u7279\u5225\u306a\u624b\u9806\u306f\u5fc5\u8981\u306a\u304f\u3001\u3059\u3079\u3066\u81ea\u52d5\u7684\u306b\u884c\u308f\u308c\u307e\u3059\u3002 IntelliJ IDEA \u306b\u304a\u3044\u3066\u3001\u5171\u6709\u30b3\u30fc\u30c9\u3067\u4f7f\u7528\u3067\u304d\u308b\u5171\u901a\u5ba3\u8a00\u304c\u691c\u51fa\u3055\u308c\u307e\u3059\u3002\r\n\r\n\u305f\u3060\u3057\u3001\u3044\u304f\u3064\u304b\u306e\u5236\u9650\u304c\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\r\n\t\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u56fa\u6709\u306e\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3067\u5171\u6709\u3055\u308c\u3066\u3044\u308b\u30cd\u30a4\u30c6\u30a3\u30d6\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3067\u306e\u307f\u6a5f\u80fd\u3057\u307e\u3059\u3002 \u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u968e\u5c64\u3088\u308a\u4e0a\u4f4d\u3067\u5171\u6709\u3055\u308c\u3066\u3044\u308b\u30cd\u30a4\u30c6\u30a3\u30d6\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u3067\u306f\u6a5f\u80fd\u3057\u307e\u305b\u3093\u3002\r\n\u305f\u3068\u3048\u3070\u3001 watchosMain \u3068 iosMain \u306e\u89aa\u3067\u3042\u308b\u00a0nativeDarwinMain \u304c\u3042\u308a\u3001iosMain \u306b\u306f\u3055\u3089\u306b iosArm64Main \u3068 iosX64Main \u3068\u3044\u3046\u5b50\u304c2\u3064\u3042\u308b\u5834\u5408\u3001iosMain \u306b\u306f\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u4f9d\u5b58\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u304c\u3001nativeDarwinMain \u306b\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\r\n\t\u3053\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u306f\u3001Kotlin\/Native \u306b\u542b\u307e\u308c\u308b\u76f8\u4e92\u904b\u7528\u6a5f\u80fd\uff08interop\uff09\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u306e\u307f\u6a5f\u80fd\u3057\u307e\u3059\u3002\r\n\r\n\u6280\u8853\u7684\u306a\u8a73\u7d30\u306b\u3064\u3044\u3066\u3001\u3055\u3089\u306b\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002\r\n\u4f7f\u7528\u65b9\u6cd5\r\n\u5171\u6709\u30bd\u30fc\u30b9\u30bb\u30c3\u30c8\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u4f9d\u5b58\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u306b\u306f\u3001gradle.properties \u306b\u6b21\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\nkotlin.mpp.enableGranularSourceSetsMetadata=true\r\nkotlin.native.enableDependencyPropagation=false\r\n\r\n\u968e\u5c64\u69cb\u9020\u306b\u95a2\u3059\u308b\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u304a\u5f85\u3061\u3057\u3066\u3044\u307e\u3059\r\n\u968e\u5c64\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u306f\u73fe\u5728\u3001\u6280\u8853\u7684\u306a\u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u3042\u308a\u958b\u767a\u6bb5\u968e\u306b\u3042\u308a\u307e\u3059\u3002 \u4fee\u6b63\u304c\u4e88\u5b9a\u3055\u308c\u3066\u3044\u308b\u65e2\u77e5\u306e\u8ab2\u984c\u306b\u3064\u3044\u3066\u3082\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002\u4e00\u90e8\u306b\u306f\u56de\u907f\u7b56\u3082\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\nKotlin Slack \u306e \\#multiplatform\u30c1\u30e3\u30f3\u30cd\u30eb \u3067\u3001\u305c\u3072\u3054\u8cea\u554f\u304f\u3060\u3055\u3044\u3002\u307e\u305f\u3001\u8ab2\u984c\u30c8\u30e9\u30c3\u30ab\u30fc YouTrack \u3078\u306e\u30d0\u30b0\u306e\u5831\u544a\u3082\u304a\u5f85\u3061\u3057\u3066\u3044\u307e\u3059\u3002 \u3053\u308c\u306f\u8907\u96d1\u3067\u5927\u304d\u306a\u30a4\u30f3\u30d1\u30af\u30c8\u306e\u3042\u308b\u6a5f\u80fd\u3067\u3042\u308b\u305f\u3081\u3001\u7686\u3055\u3093\u304b\u3089\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u304c\u7279\u306b\u5f79\u7acb\u3061\u307e\u3059\uff01\r\n\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306f Gradle 6.0 \u4ee5\u964d\u304c\u5fc5\u8981\r\nKotlin 1.4-M2 \u3088\u308a\u3001\u3059\u3079\u3066\u306e\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306f Gradle 6.0 \u4ee5\u964d\u304c\u5fc5\u8981\u3068\u306a\u308a\u307e\u3059\u3002 kotlin-multiplatform \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e Gradle \u3092\u5fc5\u305a\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u65b0\u3057\u3044\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30a6\u30a3\u30b6\u30fc\u30c9\r\n\u67d4\u8edf\u6027\u306e\u9ad8\u3044\u65b0\u3057\u3044 Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30a6\u30a3\u30b6\u30fc\u30c9\u306e\u5c0e\u5165\u306b\u3088\u308a\u30011\u3064\u306e\u753b\u9762\u304b\u3089\u3001\u69d8\u3005\u306a\u30bf\u30a4\u30d7\u306e\u00a0Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u7c21\u5358\u306b\u4f5c\u6210\u304a\u3088\u3073\u69cb\u6210\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u3082\u306f\u3084\u3001UI \u306a\u3057\u3067\u306f\u69cb\u6210\u304c\u56f0\u96e3\u306b\u306a\u308a\u304c\u3061\u306a\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3082\u3053\u3053\u3067\u69cb\u6210\u53ef\u80fd\u3067\u3059\u3002\r\n\r\n\r\n\r\n\u4ee5\u524d\u3001Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u306f\u3001\u7570\u306a\u308b\u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u7528\u610f\u3055\u308c\u305f\u69d8\u3005\u306a\u5834\u6240\u3067\u884c\u308f\u308c\u3066\u3044\u307e\u3057\u305f\u3002 \u3053\u308c\u304b\u3089\u306f\u3001\u3053\u306e\u64cd\u4f5c\u30921\u3064\u5834\u6240\u306b\u96c6\u7d04\u3057\u3066\u7c21\u4fbf\u5316\u3059\u308b\u3068\u3068\u3082\u306b\u3001\u67d4\u8edf\u6027\u3092\u4e0e\u3048\u3066\u3044\u307e\u3059\u3002\r\n\r\n\t\u4f5c\u696d\u76ee\u7684\u306b\u5408\u3063\u305f \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u9078\u629e \u3057\u307e\u3059\u3002\r\n\t\u30d3\u30eb\u30c9\u30b7\u30b9\u30c6\u30e0\u3092\u9078\u629e \u3057\u307e\u3059\u3002Gradle\uff08Kotlin \u307e\u305f\u306f Groovy DSL\uff09\u3001Marven\u3001\u307e\u305f\u306f IntelliJ \u3092\u9078\u3079\u307e\u3059\u3002 \u30a6\u30a3\u30b6\u30fc\u30c9\u306b\u306f\u9078\u629e\u3057\u305f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u30d3\u30eb\u30c9\u30b7\u30b9\u30c6\u30e0\u306e\u307f\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\r\n\t\u30e1\u30a4\u30f3\u753b\u9762\u306e\u53f3\u5074\u3067\u76f4\u63a5\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u3092\u30d7\u30ec\u30d3\u30e5\u30fc\u3057\u307e\u3059\u3002\r\n\r\n\u3053\u3053\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3092\u7d42\u4e86\u3059\u308b\u304b\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u3068\u3057\u3066\u6b21\u306e\u753b\u9762\u306b\u9032\u307f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\r\n\t\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u3092\u8ffd\u52a0 \/ \u524a\u9664\u3067\u304d\u307e\u3059\u3002\r\n\t\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u8a2d\u5b9a\u3092\u69cb\u6210\u3067\u304d\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u30bf\u30fc\u30b2\u30c3\u30c8 JVM \u30d0\u30fc\u30b8\u30e7\u30f3\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3001\u30c6\u30b9\u30c8\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306a\u3069\u3067\u3059\u3002\r\n\r\n\r\n\r\n\t\u6b21\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u4f9d\u5b58\u95a2\u4fc2\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002\r\n\r\n\tiOS\u3068\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\tAndroid\u3068\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\tJVM\u30e2\u30b8\u30e5\u30fc\u30eb\r\n\r\n\r\n\r\n\r\n\r\n\u5c06\u6765\u7684\u306b\u306f\u3001\u69cb\u6210\u30aa\u30d7\u30b7\u30e7\u30f3\u3068\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u3055\u3089\u306b\u8ffd\u52a0\u3057\u3001Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30a6\u30a3\u30b6\u30fc\u30c9\u306e\u67d4\u8edf\u6027\u3092\u3055\u3089\u306b\u9ad8\u3081\u308b\u4e88\u5b9a\u3067\u3059\u3002\r\n\u4f7f\u7528\u65b9\u6cd5\r\n\r\n\t1.4-M2 Kotlin \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002\r\n\tIntelliJ IDEA\u3067\u3001\u30d5\u30a1\u30a4\u30eb | \u65b0\u898f | \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002\r\n\t\u5de6\u5074\u306e\u30d1\u30cd\u30eb\u3067\u3001Kotlin (Experimental Wizard)\uff08\u5b9f\u9a13\u7684\u30a6\u30a3\u30b6\u30fc\u30c9\uff09\u3092\u9078\u629e\u3057\u307e\u3059\u3002\r\n\t\u65b0\u3057\u3044Kotlin\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\r\n\r\nExplicit API\u30e2\u30fc\u30c9\u306b\u3088\u308b\u3001\u3057\u3063\u304b\u308a\u3068\u8a18\u8ff0\u3055\u308c\u305f\u4e00\u8cab\u6027\u306e\u3042\u308b API\r\n\u30e9\u30a4\u30d6\u30e9\u30ea\u4f5c\u6210\u8005\u304c\u3057\u3063\u304b\u308a\u3068\u8a18\u8ff0\u3055\u308c\u305f\u4e00\u8cab\u6027\u306e\u3042\u308b API \u3092\u4f5c\u6210\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u65b0\u3057\u3044\u30b3\u30f3\u30d1\u30a4\u30e9\u30e2\u30fc\u30c9\u3092\u5c0e\u5165\u3057\u3066\u3044\u307e\u3059\u3002 Explicit API \u30e2\u30fc\u30c9\u3067\u306f\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u30e9\u30a4\u30d6\u30e9\u30ea\u306e public API \u3068\u3057\u3066\u516c\u958b\u3055\u308c\u308b\u5ba3\u8a00\u306b\u8ffd\u52a0\u306e\u691c\u8a3c\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002\r\n\r\n\t\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u53ef\u8996\u6027\uff08Visibility\uff09\u3092\u4f7f\u7528\u3057\u3066public \u306a API \u3092\u516c\u958b\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u3001\u5ba3\u8a00\u306b\u5bfe\u3057\u3066\u53ef\u8996\u6027\u4fee\u98fe\u5b50\u306e\u6307\u5b9a\u304c\u5fc5\u9808\u306b\u306a\u308a\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u3042\u308b\u5ba3\u8a00\u3092\u8aa4\u3063\u3066 public \u3068\u3057\u3066\u516c\u958b\u3059\u308b\u3053\u3068\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002\r\n\tpublic API \u306b\u3088\u308a\u516c\u958b\u3055\u308c\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u95a2\u6570\u306b\u306f\u660e\u793a\u7684\u306a\u578b\u306e\u6307\u5b9a\u304c\u5fc5\u9808\u306b\u306a\u308a\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001API \u30e6\u30fc\u30b6\u30fc\u304c\u3069\u306e\u578b\u306e API \u30e1\u30f3\u30d0\u30fc\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u3092\u8a8d\u8b58\u3067\u304d\u307e\u3059\u3002\r\n\r\n\r\n\r\n\u69cb\u6210\u306b\u3088\u308a\u3001\u3053\u308c\u3089\u306e\u78ba\u8a8d\u3067\u30a8\u30e9\u30fc\uff08strict\uff08\u53b3\u683c\uff09\u30e2\u30fc\u30c9\uff09\u307e\u305f\u306f\u8b66\u544a\uff08warning\uff08\u8b66\u544a\uff09\u30e2\u30fc\u30c9\uff09\u3092\u767a\u751f\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f5c\u6210\u4f53\u9a13\u3092\u6539\u5584\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u5c06\u6765\u7684\u306b\u3001\u691c\u8a3c\u3092\u3055\u3089\u306b\u8ffd\u52a0\u3059\u308b\u4e88\u5b9a\u3067\u3059\u3002 \u3053\u308c\u306b\u3064\u3044\u3066\u306f\u3001\u3053\u3061\u3089\u306e KEEP \u3067\u3055\u3089\u306b\u8a73\u3057\u304f\u304a\u8aad\u307f\u304f\u3060\u3055\u3044\u3002 Explicit API \u30e2\u30fc\u30c9\u3092\u3059\u3050\u306b\u8a66\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u305c\u3072\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044\u3002\r\n\r\nExplicit API \u30e2\u30fc\u30c9\u3067\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u306b\u306f\u3001Gradle \u30d3\u30eb\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u6b21\u306e\u3044\u305a\u308c\u304b\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\nkotlin {   \r\n   explicitApi() \/\/ for strict mode\r\n   \/\/ or\r\n   explicitApiWarning() \/\/ for warning mode\r\n}\r\n\r\nGroovy\u3067\u306f\u3001\u5225\u306e\u69cb\u6587\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\r\nkotlin {   \r\n   explicitApi = 'strict'\r\n   \/\/ or\r\n   explicitApi = 'warning'\r\n}\r\n\r\ncommand-line \u30b3\u30f3\u30d1\u30a4\u30e9\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001 -Xexplicit-api \u30b3\u30f3\u30d1\u30a4\u30e9\u30aa\u30d7\u30b7\u30e7\u30f3\u3092 strict \u307e\u305f\u306f warning \u306b\u3057\u3066\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n-Xexplicit-api={strict|warning}\r\n\r\n\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u3068\u305d\u306e\u4ed6\u306e\u5f37\u5316\u6a5f\u80fd\u306e Kotlin\/Native \u30b5\u30dd\u30fc\u30c8\r\n\u3053\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u306f\u3001Swift \u3068 Objective-C \u306b\u304a\u3051\u308b Kotlin \u306e\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u306e\u30b5\u30dd\u30fc\u30c8\u304c\u3088\u3046\u3084\u304f\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002\u305f\u3060\u3057\u3001\u73fe\u6642\u70b9\u3067\u30ab\u30d0\u30fc\u3055\u308c\u308b\u306e\u306f\u57fa\u672c\u7684\u306a\u30b1\u30fc\u30b9\u306e\u307f\u3067\u3059\u3002 \u79c1\u305f\u3061\u306f\u3001Swift \u3068 Objective-C \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u30b3\u30eb\u30fc\u30c1\u30f3\u306e\u6027\u80fd\u3092\u5168\u958b\u3067\u304d\u308b\u3088\u3046\u306b\u6539\u5584\u3092\u7d9a\u3051\u3066\u3044\u307e\u3059\u3002 \u4e00\u65b9\u3001Kotlin\/Native \u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u5b89\u5b9a\u6027\u3078\u306e\u53d6\u308a\u7d44\u307f\u306b\u3064\u3044\u3066\u3001\u305d\u306e\u6210\u679c\u3092\u4e00\u90e8\u767a\u8868\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\r\nSwift\u3068Objective-C \u306b\u304a\u3051\u308b Kotlin \u306e\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u306e\u30b5\u30dd\u30fc\u30c8\r\nSwift \u3068 Objective-C \u30b3\u30fc\u30c9\u304b\u3089\u4e3b\u306a Kotlin \u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306e\u30b5\u30dd\u30fc\u30c8\u3092\u62e1\u5927\u3057\u7d9a\u3051\u3066\u3044\u307e\u3059\u3002 \u65e2\u77e5\u306e\u5236\u7d04\u3068\u3057\u3066\u3001\u3053\u308c\u307e\u3067\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u3001Kotlin\u30b3\u30eb\u30fc\u30c1\u30f3\u306e\u30b5\u30dd\u30fc\u30c8\u304c\u4e0d\u5b8c\u5168\u3067\u3042\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u304cSwift\u307e\u305f\u306fObjective-C\u30b3\u30fc\u30c9\u304b\u3089\u4f7f\u7528\u3067\u304d\u306a\u304b\u3063\u305f\u306e\u3067\u3059\u3002\r\n\r\nM2 \u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u306f\u3001Swift \u3068 Objective-C \u306b\u304a\u3051\u308b\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u306e\u57fa\u672c\u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002 Kotlin \u30e2\u30b8\u30e5\u30fc\u30eb\u3092 Apple \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u5834\u5408\u3001\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\uff08Swift\/Objective-C \u7528\u8a9e\u3067\u306f completionHandler\uff09\u306e\u95a2\u6570\u3068\u3057\u3066\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u3092\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u751f\u6210\u3055\u308c\u305f\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30d8\u30c3\u30c0\u30fc\u306b\u3053\u306e\u95a2\u6570\u304c\u3042\u308b\u5834\u5408\u3001Swift \u307e\u305f\u306f Objective-C \u30b3\u30fc\u30c9\u304b\u3089\u547c\u3073\u51fa\u3057\u3001\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u305f\u3068\u3048\u3070\u3001\u3053\u306eKotlin\u95a2\u6570\u3092\u8a18\u8ff0\u3057\u305f\u5834\u5408:\r\nsuspend fun queryData(id: Int): String = ...\r\n\r\nSwift \u304b\u3089\u6b21\u306e\u3088\u3046\u306b\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059:\r\nqueryData(id: 17) { result, error in\r\n   if let e = error {\r\n       print(\"ERROR: \\(e)\")\r\n   } else {\r\n       print(result!)\r\n   }\r\n}\r\n\r\n\u305f\u3060\u3057\u3001M2 \u30d7\u30ec\u30d3\u30e5\u30fc\u3067\u306f\u3001\u30b5\u30b9\u30da\u30f3\u30c9\u95a2\u6570\u3092\u547c\u3073\u51fa\u3057\u306f\u3001\u30e1\u30a4\u30f3\u30b9\u30ec\u30c3\u30c9\u304b\u3089\u306e\u307f\u306b\u9650\u5b9a\u3055\u308c\u308b\u3053\u3068\u306b\u3054\u6ce8\u610f\u304f\u3060\u3055\u3044\u3002\r\n\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3067Kotlin\/Native\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\r\n\u4ee5\u524d\u3001Kotlin\/Native \u30b3\u30fc\u30c9\u306e\u5b9f\u884c\u306f\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u5185\u304b\u3001IntelliJ IDEA \u3067 Gradle \u30bf\u30b9\u30af\u3092\u5b9f\u884c\u3057\u3066\u306e\u307f\u884c\u3048\u307e\u3057\u305f\u3002 \u3053\u308c\u304b\u3089\u306f\u3001\u4ed6\u306e Kotlin \u30b3\u30fc\u30c9\u3068\u540c\u69d8\u306b\u3001\u30ac\u30bf\u30fc\u30a2\u30a4\u30b3\u30f3\u3092\u4f7f\u3063\u3066\u7c21\u5358\u306b\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\r\n\r\n\r\nC interop\u306b\u304a\u3051\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6539\u5584\r\nKotlin\/Native \u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6539\u5584\u3059\u308b\u305f\u3081\u3001C\u00a0 interop\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30d3\u30eb\u30c9\u3092\u518d\u69cb\u7bc9\u3057\u307e\u3057\u305f\u3002 \uff08\u3053\u308c\u3089\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u3001Kotlin \u30b3\u30fc\u30c9\u3067 C \u304a\u3088\u3073 Objective-C \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u5ba3\u8a00\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u3067\u3059\u3002\uff09 \u5909\u66f4\u306f\u5185\u90e8\u7684\u306b\u884c\u308f\u308c\u305f\u3082\u306e\u3067\u3059\u304c\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u6539\u5584\u3068\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u306e\u30b5\u30a4\u30ba\u524a\u6e1b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u65b0\u3057\u3044\u30c4\u30fc\u30ea\u30f3\u30b0\u306b\u3088\u3063\u3066\u3001interop \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u901f\u5ea6\u306f\u4ee5\u524d\u306e4\u500d\u3068\u306a\u308a\u3001\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u306e\u30b5\u30a4\u30ba\u304c25%\u304b\u308930%\u7e2e\u5c0f\u3055\u308c\u3066\u3044\u307e\u3059\uff01\r\n\r\ninterop \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u7528\u3082\u52a0\u901f\u5316\u3055\u308c\u3066\u304a\u308a\u3001Kotlin 1.4-M2 \u3067\u306f\u3001C\u00a0 interop\u3092\u4f7f\u3063\u305f Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u9593\u304c\u77ed\u7e2e\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\u30b3\u30f3\u30d1\u30a4\u30e9\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u3068 Gradle\u00a0Daemon \u4f7f\u7528\u306e\u5b89\u5b9a\u5316\r\n1.3.70\u3067\u306f\u3001Kotlin\/Native \u30b3\u30f3\u30d1\u30a4\u30eb\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6539\u5584\u3059\u308b\u305f\u3081\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f9d\u5b58\u95a2\u4fc2\u306e\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u3068 Gradle Daemon \u304b\u3089\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u5b9f\u884c\u3068\u3044\u30462\u3064\u306e\u65b0\u6a5f\u80fd\u3092\u5c0e\u5165\u3057\u307e\u3057\u305f\u3002 \u3053\u308c\u3089\u306f\u53d6\u308a\u7d44\u307f\u4e2d\u306e\u6a5f\u80fd\u3067\u3042\u3063\u305f\u305f\u3081\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u4e2d\u306b\u306f\u3001\u7279\u5b9a\u306e\u30b1\u30fc\u30b9\u306b\u304a\u3044\u3066\u8ab2\u984c\u3084\u5b89\u5b9a\u6027\u4e0d\u8db3\u3092\u7d4c\u9a13\u3057\u305f\u4eba\u3082\u3044\u305f\u304b\u3068\u601d\u3044\u307e\u3059\u3002\r\n\r\n\u7686\u3055\u3093\u304b\u3089\u306e\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u306e\u304a\u9670\u3067\u3001\u3053\u308c\u3089\u306e\u6a5f\u80fd\u306b\u751f\u3058\u3066\u3044\u305f\u591a\u6570\u306e\u8ab2\u984c\u3092\u4fee\u6b63\u3057\u3001\u5b89\u5b9a\u6027\u3092\u7dcf\u5408\u7684\u306b\u6539\u5584\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002 \u3053\u308c\u3089\u306e\u6a5f\u80fd\u3067\u554f\u984c\u306b\u906d\u9047\u3057\u3066\u3044\u305f\u30e6\u30fc\u30b6\u30fc\u3084 Kotlin\/Native \u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u8a66\u3059\u6a5f\u4f1a\u304c\u306a\u304b\u3063\u305f\u30e6\u30fc\u30b6\u30fc\u306f\u3001\u305c\u3072\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\r\nKotlin\/JS \u306e\u6539\u5584\r\n1.4-M2 \u3067\u306f\u3001Kotlin \u306e JavaScript \u30bf\u30fc\u30b2\u30c3\u30c8\u306f\u3001Gradle \u306e\u547d\u540d\u898f\u5247\u3092 Kotlin \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u547d\u540d\u898f\u5247\u306b\u3055\u3089\u306b\u8fd1\u3065\u3051\u3066\u8abf\u6574\u3057\u3066\u3044\u307e\u3059\u3002 \u307e\u305f\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u8a2d\u5b9a\u306b\u3088\u308a\u7d30\u304b\u3044\u5236\u5fa1\u3092\u8ffd\u52a0\u3001@JsExport \u6ce8\u91c8\u306ecommon\u30b3\u30fc\u30c9\u5bfe\u5fdc\u3001webpack \u306b\u3088\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306e CSS \u30b5\u30dd\u30fc\u30c8\u3092\u6709\u52b9\u5316\u3057\u3066\u3044\u307e\u3059\u3002\r\nGradle DSL \u306e\u5909\u66f4\r\n\u547d\u540d\u306e\u5909\u66f4\r\n\u4ed6\u306e Kotlin \u30bf\u30fc\u30b2\u30c3\u30c8\u306b\u3055\u3089\u306b\u8fd1\u3065\u3051\u308b\u305f\u3081\u3001\u4e00\u90e8\u306e\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308bKotlin\/JS Gradle \u69cb\u6210\u306e\u547d\u540d\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\u3002 Kotlin\/JS Gradle \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u304a\u3051\u308b\u3053\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u69cb\u6210\u30d6\u30ed\u30c3\u30af\u30921.4-M2\u3067\u898b\u3066\u307f\u307e\u3057\u3087\u3046\u3002\u5909\u66f4\u3055\u308c\u305f2\u3064\u306e\u547d\u540d\u304c\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\nkotlin {\r\n    js {\r\n        nodejs() \/\/ and\/or browser()\r\n        binaries.executable()\r\n    }\r\n}\r\n\r\n\r\n\ttarget \u306f js \u3068\u306a\u3063\u3066\u304a\u308a\u3001Kotlin \u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u30d7\u30e9\u30b0\u30a4\u30f3\u3067\u4f7f\u7528\u3055\u308c\u308b\u69cb\u6587\u3068\u4e00\u8cab\u3057\u3066\u3044\u307e\u3059\u3002\r\n\tKotlin 1.4-M1\u3067\u5c0e\u5165\u3055\u308c\u305f produceExecutable() \u306f binaries.executable() \u3068\u306a\u3063\u3066\u304a\u308a\u3001Kotlin\/Native \u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u547d\u540d\u3068\u4e00\u8cab\u3057\u3066\u3044\u307e\u3059\u3002\r\n\r\nbinaries.executable() \u306e\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u30011.4-M1 \u306b\u95a2\u3059\u308b\u30d6\u30ed\u30b0\u8a18\u4e8b\u306e\u300cKotlin\/JS | Gradle DSL\u306e\u5909\u66f4\u300d\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5358\u4f4d\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u8a2d\u5b9a\r\nKotlin 1.4-M1 \u306b\u304a\u3044\u3066\u3001\u6700\u9069\u5316\u3055\u308c\u305f DCE\u3001TypeScript \u5ba3\u8a00\u30d7\u30ec\u30d3\u30e5\u30fc\u306e\u307b\u304b\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3001IR\u3001\u305d\u3057\u3066\u4e21\u65b9\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u30e2\u30fc\u30c9\u9593\u3092\u5207\u308a\u66ff\u3048\u308b gradle.properties \u306e\u8a2d\u5b9a\u306a\u3069\u304c\u642d\u8f09\u3055\u308c\u305f\u3001\u65b0\u3057\u3044 IR \u30b3\u30f3\u30d1\u30a4\u30e9\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u521d\u3081\u3066\u5c0e\u5165\u3057\u307e\u3057\u305f\u3002 M2 \u3067\u306f\u3001\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u30b3\u30f3\u30d1\u30a4\u30e9\u30e2\u30fc\u30c9\u306b\u5bfe\u3057\u3066\u3001Gradle \u69cb\u6210\u304b\u3089\u76f4\u63a5\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5358\u4f4d\u3067\u884c\u3048\u308b\u7d30\u304b\u3044\u5236\u5fa1\u304c\u5c0e\u5165\u3055\u308c\u3066\u3044\u307e\u3059\u3002\r\n\r\n\u30b3\u30f3\u30d1\u30a4\u30e9\u30e2\u30fc\u30c9\u9593\u306e\u5207\u308a\u66ff\u3048\u3092\u884c\u3046\u306b\u306f\u3001Gradle \u30d3\u30eb\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u30bf\u30a4\u30d7\u3092 js \u95a2\u6570\u306b\u6e21\u3057\u307e\u3059\u3002 \u4f8b\uff1a\r\nkotlin {\r\n   js(IR) { \/\/ or: LEGACY, BOTH\r\n       \/\/ . . .\r\n   }\r\n}\r\n\r\n\u3053\u306e\u3088\u3046\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30b3\u30f3\u30d1\u30a4\u30e9\u30bf\u30a4\u30d7\u3092\u8a2d\u5b9a\u3059\u308b\u3068\u3001gradle.properties \u306b\u6307\u5b9a\u3055\u308c\u305f\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u8a2d\u5b9a\u304c\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3055\u308c\u307e\u3059\u3002\r\nGradle \u304b\u3089\u306e webpack \u306e css-loader \u30b5\u30dd\u30fc\u30c8\r\nKotlin\/JS Gradle \u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u306e\u30a2\u30fc\u30c6\u30a3\u30d5\u30a1\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067 webpack \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u308b\u8a2d\u5b9a\u304c\u305f\u304f\u3055\u3093\u3042\u308a\u307e\u3059\u3002 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b webpack \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u76f4\u63a5\u5909\u66f4\u3059\u308b\u3053\u3068\u3067\u3001\u3059\u3079\u3066\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u304c\u3001\u6700\u3082\u3088\u304f\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u8a2d\u5b9a\u306b\u306f\u3001Gradle DSL \u304b\u3089\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002\r\n\r\nKotlin 1.4-M2 \u3067\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u3092\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u305f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u3064\u3044\u3066\u306f\u3001webpack \u306e css-loader \u304c\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u6709\u52b9\u5316\u3055\u308c\u307e\u3059\u3002 \u3064\u307e\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u3001\u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u3092\u542b\u3080\u4f9d\u5b58\u95a2\u4fc2\u306b CSS \u3092\u8ffd\u52a0\u3059\u308b\u3068\u3001\u307b\u3068\u3093\u3069\u5834\u5408\u3001\u69cb\u6210\u3092\u884c\u308f\u305a\u306b\u3059\u3050\u306b\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002 \u4ee5\u524d\u3001\u3053\u3046\u3044\u3063\u305f\u72b6\u6cc1\u3067\u306f\u3001Module parse failed: Unexpected character '@' (14:0) \u306a\u3069\u306e\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u3066\u3044\u307e\u3057\u305f\u3002\r\n\r\n\u3053\u306e CSS \u7d71\u5408\u306e\u52d5\u4f5c\u3092\u8abf\u6574\u3059\u308b\u306b\u306f\u3001js.browser.webpackTask.cssSettings \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\r\ncssSettings.enabled \u3092\u4f7f\u3046\u3068\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c css-loader \u3092\u4f7f\u7528\u3059\u3079\u304d\u304b\u3069\u3046\u304b\u3092\u5909\u66f4\u3067\u304d\u307e\u3059\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u6709\u52b9\u5316\u3055\u308c\u3066\u3044\u307e\u3059\uff09\u3002\r\n\r\ncssSettings.mode \u3092\u4f7f\u3046\u3068\u3001\u898b\u3064\u304b\u3063\u305f CSS \u3092\u3069\u306e\u3088\u3046\u306b\u51e6\u7406\u3059\u308b\u304b\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002 \u4f7f\u7528\u3067\u304d\u308b\u306e\u306f\u3001\u6b21\u306e\u5024\u3067\u3059\u3002\r\n\r\n\t\"inline\"\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\uff09: \u30b9\u30bf\u30a4\u30eb\u306f\u30b0\u30ed\u30fc\u30d0\u30eb\u306e &lt;style&gt; \u30bf\u30b0\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002\r\n\t\"extract\": \u30b9\u30bf\u30a4\u30eb\u306f\u3001\u5225\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u62bd\u51fa\u3055\u308c\u307e\u3059\u3002 \u305d\u306e\u4e0a\u3067\u3001HTML \u30da\u30fc\u30b8\u304b\u3089\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3055\u308c\u307e\u3059\u3002\r\n\t\"import\": \u30b9\u30bf\u30a4\u30eb\u306f\u30b9\u30c8\u30ea\u30f3\u30b0\u3068\u3057\u3066\u51e6\u7406\u3055\u308c\u307e\u3059\u3002 \u30b3\u30fc\u30c9\u304b\u3089 CSS \u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u306b\u4fbf\u5229\u3067\u3059\uff08\u4f8b: val styles = require(\"main.css\")\uff09\u3002\r\n\r\n\u540c\u3058\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5225\u306e\u30e2\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001cssSettings.rules \u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u3053\u3053\u3067\u306f\u3001KotlinWebpackCssRules \u306e\u30ea\u30b9\u30c8\u3092\u6307\u5b9a\u3067\u304d\u3001\u305d\u308c\u305e\u308c\u306b\u3001\u30e2\u30fc\u30c9\u3060\u3051\u3067\u306a\u304f\u3001include \u3068 exclude \u30d1\u30bf\u30fc\u30f3\u3082\u5b9a\u7fa9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u30d1\u30bf\u30fc\u30f3\u306e\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001webpack \u30c9\u30ad\u30e5\u30e1\u30f3\u30c6\u30fc\u30b7\u30e7\u30f3\u306einclude \u3068 exclude \u306e\u30eb\u30fc\u30eb\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u53ef\u80fd\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\r\nJavaScript \u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u540d\u3092 Gradle \u30d3\u30eb\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u304b\u3089\u76f4\u63a5\u5909\u66f4\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\r\njs {\r\n   moduleName = \"myModuleName\"\r\n}\r\n\r\n\u3053\u308c\u306f\u3001build\/js\/packages\/myModuleName \u3067\u751f\u6210\u3055\u308c\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3057\u3001\u5bfe\u5fdc\u3059\u308b .js \u3068 .d.ts \u306e\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u3082\u9069\u7528\u3055\u308c\u307e\u3059\u3002 build\/distributions \u306e webpack \u51fa\u529b\u306b\u306f\u5f71\u97ff\u3057\u307e\u305b\u3093\u3002 webpack\u5316\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u3092\u5909\u66f4\u3059\u308b\u306b\u306f\u3001js.browser.webpackTask.outputFileName \u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\r\ncommon \u30b3\u30fc\u30c9\u306b\u304a\u3051\u308b\u00a0@JsExport\u00a0\u6ce8\u91c8\r\nIR \u30b3\u30f3\u30d1\u30a4\u30e9\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306b\u3001JavaScript \u307e\u305f\u306f TypeScript \u304b\u3089\u4f7f\u7528\u3067\u304d\u308b\u6700\u4e0a\u4f4d\u306e\u5ba3\u8a00\u3092\u884c\u3046\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u308b @JsExport \u6ce8\u91c8\u304c\u3001common \u30b3\u30fc\u30c9\u3067\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30ab\u30b9\u30bf\u30e0\u6ce8\u91c8\u3084\u30bf\u30a4\u30d7\u30a8\u30a4\u30ea\u30a2\u30b9\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308a\u3001\u30de\u30eb\u30c1\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e Kotlin \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089 JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u69cb\u7bc9\u3067\u304d\u308b\u3068\u3044\u3046\u9053\u304c\u5207\u308a\u958b\u304b\u308c\u307e\u3059\u3002\r\n\u4f5c\u696d\u306e\u52b9\u7387\u6027\u306b\u95a2\u3059\u308b\u305d\u306e\u4ed6\u306e\u6539\u5584\u3068\u6ce8\u76ee\u3059\u3079\u304d\u4fee\u6b63\u70b9\r\n\r\n\t\u30d6\u30e9\u30a6\u30b6\u3068 nodejs \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u4e00\u822c\u7684\u306a\u64cd\u4f5c\u306b\u4f7f\u7528\u3055\u308c\u308b Gradle \u30bf\u30b9\u30af\u306f\u3001\u500b\u5225\u306e\u30bf\u30b9\u30af\u30b0\u30eb\u30fc\u30d7\u306b\u307e\u3068\u3081\u3089\u308c\u307e\u3057\u305f\u3002 kotlin browser \u3068 kotlin node \u30b0\u30eb\u30fc\u30d7\u306f\u3001IntelliJ IDEA \u306e Gradle \u30c4\u30fc\u30eb\u30a6\u30a3\u30f3\u30c9\u30a6\u306b\u8868\u793a\u3055\u308c\u308b\u304b\u3001\u30bf\u30b9\u30af\u3092\u30ea\u30b9\u30c8\u8868\u793a\u3059\u308b\u5834\u5408\u306f .\/gradlew tasks --all \u3067\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\tnode.js \u30bf\u30fc\u30b2\u30c3\u30c8\u306e\u30c6\u30b9\u30c8\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408\u3001\u30c7\u30d0\u30c3\u30ac\u30fc\u306f\u30d6\u30ec\u30fc\u30af\u30dd\u30a4\u30f3\u30c8\u3067\u6b63\u3057\u304f\u505c\u6b62\u3059\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\r\n\t\u30b3\u30f3\u30d1\u30a4\u30eb\u306b both \u30e2\u30fc\u30c9\u3092\u4f7f\u7528\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u304a\u3044\u3066\u3001klib \u306e\u4f9d\u5b58\u95a2\u4fc2\u304c\u6b63\u3057\u304f\u89e3\u6c7a\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\r\n\r\n\u4e92\u63db\u6027\r\n\u4e00\u90e8\u306e\u30b3\u30fc\u30ca\u30fc\u30b1\u30fc\u30b9\u306b\u304a\u3044\u3066\u3001Kotlin 1.4\u306b\u306f1.3\u3068\u306e\u4e0b\u4f4d\u4e92\u63db\u6027\u306f\u3042\u308a\u307e\u305b\u3093\u3002 Kotlin\u8a00\u8a9e\u59d4\u54e1\u4f1a\u306f\u305d\u3046\u3044\u3063\u305f\u30b1\u30fc\u30b9\u3092\u6ce8\u610f\u6df1\u304f\u30ec\u30d3\u30e5\u30fc\u3057\u3001\u300c\u4e92\u63db\u6027\u30ac\u30a4\u30c9\u300d\uff08\u3053\u308c\u306b\u4f3c\u305f\u69d8\u5f0f\uff09\u3068\u3057\u3066\u63b2\u8f09\u3059\u308b\u4e88\u5b9a\u3067\u3059\u3002 \u73fe\u6642\u70b9\u3067\u306f\u3001YouTrack\u3067\u3053\u306e\u30ea\u30b9\u30c8\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002\r\n\u30d7\u30ec\u30ea\u30ea\u30fc\u30b9\u306b\u95a2\u3059\u308b\u6ce8\u610f\u4e8b\u9805\r\n\u4e0b\u4f4d\u4e92\u63db\u6027\u4fdd\u8a3c\u306f\u3001\u30d7\u30ec\u30ea\u30ea\u30fc\u30b9\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u306f\u9069\u7528\u3055\u308c\u307e\u305b\u3093\u3002 \u6a5f\u80fd\u3084 API \u306f\u3001\u5f8c\u7d9a\u306e\u30ea\u30ea\u30fc\u30b9\u3067\u5909\u66f4\u3059\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u6700\u7d42RC\u306b\u9054\u3059\u308b\u3068\u3001\u30d7\u30ec\u30ea\u30ea\u30fc\u30b9\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u751f\u6210\u3057\u305f\u3059\u3079\u3066\u306e\u30d0\u30a4\u30ca\u30ea\u306f\u3001\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u3088\u3063\u3066\u4f7f\u7528\u7981\u6b62\u3068\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u5834\u5408\u30011.4-Mx\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u305f\u3059\u3079\u3066\u306e\u3082\u306e\u3092\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n\u65b0\u6a5f\u80fd\u3092\u8a66\u3059\u306b\u306f\r\n\u3044\u3064\u3082\u306e\u3088\u3046\u306b\u3001play.kotl.in\u3067Kotlin\u3092\u30aa\u30f3\u30e9\u30a4\u30f3\u3067\u8a66\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\r\nIntelliJ IDEA \u3068 Android Studio \u5185\u3067\u3001Kotlin \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30d0\u30fc\u30b8\u30e7\u30f31.4-M2 \u306b\u66f4\u65b0\u3067\u304d\u307e\u3059\u3002 \u305d\u306e\u65b9\u6cd5\u306b\u3064\u3044\u3066\u306f\u3053\u308c\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\r\n\r\n\u30d7\u30ec\u30ea\u30ea\u30fc\u30b9\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u524d\u306b\u4f5c\u6210\u3055\u308c\u305f\u65e2\u5b58\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001Gradle\u307e\u305f\u306fMaven\u3067\u30d7\u30ec\u30d3\u30e5\u30fc\u30d0\u30fc\u30b8\u30e7\u30f3\u7528\u306b\u30d3\u30eb\u30c9\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n\r\n\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u3001GitHub\u30ea\u30ea\u30fc\u30b9\u30da\u30fc\u30b8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002\r\n\r\n\u3053\u306e\u30ea\u30ea\u30fc\u30b9\u3068\u3068\u3082\u306b\u516c\u958b\u3055\u308c\u305f\u6b21\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002\r\n\r\n\tkotlinx.atomicfu \u30d0\u30fc\u30b8\u30e7\u30f3: 0.14.3-1.4-M2\r\n\tkotlinx.coroutines \u30d0\u30fc\u30b8\u30e7\u30f3: 1.3.7-1.4-M2\r\n\tkotlinx.serialization \u30d0\u30fc\u30b8\u30e7\u30f3: 0.20.0-1.4-M2\r\n\tktor \u30d0\u30fc\u30b8\u30e7\u30f3: 1.3.2-1.4-M2\r\n\r\n\u30ea\u30ea\u30fc\u30b9\u306e\u8a73\u7d30\u3068\u4e92\u63db\u6027\u306e\u3042\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4e00\u89a7\u306f\u3001\u3053\u3053\u304b\u3089\u5165\u624b\u3067\u304d\u307e\u3059\u3002\r\n\u3054\u610f\u898b\u3092\u304a\u5bc4\u305b\u304f\u3060\u3055\u3044\r\n\u30d0\u30b0\u3092\u898b\u3064\u3051\u305f\u5834\u5408\u306f\u3001\u305c\u3072\u8ab2\u984c\u30c8\u30e9\u30c3\u30ab\u30fc\u306b\u3054\u5831\u544a\u304f\u3060\u3055\u3044\u3002 \u3059\u3079\u3066\u306e\u91cd\u8981\u306a\u8ab2\u984c\u306b\u3064\u3044\u3066\u306f\u3001\u6b21\u306eKotlin\u30ea\u30ea\u30fc\u30b9\u307e\u3067\u8ab2\u984c\u89e3\u6c7a\u3092\u5ef6\u671f\u3059\u308b\u3053\u3068\u306a\u304f\u3001\u6700\u7d42\u30ea\u30ea\u30fc\u30b9\u524d\u306b\u4fee\u6b63\u3057\u305f\u3044\u3068\u601d\u3063\u3066\u3044\u307e\u3059\u3002\r\n\r\n\u307e\u305f\u3001\u305c\u3072 Kotlin Slack \u306e \\#eap\u30c1\u30e3\u30f3\u30cd\u30eb \u306b\u3054\u53c2\u52a0\u304f\u3060\u3055\u3044\uff08\u62db\u5f85\u72b6\u306f\u3053\u3061\u3089\u304b\u3089\u5165\u624b\u3067\u304d\u307e\u3059\uff09\u3002 \u3053\u306e\u30c1\u30e3\u30f3\u30cd\u30eb\u3067\u306f\u3001\u8cea\u554f\u3001\u30c7\u30a3\u30b9\u30ab\u30c3\u30b7\u30e7\u30f3\u3078\u306e\u53c2\u52a0\u3001\u65b0\u3057\u3044\u30d7\u30ec\u30d3\u30e5\u30fc\u30d3\u30eb\u30c9\u306b\u3064\u3044\u3066\u77e5\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\r\n\r\nKotlin\u3092\u4f7f\u3063\u3066\u307f\u3088\u3046!\r\n\u3054\u5354\u529b\u3044\u305f\u3060\u3044\u305f\u5916\u90e8\u8ca2\u732e\u8005\r\n\u3053\u306e\u30ea\u30ea\u30fc\u30b9\u306b\u542b\u3081\u3089\u308c\u305f Pull \u30ea\u30af\u30a8\u30b9\u30c8\u306f\u3001\u6b21\u306e\u5916\u90e8\u8ca2\u732e\u8005\u304b\u3089\u3044\u305f\u3060\u304d\u307e\u3057\u305f\u3002\u3054\u5354\u529b\u3044\u305f\u3060\u304d\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002\r\n\r\n\tToshiaki Kameyama\r\n\tVictor Turansky\r\n\tJinseong Jeon\r\n\tSteven Sch\u00e4fer\r\n\tJuan Chen\r\n\tMark Punzalan\r\n\tKristoffer Andersen\r\n\tMads Ager\r\n\tNick\r\n\tPolina Koval\r\n\tKonstantin Virolainen\r\n\tn-p-s\r\n\tJiaxiang Chen\r\n\tMatthew Gharrity\r\n\tMartynas Sateika\r\n\tNadezhda Petelimova\r\n\tPhilippe Ombredanne\r\n\tPierre-Luc Carmel Biron\r\n\tKevin Bierhoff\r\n\tScott Weber\r\n\tMiguel Serra\r\n\tIvan Gavrilovic\r\n\tIrene Dea\r\n\tHarry\r\n\tStanislav Ruban\r\n\tBrian Plummer\r\n\tAdam McNeilly\r\n\r\n[\u539f\u6587]\u00a0Original post\u00a0in English is written by\u00a0Ekaterina Volodko","protected":false},"excerpt":{"rendered":"\u3042\u3063\u3068\u3044\u3046\u9593\u306b\u3001\u6b21\u306e Kotlin 1.4 \u306e\u5f37\u529b\u306a\u6a5f\u80fd\u3092\u3044\u304f\u3064\u304b\u7d39\u4ecb\u3059\u308b\u65e5\u304c\u3084\u3063\u3066\u304d\u307e\u3057\u305f\u3002 Kotlin 1.4 \u3068\u3057\u3066\u6b63\u5f0f\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u308b\u524d\u306b\u3001Kotlin 1.4-M2 \u306e\u65b0\u6a5f\u80fd\u3068\u5f37\u5316\u6a5f\u80fd\u3092\u78ba\u8a8d\u3057\u3001\u305d\u308c\u3089\u3092\u8a66\u3057\u3066\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\u3002Kotlin 1.4 \u306e\u6700\u521d\u306e\u30d7\u30ec\u30d3\u30e5\u30fc\u3092\u8a66\u3057\u3066\u30d5\u30a3\u30fc\u30c9\u30d0\u30c3\u30af\u3092\u3054\u63d0\u4f9b\u3044\u305f\u3060\u3044\u305f\u7686\u3055\u3093\u3001\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3057\u305f\u3002Kotlin\u306e\u6539\u5584\u306b\u5927\u304d\u304f\u5f79\u7acb\u305f\u305b","protected":false},"author":{"name":"Elizaveta Semakova","link":"https:\/\/blog.jetbrains.com\/ja\/author\/elizavetasemakova"},"featured_media":35276,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"cross-post-tag":[],"acf":[],"featured_image":"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/06\/jp-Kotlin-M2-preview.png","_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts\/35275"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/users\/811"},{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/users\/811"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/comments?post=35275"}],"version-history":[{"count":0,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/posts\/35275\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media\/35276"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/media?parent=35275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/categories?post=35275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/tags?post=35275"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ja\/wp-json\/wp\/v2\/cross-post-tag?post=35275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}