Amper — это инструмент для настройки и сборки проектов. Его цель — обеспечить удобный и удобный пользовательский интерфейс и поддержку IDE. Мы считаем, что этого можно достичь путем:
предоставление DSL декларативной конфигурации, удобной для разработчиков и IDE, чтобы упростить не только первоначальную настройку, но и улучшить удобство обслуживания, а также позволить IDE надежно помочь в автоматической настройке;
объединение тщательно подобранного набора совместимых наборов инструментов и расширений — для поддержки большинства сценариев без необходимости поиска совместимых плагинов;
тщательный выбор точек расширения — чтобы сохранить согласованность общей ментальной модели и UX конфигурации и избежать неожиданного выполнения стороннего кода.
По сути, мы стремимся добиться такого же хорошо продуманного и проверенного опыта, как и в случае с IDE JetBrains.
В настоящее время мы рассматриваем различные аспекты, включая настройку проектов для сборки, упаковки, публикации и многое другое. Однако на нынешнем этапе основное внимание уделяется, прежде всего, настройке проектов для строительства. Хотя в настоящее время используется Kotlin и Kotlin Multiplatform, Amper также поддерживает Java и Swift (как требование для мультиплатформенности). Однако в будущем тот же подход к настройке может работать и для других языков и стеков технологий.
Amper существует как отдельный инструмент сборки, а также как плагин Gradle для существующих проектов на основе Gradle. Обе версии предлагают унифицированный, простой в использовании формат декларативной конфигурации.
Поддерживаемые функции:
Создание и запуск приложений JVM, Android, iOS, Linux и macOS.
Создание мультиплатформенных библиотек Kotlin.
Запуск тестов.
Смешивание кода Kotlin, Java и Swift.
Помощь по коду для файлов модулей в IntelliJ IDEA и Fleet.
Многомодульные проекты.
Использование Compose Multiplatform.
Использование мультиплатформенных ресурсов Compose*.
Взаимодействие с Gradle, включая объединение модулей Amper и Gradle в одном проекте*.
Интеграция с каталогами версий Gradle*.
Макет проекта, совместимый с Gradle, для плавной миграции существующих проектов Gradle*.
* только в проектах на базе Gradle
Будущие направления:
Поддержка большего количества сценариев и конфигураций Kotlin и Kotlin Multiplatform.
Больше типов продуктов и платформ, таких как watchOS, Windows и т. д.
Типы тестов, специфичные для платформы, включая инструментальные тесты Android.
Поддержка собственных зависимостей, таких как CocoaPods, Swift Package Manager.
Упаковка и публикация.
Поддержка вариантов сборки.
Расширяемость.
Для быстрого старта:
Инструкция по настройке и использованию
Учебник
Документация
Примеры проектов
Руководство по миграции Gradle
Amper использует YouTrack для отслеживания проблем. Создавайте там новые проблемы, чтобы сообщать о проблемах или предлагать идеи.
Прежде чем сообщить о проблеме, ознакомьтесь с часто задаваемыми вопросами.
Вы также можете присоединиться к каналу Slack для обсуждения или поделиться своим мнением, используя форму обратной связи.
Есть несколько способов попробовать Amper:
В последней версии IntelliJ IDEA EAP для проектов JVM и Android (инструкции).
В последней версии JetBrains Fleet для проектов JVM, Android и Multiplatform (инструкция).
Использование автономного Amper из командной строки.
Использование Amper на основе Gradle из командной строки для создания проектов Amper на основе Gradle.
Вот очень простой JVM «Hello, World!» проект:
Файлы main.kt
и MyTest.kt
— это обычные файлы Kotlin, в которых нет ничего особенного. Интересная часть — это файл module.yaml
, который представляет собой файл конфигурации модуля Amper. Для приведенной выше структуры проекта это будет просто:
# Создайте продукт приложения JVM: jvm/app
Вот и все. Цепочки инструментов Kotlin и Java, среда тестирования и другие необходимые функции настраиваются и доступны прямо из коробки. Вы можете его создавать, запускать, писать и запускать тесты и многое другое. Для получения более подробной информации ознакомьтесь с полным примером.
Теперь давайте посмотрим на проект Compose Multiplatform с Android, iOS и настольными JVM-приложениями со следующей структурой проекта в Fleet:
Обратите внимание, что папка src/
содержит код Kotlin и Swift вместе. Конечно, это также могут быть Kotlin и Java. Еще один аспект, на который следует обратить внимание, — это общий модуль с общим кодом в папке src
и папками кода для конкретной платформы src@ios
и src@android
(подробнее о макете проекта).
Вот как выглядит файл ios-app/module.yaml
:
# Создание приложения iOS: ios/app# Зависит от модуля общей библиотеки: зависимости: - ../sharedsettings: # Включить многоплатформенную структуру Compose Compose: Enabled
Это довольно просто: оно определяет приложение iOS с зависимостью от общего модуля и включает платформу Compose Multiplatform. Более интересный пример — shared/module.yaml
:
# Создайте общую библиотеку для платформ JVM, Android и iOS:product: type: lib Platforms: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Shared Compose dependency:dependents: - $compose.foundation: экспортировано - $compose.material3: экспортировано# зависимости только для Android dependities@android: # интеграция с Compose, специфичная для Android - androidx.activity:activity-compose:1.7.2: экспортировано - androidx.appcompat:appcompat:1.6.1: экспортировано# зависимостей только для iOS с зависимостью от CocoaPod (еще не реализовано)dependents@ios: - pod: 'Alamofire' версия: '~> 2.0.1'settings: # Включить сериализацию Kotlin kotlin: сериализация: json # Включите фреймворк Compose Multiplatform Compose: Enabled
Стоит упомянуть пару вещей. Во-первых, обратите внимание на зависимости, специфичные для платформы: разделы с квалификатором @<platform>
. Квалификатор платформы можно использовать как в манифесте, так и в макете файла. Квалификатор организует код, зависимости и настройки для определенной платформы. Во-вторых, раздел dependency: позволяет использовать не только зависимости Kotlin и Maven, но и менеджеры пакетов для конкретной платформы, такие как CocoaPods, Swift Package Manager и другие.
Естественно, в этих примерах показан лишь ограниченный набор функций Amper. Чтобы получить более полное представление о дизайне и функциональности, просмотрите документацию, руководство и примеры проектов.
Ознакомьтесь с нашими примерами проектов:
JVM «Привет, мир!» (автономный, на основе Gradle)
Compose Multiplatform (автономный, на основе Gradle)
Compose на iOS (автономно, на основе Gradle), Android (автономно, на основе Gradle) и на настольном компьютере (автономно, на основе Gradle)
Шаблон многоплатформенного приложения Kotlin с общим пользовательским интерфейсом Compose и собственным пользовательским интерфейсом Android и iOS.
Взаимодействие Gradle с Amper на основе Gradle
И другие автономные примеры и примеры на основе Gradle.