コリン1.3.70反応


コリン1.3.70はここです!としてrelease blog post 大きなランドマークの新機能の多くの方法がありませんが、多くの増分の改善といくつかの興味深い小さな生活の私は興奮している.それはKotlinconf以来の最初の新しい言語版であるので、Jetbrainsのもののいくつかがそれから働いていたのを見るのはクールです.
私たちがジャンプする前に、マルチプラットフォームユーザのための迅速なリマインダー:Kotlin/ネイティブはまだベータ版であるため、バイナリはバージョン間で互換性がありません.これは、すべてのライブラリ依存関係がKotlin 1.3.70互換のバージョンを持つまで、マルチプラットフォームプロジェクトを更新してはいけません.あなたならばKaMPKit ユーザーは、次のことができますthis issue このテンプレートで使用するライブラリが準備ができているか確認してください.
私が考えたブログ柱のアイテムのカップルは、ここにあります.

Renaming of experimental annotations


使用している@Experimental and @UseExperimental 今一年以上Multiplatform Settings , そして、それはより揮発性APIをマークするライブラリのための本当に良い方法であることを見つける.単に作成するannotation class MyExperimentalApi また、@Experimental , それから何かの消費者@MyExperimentalApi は、明示的に実験的振る舞いへの依存性を考慮しなければならない.
しかし、私は野生の(いくつかのJetbrainsの自身の図書館で)いくつかの使用に気づいていました.そして、それが彼らが不安定であるかもしれないAPIではなく、他の人々に応じていなかった内部APIをマークすることについてより多くであった.それで、私は彼らがこれらに名前を変えていることに驚きません@RequiresOptIn and @OptIn 用途を広げる.
私が人々がこれを逃しているのを見た時から、ここの側メモ:A@RequiresOptIn アノテーションは故意に彼らが同様に選ぶことを強制されるように、発信者にリークします.あなたがそれをしたくないなら@OptIn(MyExperimentalApi::class) 代わりに、直接使用サイトで注釈を付ける必要があります.また、アプリケーション行を適用するコマンドラインまたはgradleレベルでopt - insを渡すこともできます.

Double-ended queue implementation: ArrayDeque


これは、私が開発を追跡していなかったきちんとしたものです.ArrayDeque は、Queue またはStack JVMでは、このような標準実装は以前に他のプラットフォーム上に存在しませんでした.それは一般的なコードでこれらのデータ構造を必要とする人々への歓迎された追加です.
Javaへの委任よりむしろJVMでさえ新しい実装であるという事実は興味深いです、そして、Kotlinのために非定型です.私は、利益がそれが彼らがAPIとして扱われるのを許容することによってAPIをいくらか改良するのを許すということであると思いますList Javaの実装はできません.一方でJavaのインタプリタにはあまり役に立たない.興味深いことに、彼らは実際にはQueue and Stack インターフェースkotlin.collections , 例えば、呼び出しによってスタックの振る舞いを得るaddFirst() and removeFirst() むしろpush() and pop() . 私は、Javaからのこれらの違いが人々がKotlinArrayDeque .

IntelliJ IDEA support

Now, the completion suggestions include functions declared in objects, including extension functions, object-level overrides, and even functions declared in nested objects.


ここでサポートを改善するのを見てうれしいですlongstanding issue . オブジェクト内の拡張機能を宣言するパターンは、最初は奇妙に見え、すべてのその慣用句を感じていないが、そのようなものと組み合わせるとき@JvmStatic 注釈は、Javaの消費者のためのクリーンなインターフェイスを維持するために非常に有用です.つまり、ライブラリはKotlinPoet and OkHttp それを重く利用しているため、輸入品を手動で追加する必要があることが痛い点であった.

Test results for Kotlin/JS and Kotlin/Native are now displayed right in the IntelliJ IDEA, as it has always been for Kotlin/JVM tests.


私は既にこれについてスーパー満足です.
液体誤差:内部
また、ブログでは呼び出されませんが、関連する改善はここですiosX64Test Gradleタスク(および他のシミュレータのターゲットと同等)は現在組み込まれているので、手動で定義する必要はありません.私は、私がコピーした何回のカウントをなくしましたか/Gradleスニペットを貼りました.

New inspection on pointless unary operators.


これは、いくつかのツールのヘルプを持って良いの微妙なgotchaです.長い数学表現を分割するときに気をつけないなら、このようなコードで終わるかもしれません
val a = 2 + 3
    + 4 
コンパイラはこれを2行として表示しますa あなたが期待しているように、値5を持ち、9ではないでしょう.パーサが1つの式が終了し、次が始まるのを推論しなければならないので、セミコロンのない言語の微妙な結果です.我々が点検をそれを呼ぶことをうれしく思います、しかし、私はまた、あなたがおそらく意味した形にそれを変えるために速い修正を見るのが好きです.
val a = 2 + 3 +
    4
プラス記号が行の最後にある場合、コンパイラは次の行の4が同じ式の一部であることを認識しますa 予定通り9になります.

Kotlin/JS

With Kotlin 1.3.70, we have made some long-awaited changes to the documentation and tutorials for the JavaScript target which hopefully makes it easier for people to get started with Kotlin/JS.


この1つもしばらく待っていた.1.3.40のJS GradleプラグインAPIへの大きなアップデートがありました、しかし、更新されたドキュメンテーションは到着するのが遅くなりました.今ここにそれを持っています.

Kotlin/Native

Support for multiple Kotlin frameworks in a single application


人々はしばらくの間これを求めています.複数のフレームワークアプリケーションがどのように動作するかについては、いくつかの制限があります.なぜなら、それぞれのフレームワークには、Kotlin標準ライブラリと他の一般的な依存関係があるからです.しかし、それはいくつかのケースでは、特に大きなマルチモジュールプロジェクトでは、IOS開発者の経験をより自然にする必要があります.
最後に、私は、我々が見なかった1つのものに言及すると思いました.「階層的マルチプラットフォームプロジェクト」(HMPP)のための最後のいくつかのリリースで、増加的な実験的サポートは増加しています.これはnew internal model GradleプラグインとIDEによって使用され、従来の共通ソースとは異なり、ソースセットがコンパイルするすべてのプラットフォームに存在するプラットフォーム固有のAPIにアクセスできます.iOSアーム(IOSデバイス用)とiSox 64(IOSシミュレータ用)の間で共有されるコードからIOS APIをアクセスします.私は1.3.70の発表でこれに関する詳細を見ることを望んでいました、しかし、私はそれがまだ準備ができていないと思います.(できれば)bug I encountered リリースの前に、彼らの計画においてあまりに大きな苦痛を投げませんでした.HMPPがKotlin 1.4とそれ以降のように見えるものを見るのを楽しみにしています.
クレジットカバー集
ジャスティンMancinelli、サムヒル、ケビンGalligan、エリックZambrano、ケビンSildhornとジェフNamnumのおかげで、このポストの草案にフィードバックを提供してください.