amper
amper是Kotlin和Java语言的实验构建工具。它的目标是提供出色而流畅的用户体验和IDE支持。我们认为这可以通过:
- 提供开发人员和IDE友好的声明性配置DSL-不仅简化了初始设置,还可以提高可维护性,并让IDES可靠地可靠地进行自动配置;
- 捆绑一组策划的兼容工具链和扩展名 – 以支持大多数方案,而无需找到兼容的插件;
- 仔细选择可扩展的点 – 以保持配置的整体心理模型和UX一致,并避免出乎意料的第三方代码执行。
从本质上讲,我们旨在与喷气式杂志类似的经过深思熟虑和经过良好测试的体验。
我们仍处于实验阶段。我们目前正在研究各个方面,包括用于建造,包装,出版等项目的配置。但是,在当前阶段,重点主要是配置建筑项目。虽然当前的用例是Kotlin和Kotlin Multiplatform,但amper还支持Java和Swift(作为多平台的要求)。但是,将来对其他语言和技术堆栈的配置方法都可以使用。
支持的功能:
- 创建和运行JVM,Android,iOS,Linux和MacOS应用程序。
- 创建Kotlin多平台库。
- 运行测试。
- 混合Kotlin,Java和Swift代码。
- Intellij Idea和Fleet中模块文件的代码帮助。
- 多模块项目。
- 使用Compose Multiplatform。
- 使用撰写乘法资源。
- 与Gradle版本目录集成。
未来的指示:
- 支持更多的Kotlin和Kotlin乘法场景和配置。
- 更多产品类型和平台,例如WatchOS,Windows等。
- 平台特定的测试类型,包括Android仪器测试。
- 本机依赖项支持,例如Cocoapods,Swift Package Manager。
- 包装和出版。
- 建立变体支持。
- 可扩展性。
快速开始:
- 设置和使用说明
- 教程
- 文档
- 示例项目
问题和反馈
amper使用YouTrack进行问题跟踪,在那里创建一个新问题来报告问题或提交想法。
在报告问题之前,请检查常见问题解答。
您还可以加入Slack频道进行讨论,或使用反馈表格共享您的反馈。
如何尝试
有多种尝试amper方法:
- 在最新的Intellij Idea EAP中(说明)。
- 使用命令行中的amper 。
例子
基础
这是一个非常基本的JVM“你好,世界!”项目:
main.kt和MyTest.kt文件只是常规的kotlin文件,其中没有什么特别的。有趣的部分是module.yaml ,即amper模块配置文件。对于上述项目结构,这仅是:
# Produce a JVM application product : jvm/app
就是这样。配置了Kotlin和Java工具链,测试框架以及其他必要的功能,并直接提供。您可以构建它,运行它,编写和运行测试等等。有关更多详细信息,请查看完整示例。
乘数
现在,让我们看一下与Android,iOS和Desktop JVM应用程序组成的综合项目,并在车队中使用以下项目结构:
请注意, src/文件夹如何包含Kotlin和Swift代码。当然,它也可以是Kotlin和Java。要突出显示的另一个方面是src文件夹中具有通用代码的共享模块以及平台特定的代码文件夹src@ios和src@android (了解有关项目布局的更多信息)。
这是ios-app/module.yaml文件的外观:
# Produce an iOS application product : ios/app # Depend on the shared library module: dependencies : - ../shared settings : # Enable the Compose Multiplatform framework compose : enabled
这非常简单:它定义了一个iOS应用程序,其依赖性对共享模块,并启用了构图的乘法框架。一个更有趣的示例将是shared/module.yaml :
# Produce a shared library for the JVM, Android, and iOS platforms: product : type : lib platforms : [jvm, android, iosArm64, iosSimulatorArm64, iosX64] # Shared Compose dependencies: dependencies : - $compose.foundation : exported - $compose.material3 : exported # Android-only dependencies dependencies@android : # Android-specific integration with Compose - androidx.activity:activity-compose:1.7.2 : exported - androidx.appcompat:appcompat:1.6.1 : exported settings : # Enable Kotlin serialization kotlin : serialization : json # Enable the Compose Multiplatform framework compose : enabled
值得一提的是几件事。请注意,具有@<platform>资格赛的特定于平台的dependencies@android部分。平台预选赛可以在清单和文件布局中使用。预选赛组织特定平台的代码,依赖关系和设置。
自然,这些示例仅显示一组有限的amper功能。要更多地了解设计和功能,请查看文档,教程和示例项目。
更多例子
检查我们的这些示例项目:
- JVM“你好,世界!”
- 构成多平台
- 在iOS,Android和桌面上撰写
- kotlin乘以撰写UI和本机Android和iOS UI的Kotlin MultipLatform应用模板
- 和其他例子
