Amper est un outil de configuration et de construction de projet. Son objectif est de fournir une expérience utilisateur fluide et fluide ainsi qu'un support IDE. Nous pensons que cela peut être réalisé par :
fournir un DSL de configuration déclarative convivial pour les développeurs et les IDE - pour simplifier non seulement la configuration initiale, mais également améliorer la maintenabilité et laisser un IDE aider de manière fiable à la configuration automatique ;
regrouper un ensemble organisé de chaînes d'outils et d'extensions compatibles - pour prendre en charge la majorité des scénarios sans avoir besoin de trouver des plugins compatibles ;
en choisissant soigneusement les points d'extensibilité - pour maintenir la cohérence du modèle mental global et de l'UX de la configuration et pour éviter l'exécution inattendue de code tiers.
Essentiellement, notre objectif est de parvenir à une expérience bien pensée et testée similaire à celle des IDE JetBrains.
Nous étudions actuellement différents aspects, notamment la configuration des projets de construction, de packaging, d'édition, etc. Mais à l’heure actuelle, l’accent est mis principalement sur la configuration de projets de construction. Bien que le cas d'utilisation actuel soit Kotlin et Kotlin Multiplatform, Amper prend également en charge Java et Swift (comme condition requise pour le multiplateforme). Cependant, la même approche de configuration pourrait fonctionner pour d’autres langages et piles technologiques à l’avenir.
Amper existe en tant qu'outil de construction autonome ainsi qu'en tant que plugin Gradle pour les projets basés sur Gradle existants. Les deux versions offrent un format de configuration déclaratif unifié et facile à utiliser.
Fonctionnalités prises en charge :
Création et exécution d'applications JVM, Android, iOS, Linux et macOS.
Création de bibliothèques Kotlin Multiplatform.
Exécution de tests.
Mélange de code Kotlin, Java et Swift.
Assistance au code pour les fichiers de modules dans IntelliJ IDEA et Fleet.
Projets multi-modules.
Utilisation de Compose Multiplateforme.
Utilisation des ressources multiplateformes Compose*.
Interopérabilité Gradle, y compris la combinaison des modules Amper et Gradle dans un seul projet*.
Intégration avec les catalogues de versions Gradle*.
Disposition de projet compatible Gradle pour une migration fluide des projets Gradle existants*.
* uniquement dans les projets basés sur Gradle
Orientations futures :
Prise en charge de davantage de scénarios et de configurations Kotlin et Kotlin Multiplatform.
Plus de types de produits et de plates-formes, tels que watchOS, Windows, etc.
Types de tests spécifiques à la plate-forme, y compris les tests instrumentés Android.
Prise en charge des dépendances natives, telles que CocoaPods, Swift Package Manager.
Conditionnement et publication.
Prise en charge des variantes de construction.
Extensibilité.
Pour un démarrage rapide :
Instructions de configuration et d'utilisation
Tutoriel
Documentation
Exemples de projets
Guide de migration Gradle
Amper utilise YouTrack pour le suivi des problèmes, créez-y un nouveau problème pour signaler des problèmes ou soumettre des idées.
Avant de signaler un problème, veuillez consulter la FAQ.
Vous pouvez également rejoindre la chaîne Slack pour des discussions ou partager vos commentaires à l'aide du formulaire de commentaires.
Il existe plusieurs façons d’essayer Amper :
Dans le dernier IntelliJ IDEA EAP, pour les projets JVM et Android (instructions).
Dans la dernière flotte JetBrains, pour les projets JVM, Android et Multiplatform (instructions).
Utilisation d'Amper autonome à partir de la ligne de commande.
Utilisation d'Amper basé sur Gradle à partir de la ligne de commande pour créer des projets Amper basés sur Gradle.
Voici une JVM très basique "Hello, World!" projet:
Les fichiers main.kt
et MyTest.kt
ne sont que des fichiers Kotlin normaux sans rien de spécial. La partie intéressante est module.yaml
, qui est le fichier de configuration du module Amper. Pour la structure de projet ci-dessus, ce serait simplement :
# Produire un produit d'application JVM : jvm/app
C'est ça. Les chaînes d'outils Kotlin et Java, le framework de test et d'autres fonctionnalités nécessaires sont configurés et disponibles dès la sortie de la boîte. Vous pouvez le créer, l'exécuter, écrire et exécuter des tests, et bien plus encore. Pour des informations plus détaillées, consultez l’exemple complet.
Examinons maintenant un projet Compose Multiplatform avec des applications JVM Android, iOS et de bureau, avec la structure de projet suivante dans Fleet :
Remarquez comment le dossier src/
contient ensemble le code Kotlin et Swift. Cela pourrait bien sûr aussi être Kotlin et Java. Un autre aspect à souligner est le module partagé avec le code commun dans le dossier src
et les dossiers de code spécifiques à la plateforme src@ios
et src@android
(en savoir plus sur la présentation du projet).
Voici à quoi ressemble le fichier ios-app/module.yaml
:
# Produire un produit d'application iOS : ios/app# Dépend du module bibliothèque partagée : dépendances : - ../sharedsettings : # Activer le framework Compose Multiplatform compose : activé
C'est assez simple : il définit une application iOS avec une dépendance sur un module partagé et active le framework Compose Multiplatform. Un exemple plus intéressant serait shared/module.yaml
:
# Produire une bibliothèque partagée pour les plateformes JVM, Android et iOS :produit : type : plateformes lib : [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# Dépendances de composition partagées :dépendances : - $compose.foundation : exporté - $compose.material3 : exporté# Dépendances Android uniquement dependencies@android : # Intégration spécifique à Android avec Compose - androidx.activity:activity-compose:1.7.2 : exporté - androidx.appcompat:appcompat:1.6.1 : # dépendances exportées uniquement sur iOS avec une dépendance sur un CocoaPod (pas encore implémenté)dependencies@ios : - pod : version 'Alamofire' : '~> 2.0.1' paramètres : # Activer la sérialisation Kotlin kotlin : sérialisation : json # Activer le framework Compose Multiplatform compose: activé
Deux ou trois choses méritent d'être mentionnées. Tout d’abord, notez les dépendances spécifiques à la plateforme : sections avec le qualificatif @<platform>
. Le qualificateur de plateforme peut être utilisé à la fois dans le manifeste et dans la présentation du fichier. Le qualificateur organise le code, les dépendances et les paramètres pour une certaine plateforme. Deuxièmement, la section dependencies: autorise non seulement les dépendances Kotlin et Maven, mais également les gestionnaires de packages spécifiques à la plate-forme, tels que CocoaPods, Swift Package Manager et autres.
Naturellement, ces exemples ne montrent qu’un ensemble limité de fonctionnalités d’Amper. Pour en savoir plus sur la conception et les fonctionnalités, consultez la documentation, le didacticiel et les exemples de projets.
Consultez nos exemples de projets :
JVM « Bonjour tout le monde ! » (autonome, basé sur Gradle)
Compose Multiplatform (autonome, basé sur Gradle)
Composez sur iOS (autonome, basé sur Gradle), Android (autonome, basé sur Gradle) et sur ordinateur (autonome, basé sur Gradle)
Modèle d'application Kotlin multiplateforme avec interface utilisateur Compose partagée et interface utilisateur native Android et iOS
Interopérabilité Gradle dans Amper basé sur Gradle
Et d'autres exemples autonomes et basés sur Gradle