JetBrainsは昨日、Kotlin 1.2リリースをリリースしました。 新しいバージョンは、Kotlinを最新のアプリケーションのすべてのコンポーネントを開発するための最も便利なツールにするための大きな一歩です。
バージョンKotlin 1.1では、KotlinコードをJSに変換してブラウザーで実行するJavaScriptサポートを正式にリリースしました。 このバージョンでは、これにJVMとJavaScriptの間でコードを再利用する機能を追加します 。 これで、アプリケーションのすべてのコンポーネント(ブラウザのバックエンド、フロントエンド、Android用モバイルアプリケーション)で同じビジネスロジックの実装を使用できます。 また、これを支援するライブラリ、特に、シリアル化のためのクロスプラットフォームライブラリにも取り組んでいます。
Kotlin 1.2はIntelliJ IDEA 2017.3ですぐに利用できますが、今週も公開されます。 Android Studioまたは古いバージョンのIntelliJ IDEAを使用している場合は、ツール|ツールを使用してアップグレードできます。 コトリン| Kotlinプラグインの更新を構成します。
外部の貢献者がこのリリースに多大な貢献をしてくれました。フィードバックやバグレポートを送ってくれた人たち、特にプルリクエストを送ってくれた人たちに感謝したいと思います。
マルチプラットフォームプロジェクト
マルチプラットフォームプロジェクトを使用すると、アプリケーションのすべてのコンポーネント(バックエンド、フロントエンド、Androidアプリケーション)を共通のコードベースからアセンブルできます。 このようなプロジェクトは、 プラットフォームに依存しないコードを含む一般的なモジュールと、特定のプラットフォーム(JVMまたはJS)のコードを含み、このプラットフォームのライブラリを使用できるプラットフォーム固有のモジュールで構成されます。 共通モジュールからプラットフォーム固有のコードを呼び出すために、 予想される宣言を指定できます。これは、すべてのプラットフォーム固有のモジュールが実際の実装を提供する必要がある宣言です。
マルチプラットフォームプロジェクトの使用に関する詳細については、 ドキュメントを参照してください 。
すでに述べたように、コードを共通モジュールに移植するのに役立つライブラリーの作業も行っています。
- Kotlin 1.2に含まれているkotlin.testを使用すると、JVMおよびJSの下で同じテストクラスを実行できます。
- kotlinx.htmlは同形レンダリングをサポートします -同じコードを使用してバックエンドとブラウザーでHTMLを生成します。
- kotlinx.serializationを使用すると、JSONまたはProtobufをシリアル化形式として使用して、アプリケーションの異なるレイヤー間でKotlinオブジェクトを簡単に転送できます。
マルチプラットフォームプロジェクトのサポートは実験的な状態でリリースされていることに注意してください。 これは、そのようなプロジェクトを今すぐ作成できることを意味しますが、将来、その設計を変更する必要があるかもしれません(これが発生した場合、既存のコードを移行するツールを提供します)。
コンパイルパフォーマンス
バージョン1.2に取り組んでいる間、私たちはコンパイルの高速化に多大な努力をしました。 バージョン1.1と比較して約25%の高速化をすでに達成しており、アップデート1.2.xでリリースする予定のさらなる最適化の大きな可能性があります。
グラフは、Kotlinを使用したJetBrainsの2つの大きなプロジェクト間のコンパイル時間の違いを示しています。
その他の言語とライブラリの改善
新しいバージョンには、言語と標準ライブラリのそれほど重要でない改善も含まれています。
- 複数の引数を注釈に渡すためのコンパクトな構文 (配列のリテラル)。
-
lateinit
プロパティが初期化されているかどうかのチェックと同様に、トップレベルプロパティとローカル変数のlateinit
修飾子のサポート。 - 場合によっては、 よりスマートなカーストと改善された型推論 。
- Java 9で導入されたjarファイル間でのパッケージの分割に関する制限と標準ライブラリの互換性。
- 標準ライブラリの新しい
kotlin.math
パッケージ。 - コレクションまたはシーケンスを固定サイズの(場合によっては重複する)グループに分割するための一連の関数を含む、シーケンスおよびコレクションを操作するための標準ライブラリの新機能。
言語と標準ライブラリの変更に関するより完全な情報は、Kotlin 1.2の新機能のドキュメントにあります。
コトリンワールドワイド
今年3月にKotlin 1.1がリリースされて以来、世界中での使用の分布が大幅に拡大しています。 最終的にはKotlinConfでした 。これは、11月2〜3日にサンフランシスコで開催された最初の会議で、約1,200人のユーザーが参加しました。 会議のウェブサイトですべてのレポートの記録を見ることができます。
KotlinはAndroid向けに公式にサポートされている開発言語にもなりました。 Kotlinプラグインは、バージョン3.0以降Android Studioにバンドルされており、Androidサイトでは公式の例とスタイルガイドを見つけることができます。 現在、Kotlin はAndroid Studioのプロジェクトの17%以上を使用しています。これには、最も優秀な新興企業とFortune 500企業の両方の多くのアプリケーションが含まれています。
サーバー側では、Kotlinサポート用の多くの機能を備えたSpring Framework 5.0がリリースされ、 vert.xは3.4.0以降、 Kotlinを公式にサポートしています。 さらに、Kotlinでのビルドスクリプトのサポートは既にGradleに含まれており、 Gradle Kotlin DSLプロジェクトはすでにリリース1.0に近づいています。
GitHubのオープンソースリポジトリのコード行数は、2,500万を超えました。 また、スタックオーバーフローでは、Kotlinは同時に最も成長率が高く最も好きではない言語の1つです 。
コトリン周辺のコミュニティの成長も印象的です。 世界中に100を超えるKotlinユーザーグループがあり、Kotlinについてのレポートが非常に多いため、それらすべてを追跡することはほとんどできませんが、私たちが知っている人にとっては、 マップはKotlinの使用がどれほど普及しているかをよく示しています。
Kotlinを使い始めたばかりの人のために、ますます多くの本(すでにロシア語 、 日本語 、 中国語 、 ポルトガル語に翻訳されている私たち自身の「Kotlin in Action」を含む)、オンラインコース、チュートリアル、 その他のリソースを利用できます。
チームとチャット:redinitのウェビナーとAsk Me Anything
新しいリリースの詳細については、モスクワ時間の12月7日午後8時に、 Kotlin 1.2を使用したマルチプラットフォームプロジェクトの開発に関するウェビナーを実施します。 登録することを忘れないでください。 参加者の数は限られています!
さらに、私たちのチームは、12月5日にKotlin RedditでAMA(Ask Me Anything、Open Interview)を開催します。 モスクワ時間の午後2時に開始し、24時間以内に質問に答えます。
アップグレード方法
いつものように、ブラウザのtry.kotlinlang.orgでKotlinを試すことができます。
- Maven、Gradle、およびnpmの場合 :コンパイラと標準ライブラリのバージョン番号1.2.0を指定します
- IntelliJ IDEA:バージョン2017.3にはすでに新しいプラグインが含まれています。 古いバージョンでは、プラグインをバージョン1.2に更新します
- Android Studioの場合: [設定]からプラグインをインストールします| プラグインまたはツールによるアップグレード| コトリン| Kotlinプラグインの更新を構成する
- コマンドラインコンパイラは、GitHubのリリースページからダウンロードできます。
互換性: Kotlin 1.2では、言語と標準ライブラリは後方互換性があります(モジュロバグ) 。バージョン1.0および1.1でコンパイルおよび動作したコードは、バージョン1.2でも動作します。 大規模なチームが徐々に新しいバージョンにアップグレードできるようにするために、言語とライブラリの新しい機能を使用する機能を無効にするコンパイラオプションを追加しました。 起こりうる問題に関する情報は、 ドキュメントに記載されています 。
素敵なコトリンを!