Amper はプロジェクト設定およびビルド ツールです。その目標は、優れたスムーズなユーザー エクスペリエンスと IDE サポートを提供することです。これは以下によって達成できると考えています。
開発者と IDE に優しい宣言型構成 DSL を提供します。これにより、初期セットアップが簡素化されるだけでなく、保守性も向上し、IDE が自動構成を確実に支援できるようになります。
互換性のあるツールチェーンと拡張機能の厳選されたセットをバンドルする - 互換性のあるプラグインを見つける必要なく、ほとんどのシナリオをサポートします。
拡張性ポイントを慎重に選択します。これは、構成の全体的なメンタル モデルと UX の一貫性を維持し、予期しないサードパーティ コードの実行を回避するためです。
本質的に、私たちは JetBrains IDE と同様の、よく考えられ、十分にテストされたエクスペリエンスを実現することを目指しています。
現在、ビルド、パッケージ化、パブリッシングなどのプロジェクトの構成を含め、さまざまな側面を検討しています。ただし、現段階では、主にプロジェクトを構築するための構成に重点が置かれています。現在のユースケースは Kotlin と Kotlin マルチプラットフォームですが、Amper は Java と Swift (マルチプラットフォームの要件として) もサポートしています。ただし、同じ構成アプローチが将来、他の言語やテクノロジー スタックでも機能する可能性があります。
Amper は、スタンドアロンのビルド ツールとしてだけでなく、既存の Gradle ベースのプロジェクト用の Gradle プラグインとしても存在します。どちらのバージョンも、統一された使いやすい宣言型構成形式を提供します。
サポートされている機能:
JVM、Android、iOS、Linux、macOS アプリケーションの作成と実行。
Kotlin マルチプラットフォーム ライブラリの作成。
テストの実行。
Kotlin、Java、Swift コードの混合。
IntelliJ IDEA およびフリートのモジュール ファイルのコード支援。
マルチモジュールプロジェクト。
Compose マルチプラットフォームの使用。
Compose マルチプラットフォーム リソース* の使用。
Gradle の相互運用機能 (Amper モジュールと Gradle モジュールを 1 つのプロジェクトに組み合わせるなど)。
Gradle バージョン カタログ* との統合。
Gradle 互換のプロジェクト レイアウトにより、既存の Gradle プロジェクト* をスムーズに移行できます。
* Gradle ベースのプロジェクトのみ
今後の方向性:
より多くの Kotlin および Kotlin マルチプラットフォームのシナリオと構成のサポート。
watchOS、Windows など、より多くの製品タイプとプラットフォーム。
Android のインストルメント化されたテストを含む、プラットフォーム固有のテスト タイプ。
CocoaPods、Swift Package Manager などのネイティブ依存関係のサポート。
パッケージングと出版。
ビルドバリアントのサポート。
拡張性。
簡単に始めるには:
セットアップと使用方法の説明
チュートリアル
ドキュメント
プロジェクト例
Gradle移行ガイド
Amper は問題の追跡に YouTrack を使用し、そこで新しい問題を作成して問題を報告したり、アイデアを送信したりします。
問題を報告する前に、よくある質問をご確認ください。
Slack チャネルに参加してディスカッションを行ったり、フィードバック フォームを使用してフィードバックを共有したりすることもできます。
Amper を試す方法は複数あります。
最新の IntelliJ IDEA EAP では、JVM および Android プロジェクト用 (手順)。
最新の JetBrains Fleet では、JVM、Android、およびマルチプラットフォーム プロジェクト用 (手順)。
コマンドラインからスタンドアロンの Amper を使用する。
コマンドラインから Gradle ベースの Amper を使用して、Gradle ベースの Aper プロジェクトを構築します。
これは非常に基本的な JVM「Hello, World!」です。プロジェクト:
main.kt
ファイルとMyTest.kt
ファイルは、特別なものを何も含まない単なる通常の Kotlin ファイルです。興味深い部分は、Amper モジュール構成ファイルであるmodule.yaml
です。上記のプロジェクト構造の場合、単純に次のようになります。
# JVM アプリケーション製品を生成します: jvm/app
それでおしまい。 Kotlin および Java ツールチェーン、テスト フレームワーク、その他の必要な機能が構成されており、箱から出してすぐに使用できます。ビルド、実行、テストの作成と実行などを行うことができます。さらに詳しい情報については、完全な例を確認してください。
ここで、Android、iOS、およびデスクトップ JVM アプリを含む Compose Multiplatform プロジェクトを見てみましょう。フリートでは次のプロジェクト構造になっています。
src/
フォルダーに Kotlin と Swift コードがどのように一緒に含まれているかに注目してください。もちろん、Kotlin や Java も可能です。強調すべきもう 1 つの側面は、 src
フォルダー内の共通コードとプラットフォーム固有のコード フォルダーsrc@ios
およびsrc@android
を含む共有モジュールです (プロジェクト レイアウトの詳細を参照してください)。
ios-app/module.yaml
ファイルは次のようになります。
# iOS アプリケーションを生成しますproduct: ios/app# 共有ライブラリ モジュールに依存します: dependency: - ../sharedsettings: # Compose マルチプラットフォーム フレームワークを有効にする compose: Enabled
これは非常に簡単です。共有モジュールに依存する iOS アプリケーションを定義し、Compose Multiplatform フレームワークを有効にします。より興味深い例は、 shared/module.yaml
です。
# JVM、Android、iOS プラットフォーム用の共有ライブラリを作成します:product: type: lib platforms: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Shared Compose dependency:dependency: - $compose.foundation: エクスポートされました - $compose.material3:exported# Android のみの依存関係 dependency@android: # Android 固有の Compose との統合 - androidx.activity:activity-compose:1.7.2: エクスポートされました - androidx.appcompat:appcompat:1.6.1: CocoaPod への依存関係を持つ # iOS のみの依存関係をエクスポートしました (まだ実装されていません)dependency@ios: - ポッド: 'Alamofire' バージョン: '~> 2.0.1'settings: # Kotlin シリアル化を有効にする kotlin:serialization: json # Compose マルチプラットフォーム フレームワークを有効にする compose: Enabled
言及する価値のあることがいくつかあります。まず、プラットフォーム固有の依存関係に注目してください: @<platform>
修飾子が付いているセクション。プラットフォーム修飾子は、マニフェストとファイル レイアウトの両方で使用できます。修飾子は、特定のプラットフォームのコード、依存関係、設定を整理します。次に、 dependency: セクションでは、Kotlin と Maven の依存関係だけでなく、CocoaPods、Swift Package Manager などのプラットフォーム固有のパッケージ マネージャーも許可します。
当然のことながら、これらの例は、Amper の機能の限られたセットのみを示しています。設計と機能についてさらに詳しく知るには、ドキュメント、チュートリアル、およびサンプル プロジェクトを参照してください。
これらのサンプル プロジェクトを確認してください。
JVM「ハロー、ワールド!」 (スタンドアロン、Gradle ベース)
Compose マルチプラットフォーム (スタンドアロン、Gradle ベース)
iOS (スタンドアロン、Gradle ベース)、Android (スタンドアロン、Gradle ベース)、デスクトップ (スタンドアロン、Gradle ベース) で作成します。
共有 Compose UI とネイティブ Android および iOS UI を備えた Kotlin マルチプラットフォーム アプリ テンプレート
Gradle ベースの Amper の Gradle 相互運用性
その他のスタンドアロンおよび Gradle ベースの例