Amper es una herramienta de configuración y construcción de proyectos. Su objetivo es proporcionar una experiencia de usuario excelente y fluida y soporte IDE. Creemos que esto se puede lograr mediante:
proporcionar un DSL de configuración declarativa compatible con desarrolladores y IDE, para simplificar no sólo la configuración inicial sino también mejorar la capacidad de mantenimiento y permitir que un IDE ayude con la configuración automática de manera confiable;
agrupar un conjunto seleccionado de cadenas de herramientas y extensiones compatibles, para admitir la mayoría de los escenarios sin la necesidad de encontrar complementos compatibles;
Elegir cuidadosamente los puntos de extensibilidad para mantener consistente el modelo mental general y la UX de la configuración y evitar la ejecución inesperada de código de terceros.
En esencia, nuestro objetivo es lograr una experiencia similar, bien pensada y probada, a la de los IDE de JetBrains.
Actualmente estamos analizando varios aspectos, incluida la configuración de proyectos para construcción, empaquetado, publicación y más. Sin embargo, en la fase actual la atención se centra principalmente en la configuración de proyectos de construcción. Si bien el caso de uso actual es Kotlin y Kotlin Multiplatform, Amper también admite Java y Swift (como requisito para multiplataforma). Sin embargo, el mismo enfoque de configuración podría funcionar para otros lenguajes y pilas de tecnología en el futuro.
Amper existe como una herramienta de compilación independiente, así como como un complemento de Gradle para proyectos existentes basados en Gradle. Ambas versiones ofrecen un formato de configuración declarativo unificado y fácil de usar.
Funciones compatibles:
Creación y ejecución de aplicaciones JVM, Android, iOS, Linux y macOS.
Creación de bibliotecas Kotlin multiplataforma.
Ejecución de pruebas.
Mezclando código Kotlin, Java y Swift.
Asistencia de codificación para archivos de módulos en IntelliJ IDEA y Fleet.
Proyectos multimódulo.
Usando Redactar Multiplataforma.
Uso de recursos multiplataforma de Compose*.
Interoperabilidad de Gradle, incluida la combinación de módulos Amper y Gradle en un proyecto*.
Integración con catálogos de versiones Gradle*.
Diseño de proyecto compatible con Gradle para una migración fluida de proyectos Gradle existentes*.
* solo en proyectos basados en Gradle
Direcciones futuras:
Soporte para más escenarios y configuraciones de Kotlin y Kotlin Multiplataforma.
Más tipos de productos y plataformas, como watchOS, Windows, etc.
Tipos de pruebas específicas de la plataforma, incluidas las pruebas instrumentadas de Android.
Soporte de dependencias nativas, como CocoaPods, Swift Package Manager.
Embalaje y publicación.
Compatibilidad con variantes de compilación.
Extensibilidad.
Para un comienzo rápido:
Instrucciones de configuración y uso
Tutorial
Documentación
Proyectos de ejemplo
Guía de migración de Gradle
Amper utiliza YouTrack para el seguimiento de problemas, crea un nuevo problema allí para informar problemas o enviar ideas.
Antes de informar un problema, consulte las preguntas frecuentes.
También puedes unirte al canal de Slack para participar en debates o compartir tus comentarios mediante el formulario de comentarios.
Hay varias formas de probar Amper:
En la última versión de IntelliJ IDEA EAP, para proyectos JVM y Android (instrucciones).
En la última flota de JetBrains, para los proyectos JVM, Android y multiplataforma (instrucciones).
Usando Amper independiente desde la línea de comando.
Uso de Amper basado en Gradle desde la línea de comandos para crear proyectos de Amper basados en Gradle.
Aquí hay una JVM muy básica "¡Hola, mundo!" proyecto:
Los archivos main.kt
y MyTest.kt
son simplemente archivos Kotlin normales sin nada especial. La parte interesante es module.yaml
, que es el archivo de configuración del módulo Amper. Para la estructura del proyecto anterior, sería simplemente:
# Producir un producto de aplicación JVM: jvm/app
Eso es todo. Las cadenas de herramientas de Kotlin y Java, el marco de prueba y otras funciones necesarias están configuradas y disponibles desde el primer momento. Puede compilarlo, ejecutarlo, escribir y ejecutar pruebas, y más. Para obtener información más detallada, consulte el ejemplo completo.
Ahora, veamos un proyecto Compose Multiplatform con aplicaciones JVM de Android, iOS y de escritorio, con la siguiente estructura de proyecto en Fleet:
Observe cómo la carpeta src/
contiene código Kotlin y Swift juntos. Por supuesto, también podrían ser Kotlin y Java. Otro aspecto a destacar es el módulo compartido con el código común en la carpeta src
y las carpetas de códigos específicos de la plataforma src@ios
y src@android
(conozca más sobre el diseño del proyecto).
Así es como se ve el archivo ios-app/module.yaml
:
# Producir una aplicación iOSproducto: ios/app# Depende del módulo de biblioteca compartida: dependencias: - ../sharedsettings: # Habilitar el marco de redacción multiplataforma componer: habilitado
Esto es bastante sencillo: define una aplicación iOS con una dependencia de un módulo compartido y habilita el marco Compose Multiplatform. Un ejemplo más interesante seríashared shared/module.yaml
:
# Produzca una biblioteca compartida para las plataformas JVM, Android e iOS: producto: tipo: plataformas lib: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Dependencias de composición compartida:dependencias: - $compose.foundation: exportado - $compose.material3: exportado# dependencias exclusivas de Android dependencies@android: # integración específica de Android con Compose - androidx.actividad: actividad-componer: 1.7.2: exportado - androidx.appcompat:appcompat:1.6.1: exportado# dependencias solo para iOS con una dependencia en un CocoaPod (aún no implementado)dependencies@ios: - pod: 'Alamofire' versión: '~> 2.0.1'configuración: # Habilitar serialización de Kotlin kotlin: serialización: json # Habilite la redacción del marco Compose Multiplatform: habilitado
Vale la pena mencionar un par de cosas. Primero, tenga en cuenta las dependencias específicas de la plataforma: secciones con el calificador @<platform>
. El calificador de plataforma se puede utilizar tanto en el manifiesto como en el diseño del archivo. El calificador organiza el código, las dependencias y la configuración de una determinada plataforma. En segundo lugar, la sección dependencias: permite no solo las dependencias de Kotlin y Maven, sino también administradores de paquetes específicos de la plataforma, como CocoaPods, Swift Package Manager y otros.
Naturalmente, estos ejemplos muestran sólo un conjunto limitado de características de Amper. Para obtener más información sobre el diseño y la funcionalidad, consulte la documentación, el tutorial y los proyectos de ejemplo.
Consulte nuestros proyectos de ejemplo:
JVM "¡Hola mundo!" (independiente, basado en Gradle)
Redactar multiplataforma (independiente, basado en Gradle)
Redactar en iOS (independiente, basado en Gradle), Android (independiente, basado en Gradle) y escritorio (independiente, basado en Gradle)
Plantilla de aplicación Kotlin multiplataforma con interfaz de usuario de redacción compartida y con interfaz de usuario nativa de Android e iOS
Interoperabilidad de Gradle en Amper basado en Gradle
Y otros ejemplos independientes y basados en Gradle