Kotlin
A concise multiplatform language developed by JetBrains
アルファ版以降の KMM 新着情報
クロスプラットフォームモバイル環境向け SDK の Kotlin Multiplatform Mobile(KMM)は、2020年8月にアルファ版として公開されました。 以降 9 か月において、KMM エコシステムは急速に進化し続けています。
- 新しい Kotlin バージョンには、マルチプラットフォーム開発エクスペリエンスを強化する機能と改善が含まれています。
- Android Studio 向け KMM プラグインといった KMM 開発ツールは、クロスプラットフォームモバイルアプリケーションの作成プロセスをより効率的で楽に行えるようにするための更新が継続的に追加されています。
- より多くのコミュニティの皆様から、有益なライブラリの作成、 手順付きのサンプルプロジェクトの作成、および本番で KMM を使用したエクスペリエンスの共有により、エコシステムに積極的に貢献いただいています。
重要な更新情報を見逃さないために、アルファ版公開以降のエコシステムにおける主なハイライトの概要をお読みください。ハンズオンエクスペリエンスをすぐに得たい方は、KMM ドキュメントポータルで詳細をご覧になり、早速試してみてください!
このブログ記事では、次の概要を説明します。
- Cocoapods 統合サポートなど、KMM プラグイン機能と改善 について。
- Kotlin/Native パフォーマンス改善を含む、Kotlin マルチプラットフォーム関連の更新について。
- 新しいサンプルプロジェクトやマルチプラットフォームライブラリのリリースといった主なコミュニティコンテンツのハイライト。
- 新しい FAQ ページなど、ドキュメントポータルの更新情報。
KMM プラグインの新着情報
Android Studio 向け KMM プラグインはクロスプラットフォームアプリケーション開発に便利です。 クリック数回で新しいクロスプラットフォームモバイルアプリを作成でき、iOS 開発エコシステムと密接に統合されています。
iOS との安定したカスタマイズ可能な統合
KMM プラグインでは、直接 Android Studio から iOS をターゲットに、アプリケーションの iOS の部分を実行し、テストし、デバッグすることができます。 プラグインが初めてリリースされて以来、iOS 統合ははるかに安定化し、より多くの機能を構成できるようになりました。現在では、最新の iOS ツーリングもサポートされています。 実装済みの iOS 統合機能改善のリストをご覧ください。
柔軟なプロジェクトウィザード
KMM プラグインは KMM を初めて使用する際に不可欠なツールでもあります。 プラグインの便利なウィザードを使用すれば、新しいマルチプラットフォームプロジェクトの作成やマルチプラットフォームモジュールの既存プロジェクトへの追加を迅速に行えるようになります。
最新バージョンのプラグインでは、新しい KMM プロジェクトやモジュールに Cocoapods 統合を使用することが可能です。 KMM モジュールの追加説明を入力するだけで、プラグインが必要なすべての構成コードを生成します。
KMM プラグインの新機能と機能改善の全リスト、およびインストール手順と互換性情報についての詳細は、KMM プラグインのリリースページをご覧ください。
KMM 向け Kotlin の新着情報
KMM は Kotlin のマルチプラットフォーム機能に基づいており、プラットフォームアーティファクト(Android では .jar、iOS では .framework)の生成に、Kotlin/JVM と Kotlin/Native を使用しています。 Kotlin の各アップデートでは、KMM によるクロスプラットフォームモバイルアプリの開発者エクスペリエンスが改善されています。
Kotlin/Native 改善による iOS 統合の改良
Kotlin/Native チームは、KMM コミュニティで最も待望されている、Kotlin Native 向けの新しいメモリ管理アプローチに重点的に取り組んでいます。 新しいメモリ管理設計の開発プレビューは 2021 年夏期を予定しています。 このプロジェクトの詳しいステータス情報については、『Kotlin/Native のメモリ管理に関する更新』ブログ記事をご覧ください。
新しいメモリ管理アプローチの実装に大きな進歩がある一方、Kotlin/Native による iOS 開発のその他の機能も更新されています。
- Kotlin/Native には新しいエスケープ解析機構のプロトタイプが開発され、iOS ランタイムパフォーマンスで 10% の改善を見せています。
- Kotlin/Native は、プログラムがクラッシュしないように、Object-C コードから発生する例外をランタイムで処理できるようになりました。 このため、エラーの原因に関する情報を取得して、適切に処理することができます。 オプトインの方法をご覧ください。
- Kotlin/Native コンパイラーにはパフォーマンスを改善させる一連の更新が開発されています。 たとえば、KMM ネットワーキングとデータストレージのサンプルで iOS フレームワークの再構築に係る時間が 9.5 秒から 4.5 秒に短縮されています。 プロジェクトで Kotlin/Native コンパイルプロセスを高速化する方法についてご覧ください。
- Cocoapods 統合には、必要な場合だけに依存関係を再構築したり、さらに多くの種類のライブラリに依存できる機能など、多数の改善が含まれています。
マルチプラットフォームプロジェクト用の安定したツーリング
プロジェクトの種類に関係なく、快適に作業を進めるためにはツールが安定している必要があります。 KMM がアルファ版として公開され、多数の新しいマルチプラットフォーム機能が導入された後、Kotlin Multiplatform チームはマルチプラットフォームプロジェクトのフロントエンドと IDE インポートの安定性の改善に注力しました。 マルチプラットフォームプロジェクトに対応する際に IDE で「レッド(red)コード」を引き起こしていた多くの課題を修正しました。 マルチプラットフォーム開発体験の改善は継続していきたいと考えていますが、これを実現するには皆さんからフィードバックが必要です。 数分ほどお時間をいただけるのであれば、遭遇したあらゆる課題を YouTrack か課題トラッカーにご報告ください。
もちろん、ここに記載されているのはほんのメインのハイライトに過ぎません。 マルチプラットフォームモバイルアプリケーションの開発で使用できるすべての新しい機能のより詳しい情報については、KMM ドキュメントポータルの What’s new in Kotlin for KMM(KMM 向けKotlin 最新情報)をご覧ください。 このページは新しい Kotlin バージョンの新しい情報で更新されているため、重要な最新情報を見逃すことはありません!
コミュニティの最新情報
コミュニティはあらゆるテクノロジーエコシステムの中心的存在です。 ユーザーからのインスピレーションとフィードバックは今後の開発に大きな影響を与えます。 初回リリース以来、世界中の開発者が、本番プロジェクトに KMM を使用した体験談を共有し、有益なライブラリやサンプルプロジェクトを作成することで、KMM エコシステムの発展を支えてきてくれました。
KMM ライブラリの成長
KMM ライブラリの数は伸び続けているため、プロジェクトの要件に最適なライブラリを見つけることができます。
- 使いやすいオープンソースのローカルデータベースである Realm には、新しい Kotlin Multiplatform SDK が含まれました。 新しい SDK 開発の主な設計原理についてお読みください。
- Decompose ではより多くのコードを KMM に共有できるようになりました。 Decompose は Kotlin Multiplatform のライフサイクルを認識したビジネスロジックコンポーネントにルーティング機能とプラガブル UI を提供します。 KMM には高い柔軟性があり、共有するコードベースの量を選択できるようになっているため、プロジェクトのコアとビジネスレイヤーへの使用に制限する必要がなく、Decompose のようなライブラリによって目的の共有を達成することができます。
KMM 開発者には解決待ちのニーズがほかにもたくさんあるため、ライブラリ作者にはたくさんの機会があります。 マルチプラットフォームライブラリの構築と公開方法を学習すれば、急速に成長しているこのエコシステムに参加することができます!
新しいサンプルプロジェクト
サンプルプロジェクトはテクノロジーを初めて使用する際に非常に役立ちます。 これまでコミュニティが精力的に取り組んでくれたおかげで、コード共有シナリオに基づくサンプルプロジェクトを選択できるだけでなく、あらゆるサンプルを試すことができます。
- D-KMP サンプルでは、KMM で ViewModel を完全に共有する(ナビゲーションレイヤーを含む)方法が示されており、MVI と CQRS パターンが実装されているほか、最新の宣言型 UI ツールキットである Android の Compose と iOS の SwiftUI を使用しています。
- The multiplatform-redux-サンプルには、KMM と ReduxKotlin を使ってクロスプラットフォームアプリケーションを構築する方法が示されています。
- 有名な people-in-space プロジェクトでは、Kotlin Multiplatform テクノロジーの全性能が紹介されています。 すべてのビジネスロジックを共有し、最新のモバイル UI ツールキットが使用されているだけでなく、Compose Desktop が使用されているため、このサンプルアプリケーションを PC で実行することができます!
最近の Kotlin Multiplatform ユーザーアンケート調査では、コミュニティではより複雑なサンプルが最も多くリクエストされていることがわかりました。そのため、KMM チームによる公式の (本番環境での使用を意識した)KMM production sampleを導入することになりました。 単純な RSS リーダーで、App Store と Google Play からダウロードできます。 実際の本番プロジェクトで KMM をどのように使用できるかを実演するように設計されており、包括的な Readme とアーキテクチャの説明が提供されているため、そのアプローチをプロジェクトに適用できます。
KMM を活用しているチームの新しいストーリー
KMM を使ったモバイルプラットフォーム間でコードを共有するのは、世界中の企業やの個人開発者の間で一般化しています。
- Netflix は Kotlin Multiplatform Mobile に切り替えてスタジオアプリを最適化することで、信頼性とデリバリー速度を向上しています。
- Philips は KMM を使用して、新機能の実装を加速させています。 同社は、チーム内の Android 開発者と iOS 開発者の間でより頻繁な対話も実現しています。
- Down Dog は KMM を使用することで、すべてのプラットフォームでの機能の同時公開、開発速度の向上、およびバグ数の減少を実現しています。 チームは大半の iOS プラットフォームコードを Swift から Kotlin にも移動しました。現在ではわずか 5 つの Swift ファイルを除けば、プロジェクト全体が Kotlin で書かれています。
あらゆる規模の企業や個人開発者によるその他の刺激的なストーリーについては、KMM ポータルのケーススタディセクションをご覧ください。
KMM ポータルの新着情報
KMM を使った日常業務においてヘルパーの役割を果たせるように、ドキュメントポータルを継続して開発しています。
- KMM を使用し始めるには、新しい FAQ ページがお勧めです。 Windows で KMM を使用する方法など、最も一般的な質問に対する回答が含まれています。 質問が含まれていない場合は、お知らせください!
- 新しく段階的に説明されたガイドでは、既存の Android アプリケーションをクロスプラットフォームにし、Android と iOS の両方で動作するようにする方法を紹介しています。 クロスプラットフォーム手法のメリットを活用するために、新しいプロジェクトを開始する必要はありません!
ドキュメントを読む以外にも、KMM を学習する方法があります。 Kotlin YouTube チャンネルの「Kotlin Multiplatform Multiverse」という新動画シリーズでは、新しいプロジェクトの作成や Ktor でのネットワーキングといった入門トピックが網羅されているため、快適なソファでくつろぎながら KMM を学習し始めることができます。
今後の予定
目まぐるしい 9 か月間でした! KMM は Kotlin チームの最優先事項の 1 つにとどまっているため、今後の展開も楽しみです。
次回の重要な待望のマイルストーンは、KMM のベータ版への移行です。 現在、このマイルストーンに向けて具体的なプランを立てている最中で、Beta 版が発表される前に完了される KMM 関連タスクについて、別途、ブログ記事を公開する予定です。 Kotlin Multiplatform ツーリングにおける Apple Silicon ターゲットのサポートや新しいガベージコレクションのプロトタイプなど、ほとんどのタスクが進行中です。 現在の優先事項に関するその他の情報については、Kotlin ロードマップをご覧ください。
コミュニティが成長していること、そして KMM が以前にもまして世界中の企業に使用されていることを目の当たりにし、非常に嬉しく思っています。 今すぐ、モバイルクロスプラットフォームの冒険に参加しましょう!
その他の記事と動画
Kotlin の YouTube チャンネル:
- Kotlin Multiplatform Multiverse シリーズ
- Talking Kotlin: Kotlin Multiplatform with John O’Reilly
- Talking Kotlin: MVIKotlin and Decompose with Arkadii Ivanov
Kotlin のブログをお読みください:
Kotlin および KMM ドキュメントをご覧ください。