FAQ
General¶
Is Amper a brand-new build tool from JetBrains?¶
Yes, Amper is a new build tool with a focus on user experience and IDE support.
Do you plan to support only Kotlin?¶
Amper already supports both Kotlin and Java as first-class citizens. Also, because one of Amper's main targets is Kotlin Multiplatform projects, it supports Swift and Objective-C for iOS.
We’ll investigate other tech stacks in the future based on the demand for them.
Which target platforms are supported?¶
Currently, you can create applications for the JVM, Android, iOS, macOS, Linux, Windows, but also JS and WASM (although those cannot be run directly with Amper).
Libraries can be created for all Kotlin Multiplatform targets.
Does Amper support Compose Multiplatform?¶
Yes, you can configure Compose for Android, iOS, and desktop. Check out our Compose Multiplatform guide.
Does Amper support Kotlin/JS or Kotlin/Wasm projects?¶
Yes, but it doesn't provide tooling to work on full stack web projects yet. For instance, Amper doesn't install any
browser or Node.js runtime, doesn't generate or process any HTML entry point, and cannot run js/app modules on its own.
What functionality do you plan to support?¶
We plan to cover all the common use cases based on demand. At the moment, we’re working on extensibility, publication, and exploring Maven migration and integration.
Will Amper be open source?¶
Amper is already open source. Check out our GitHub repository to see what we're up to!
When will Amper be released as stable?¶
Right now, we’re focusing on getting feedback and understanding your needs. Based on that, we’ll be able to provide a more accurate estimate of a release date sometime in the future.
Should I start my next project with Amper?¶
You’re welcome to use it in any type of project. However, please understand that Amper is still in the experimental phase, and we expect things to change.
Should I migrate my existing projects?¶
Understanding real-world scenarios is crucial for us to provide a better experience, so from our side we’d love to hear about the challenges you may face porting existing projects. However, please understand that the project is still in the experimental phase, and we cannot guarantee that all scenarios can be supported.
How do I report a bug?¶
Please report problems to our YouTrack issue tracker. Since this project is in the experimental phase, we would also greatly appreciate feedback and suggestions regarding the configuration experience – join our Slack channel for discussion.
Why don’t you use Kotlin for Amper's configuration files?¶
Currently, we use YAML as a simple and readable markup language. It allows us to experiment with the UX and the IDE support much faster. We’ll review the language choice as we proceed with the design and based on demand. The Kotlin DSL, or a limited form thereof, is one of the possible options.
Having said that, we believe that the declarative approach to project configuration has significant advantages over the imperative approach. Declarative configuration is easily toolable, recovery from errors is much easier, and interpretation is much faster. These properties are critical for a good UX.
Our final language choice will be made based on the overall UX it provides.
Why did you have a Gradle-based option to use Amper?¶
In the initial Amper prototype, our main focus was improving the user experience and toolability of build configuration. Gradle, as a well-tested build engine, allowed us to start experimenting with the UX of the configuration very quickly. What’s more, smooth interoperability with Gradle allowed using Amper in existing projects, which is important if we want to get feedback from real-world use cases.
Now, Amper is a standalone build tool, which allows us to improve the IDE support and workflows even further.
Why not simply improve Gradle?¶
We believe there is room to improve the project configuration experience and IDE support. With Amper, we want to show you our design and get your feedback, as it will help us to decide which direction to take the design.
At the same time, we are also working with the Gradle team to improve Gradle support in our IDEs and Gradle itself.
What about Gradle extensibility and plugins?¶
We aim to support most of the Kotlin and Kotlin Multiplatform use cases out of the box and offer a reasonable level of extensibility.
How do Amper and Declarative Gradle relate to each other?¶
Both projects aim to improve the developer experience and the IDE support, but from opposite directions and with different constraints. Amper's approach is to design, from the ground up, a tool that is easy to use for the developers regardless of their background, with great IDE support in mind, and focused on specific use-cases. The Declarative Gradle project approaches the same goal from the other end, improving the developer experience and the IDE support in an already exising powerful tool.
While both projects are still experimental, it's important that you provide your feedback to shape the future development.
Usage¶
What are the requirements to use Amper?¶
The Amper command line tool doesn't require any software preinstallation, except the Xcode toolchain if you want to build iOS applications. See the CLI instructions.
We recommend using the latest IntelliJ IDEA EAP to make the most out of Amper. Our focus on the tooling and UX really pays off in IntelliJ IDEA. To learn about the required and optional plugins in IntelliJ IDEA, see the IDE setup instructions.
How do I create a new Amper project?¶
You have several options:
-
Open IntelliJ IDEA and create a new Kotlin project with the Amper build tool
-
Kick-start your project using one of the examples
-
Download the Amper script by following the CLI instructions, and generate a project from a template using the
./amper initcommand.
How do I create a multi-module project in Amper?¶
See the documentation on the project layout.
Is there an automated migration tool?¶
Not currently, but it's certainly something we’re looking into.
Feature X is not yet supported, what can I do?¶
Please let us know about it! We're eager to hear what you're trying to do, because we plan to expand the list of supported use cases based on demand. Please submit your requests and sugg estions in the YouTrack issue tracker or join the Slack channel for discussions.
Can I write a custom task or use a plugin?¶
Yes! Amper now includes a preview of a plugin system. See the dedicated docs.
How can I use C-interop in Amper?¶
For now, Amper doesn't directly support C-interop.