Amper 是一個專案配置和建置工具。其目標是提供出色、流暢的用戶體驗和 IDE 支持,我們相信這可以透過以下方式實現:
提供對開發人員和 IDE 友好的聲明性配置 DSL - 不僅可以簡化初始設置,還可以提高可維護性,並讓 IDE 可靠地協助自動配置;
捆綁一組精選的兼容工具鍊和擴展 - 支援大多數場景,而無需尋找相容的插件;
仔細選擇可擴展點 - 保持配置的整體心智模型和使用者體驗一致,並避免意外的第三方程式碼執行。
本質上,我們的目標是實現與 JetBrains IDE 類似的經過深思熟慮和經過充分測試的體驗。
我們目前正在研究各個方面,包括建置、打包、發布等項目的配置。然而,現階段的重點主要是配置專案以進行建置。雖然目前的用例是 Kotlin 和 Kotlin 多平台,但 Amper 也支援 Java 和 Swift(作為多平台的要求)。然而,相同的配置方法將來也可以適用於其他語言和技術堆疊。
Amper 作為獨立的建置工具以及現有基於 Gradle 的專案的 Gradle 插件而存在。兩個版本都提供統一的、易於使用的聲明性配置格式。
支援的功能:
建立並運行 JVM、Android、iOS、Linux 和 macOS 應用程式。
建立 Kotlin 多平台庫。
運行測試。
混合 Kotlin、Java 和 Swift 程式碼。
IntelliJ IDEA 和 Fleet 中模組檔案的程式碼幫助。
多模組項目。
使用 Compose 多平台。
使用 Compose 多平台資源*。
Gradle 互通,包括將 Amper 和 Gradle 模組組合到一個專案中*。
與 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 的 Amper 專案。
這是一個非常基本的 JVM“Hello, World!”專案:
main.kt
和MyTest.kt
文件只是常規的 Kotlin 文件,沒有什麼特別的。有趣的部分是module.yaml
,它是 Amper 模組設定檔。對於上述項目結構,它只是:
# 生產一個JVM應用產品:jvm/app
就是這樣。 Kotlin 和 Java 工具鏈、測試框架和其他必要的功能均經過配置,開箱即用。您可以建立它、運行它、編寫和運行測試等等。有關更多詳細信息,請查看完整示例。
現在,讓我們來看看包含 Android、iOS 和桌面 JVM 應用程式的 Compose 多平台項目,在 Fleet 中具有以下項目結構:
請注意src/
資料夾如何同時包含 Kotlin 和 Swift 程式碼。當然,也可以是 Kotlin 和 Java。另一個需要強調的方面是共享模組,其中包含src
資料夾中的通用程式碼以及特定於平台的程式碼資料夾src@ios
和src@android
(以了解有關專案佈局的更多資訊)。
以下是ios-app/module.yaml
檔案的外觀:
# 產生一個iOS應用程式product: ios/app# 依賴共享庫模組: dependency: - ../sharedsettings: # 啟用 Compose 多平台框架 compose:enabled
這非常簡單:它定義了一個依賴共享模組的 iOS 應用程序,並啟用了 Compose 多平台框架。一個更有趣的例子是shared/module.yaml
:
# 為 JVM、Android 和 iOS 平台產生共用程式庫:product: type: lib platform: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Shared Compose dependency:dependencies: - $compose.foundation:導出 - $compose.material3:導出#僅適用於Android的依賴項dependency@android:#Android特定的與Compose的集成 - androidx.activity:activity-compose:1.7.2: 匯出 - androidx.appcompat:appcompat:1.6.1: 匯出#僅限 iOS 的依賴項,並依賴 CocoaPod(尚未實現)dependency@ios: - pod: 'Alamofire' version: '~> 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 的範例