Amper Update, May 2025 – A Standalone Build Tool for Kotlin, Server-Side and Multiplatform

Amper 0.7.0 is here, expanding beyond multiplatform apps to include support for server-side development with Ktor and Spring, adding iOS to Amper’s list of supported Kotlin Multiplatform targets, and much more. The standalone version of Amper is now the primary focus of the project, and the Gradle-based variant is being phased out. Read on for […]

May 21, 2025 - 20:10
 0
Amper Update, May 2025 – A Standalone Build Tool for Kotlin, Server-Side and Multiplatform

Amper 0.7.0 is here, expanding beyond multiplatform apps to include support for server-side development with Ktor and Spring, adding iOS to Amper’s list of supported Kotlin Multiplatform targets, and much more. The standalone version of Amper is now the primary focus of the project, and the Gradle-based variant is being phased out. Read on for details, and as always, see the release notes for the full list of changes.

To use Amper’s latest features, get IntelliJ IDEA 2025.1.2 Preview (or newer).

Server-side support for Ktor and Spring

Amper now offers support for Ktor and Spring projects out of the box, including the ability to package executable JARs and use BOM dependencies, as well as IDE integrations.

The ktor-simplest-sample shows a minimal REST service built with Ktor and Amper:

Amper also supports Spring Boot applications. Try the classic Spring PetClinic sample – now built with Amper:

You can enable support for Ktor or Spring in the module.yaml file:

product: jvm/app

settings:
  ktor: enabled
  # or
  springBoot: enabled
  # ... rest of your module configuration ...

This sets up your module with sensible defaults: It adds the required compiler plugins like no-arg and all-open for Spring, applies the appropriate BOM, configures version catalogs, and lets you build an executable JAR using the new amper package command.

Amper integrates fully with existing IDE functionality for both Ktor and Spring. You get all the essentials, like run configurations and endpoint discovery, and advanced framework-specific tools, such as the Spring Bean Graph.

To try Amper in server-side projects, refer to the samples in the repository. You can also use the new templates for server-side projects included in the amper init command.

IDE improvements

Improved diagnostics and quick-fixes

In Amper 0.7.0, we’ve made a number of existing warnings and error messages more readable and actionable. We also ensured that Amper degrades gracefully when there are errors in the configuration, preserving tooling support to help you resolve any issues. Here are a few highlights:

If a dependency version is overridden by another dependency that requests a newer version, Amper now reports this as a warning, provides a detailed explanation of why the override occurred, and offers a quick-fix to update the version to match:

Amper now provides clear errors when a multiplatform dependency is missing support for one or more targets required by the module that includes it, and offers various quick-fixes to resolve the issue:

Providing clear diagnostics and actionable guidance for misconfigured builds is one of our top priorities. We’re continuing to improve here and welcome your feedback in the issue tracker.

Adding dependencies for unresolved references

When your code references a symbol from another module that isn’t declared as a dependency yet, Amper now offers a quick-fix to add it as a dependency without requiring you to leave the Kotlin file you’re editing:

This quick-fix currently works for unresolved references to other modules within your project. We’re planning to add support for external libraries like kotlinx.coroutines in upcoming releases.

Kotlin Multiplatform support in standalone Amper

With 0.7.0, the standalone version of Amper now supports Kotlin Multiplatform development for iOS, in addition to Android and Desktop. You can build, package, and run KMP apps for these platforms entirely with Amper. No need to directly configure other build tools – Amper handles all native toolchain integrations behind the scenes.

As an example, we have converted the updated KotlinConf app for these platforms to Amper. You can find the code on this branch.

To learn more about KMP projects with Amper, take a look at the samples in the repository.

The future of standalone Amper and Gradle-based Amper

Amper was initially released as a Gradle-based configuration tool. Gradle’s capabilities and plugin ecosystem helped us prototype quickly and supported early adoption patterns, including per-module migration and the ability to customize the build logic.

Since then, we’ve released a standalone version of Amper that handles the build process entirely on its own, without requiring users to interact with other build tools. Our goal was to answer a few key questions:

  • Do we gain any user-visible benefits by writing and maintaining a full-fledged build system?
  • Is it feasible to support most common scenarios out of the box without relying on third-party plugins?
  • Can Amper provide enough flexibility to cover advanced real-life scenarios without sacrificing high-quality tooling support?

Today, we’re excited to share the results of this research. The standalone version of Amper is now the main path forward. Gradle-based Amper is deprecated and will be phased out in future releases.

The standalone version of Amper already supports core KMP and server-side scenarios. In fact, the Amper project itself has been built using standalone Amper for several releases now! Many existing Amper diagnostics, quick-fixes, refactorings, and other features are only possible because Amper controls the entire build process, and we see huge potential for further evolution.

We’re also confident that Amper can offer the flexibility and customizability needed for advanced use cases: custom packaging and deployment, environment-specific configuration (for example, for CI), and plugins. We’re actively working on extensibility to enable all these use cases. We plan to share the first preview of Amper’s extensibility API soon.

If you’re attending KotlinConf this week, watch our talk on May 22 to hear more about Amper’s direction, and stop by our booth to discuss Amper!

Updated dependency versions

Amper now uses Compose Multiplatform 1.8.0 by default, which brings Compose Multiplatform support for iOS to Stable.

Getting started with Amper 0.7.0

To update an existing standalone Amper project, run the update command:

./amper update

To start a new project, simply use init:

amper init

For examples, see the sample projects in the Amper repository.

To enjoy full support for the latest Amper features, use IntelliJ IDEA 2025.1.2 Preview (or newer).

Share your feedback

Amper is still experimental and under active development. You can provide feedback about your experience by joining the discussion in the Kotlinlang Slack’s #amper channel or sharing your suggestions and ideas in a YouTrack issue. Your input and use cases help shape the future of Amper!