{"id":422035,"date":"2023-12-21T12:42:47","date_gmt":"2023-12-21T11:42:47","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=amper&#038;p=422035"},"modified":"2024-08-30T15:23:05","modified_gmt":"2024-08-30T14:23:05","slug":"amper-update-december-2023","status":"publish","type":"amper","link":"https:\/\/blog.jetbrains.com\/de\/amper\/2023\/12\/amper-update-december-2023","title":{"rendered":"Amper Update \u2013 December 2023"},"content":{"rendered":"\n<p>Last month JetBrains <a href=\"https:\/\/blog.jetbrains.com\/de\/blog\/2023\/11\/09\/amper-improving-the-build-tooling-user-experience\">introduced Amper<\/a>, a tool to improve the project configuration user experience. It offers concise, declarative configuration with sensible defaults for common use cases and carefully considered extension points.<\/p>\n\n\n\n<p>Since then, we\u2019ve received a lot of feedback from the community and have continued our development work as well. In this post, we\u2019ll recap some of the highlights of what we\u2019ve heard from you and talk a little about where we\u2019re headed next.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Your feedback<\/h3>\n\n\n\n<p>At this early stage of the project, receiving feedback is of utmost importance, as it helps us build Amper in a way that meets real needs and solves real problems. We\u2019re grateful to everyone who has already shared their thoughts with us, and we hope to hear more from you. Your comments have reaffirmed that the simplicity offered by Amper is indeed something you want.<\/p>\n\n\n\n<p>We\u2019ve also received a lot of feedback about our choice of YAML as the language of Amper\u2019s module definition files. Rest assured that we\u2019ve taken this feedback to heart. As stated in our initial announcement, this language choice is not final. We\u2019re still evaluating the available options, and we look forward to sharing more on this topic soon.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">New releases<\/h3>\n\n\n\n<p>Since the initial announcement, we\u2019ve released a few updates, adding support for configuring <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-kover\" target=\"_blank\" rel=\"noopener\">Kover<\/a> (a <a href=\"https:\/\/github.com\/JetBrains\/amper\/pull\/9\" target=\"_blank\" rel=\"noopener\">community contribution<\/a> from Landry Norris, which we\u2019re grateful for) and delivering bug fixes (<a href=\"https:\/\/youtrack.jetbrains.com\/issue\/AMPER-222\/\" target=\"_blank\" rel=\"noopener\">AMPER-222<\/a>, <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/AMPER-256\/\" target=\"_blank\" rel=\"noopener\">AMPER-256<\/a>).<\/p>\n\n\n\n<p>We\u2019ve also published the source code for the current prototype implementation, which you can now browse in <a href=\"https:\/\/github.com\/JetBrains\/amper\/\" target=\"_blank\" rel=\"noopener\">the GitHub repository<\/a> of the project.<\/p>\n\n\n\n<p>Amper is being actively developed, and we also have other exciting additions coming soon. These include one of the most commonly requested features: support for version catalogs. We\u2019re also working on improved IDE capabilities, such as better typing assistance and code completion in your Amper manifest files.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How to try Amper<\/h3>\n\n\n\n<p>If you haven\u2019t tried Amper yet, we encourage you to give it a go and share your thoughts on it with us.&nbsp;<\/p>\n\n\n\n<p>To get started, open your project in the latest version of IntelliJ IDEA or Fleet, and follow the <a href=\"https:\/\/github.com\/JetBrains\/amper\/blob\/HEAD\/docs\/Setup.md\" target=\"_blank\" rel=\"noopener\">setup instructions<\/a>. You can also take a look at the <a href=\"https:\/\/github.com\/JetBrains\/amper\/blob\/HEAD\/docs\/Tutorial.md\" target=\"_blank\" rel=\"noopener\">tutorial<\/a>, <a href=\"https:\/\/github.com\/JetBrains\/amper\/tree\/HEAD\/examples-gradle\" target=\"_blank\" rel=\"noopener\">sample projects<\/a>, and documentation to learn more.<\/p>\n\n\n\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Explore the docs\" href=\"https:\/\/github.com\/JetBrains\/amper\/blob\/0.1\/docs\/Documentation.md\" target=\"_blank\" rel=\"noopener\">Explore the docs<\/a><\/p>\n\n\n\n<p>A good approach for trying Amper in your own project is to create a separate branch where you replace your existing configuration with Amper modules. You can see this in action in our KMP app template repositories with <a href=\"https:\/\/github.com\/Kotlin\/KMP-App-Template\/tree\/amper\" target=\"_blank\" rel=\"noopener\">shared Compose Multiplatform UI<\/a> and with <a href=\"https:\/\/github.com\/Kotlin\/KMP-App-Template-Native\/tree\/amper\" target=\"_blank\" rel=\"noopener\">native UI implementations<\/a>, which now have separate branches configured with Amper.<\/p>\n\n\n\n<p>For example, here\u2019s how the shared module of the template with native UI was converted from the original build file to its new module manifest that uses Amper.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" width=\"2650\" height=\"2500\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/12\/image-42.png\" alt=\"\" class=\"wp-image-422036\" style=\"aspect-ratio:1.06;width:840px;height:auto\"\/><figcaption class=\"wp-element-caption\">Before \/ after converting a shared KMP module in the template project<\/figcaption><\/figure>\n\n\n\n<p>Because Amper offers <a href=\"https:\/\/github.com\/JetBrains\/amper\/blob\/HEAD\/docs\/Documentation.md#gradle-interop\" target=\"_blank\" rel=\"noopener\">interoperability with Gradle<\/a>, you can still use Gradle plugins and write custom Gradle tasks if necessary. For example, the module above uses this interop to include the Gradle plugin for <a href=\"https:\/\/skie.touchlab.co\/\" target=\"_blank\" rel=\"noopener\">SKIE<\/a> in the project. You also have the option to <a href=\"https:\/\/github.com\/JetBrains\/amper\/blob\/HEAD\/docs\/Documentation.md#file-layout-with-gradle-interop\" target=\"_blank\" rel=\"noopener\">keep the file layout<\/a> that Gradle projects use to simplify migration.<\/p>\n\n\n\n<p>To provide feedback about your experience, join the discussion in the <a href=\"https:\/\/kotlinlang.slack.com\/archives\/C062WG3A7T8\" target=\"_blank\" rel=\"noopener\">#amper channel<\/a> on the Kotlin Slack, or share your suggestions and ideas <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/AMPER\" target=\"_blank\" rel=\"noopener\">in an issue on YouTrack<\/a>. Your input will really help shape Amper\u2019s future, and we look forward to hearing from you.<\/p>\n\n\n\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Join the Slack channel\" href=\"https:\/\/kotlinlang.slack.com\/archives\/C062WG3A7T8\" target=\"_blank\" rel=\"noopener\">Join the Slack channel<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">More resources<\/h3>\n\n\n\n<ul>\n<li><a href=\"https:\/\/surveys.jetbrains.com\/s3\/kotlin-slack-sign-up\" target=\"_blank\" rel=\"noopener\">Sign up for the Kotlin Slack<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/blog.jetbrains.com\/de\/kotlin\/2023\/12\/kotlin-news-nov-23\">News Digest: Kotlin Multiplatform Special<\/a><\/li>\n<\/ul>\n","protected":false},"author":1478,"featured_media":422051,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[6355],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/amper\/422035"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/amper"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/amper"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/1478"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=422035"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/amper\/422035\/revisions"}],"predecessor-version":[{"id":506653,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/amper\/422035\/revisions\/506653"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/422051"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=422035"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=422035"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=422035"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=422035"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}