Amper permet gestionar les llibreries Compose de manera fàcil i flexible.
Introducció
Crea un projecte “JVM GUI Application (Compose Multiplatform) amb Kotlin - Idea.
Si obres el fitxer module.yaml
pots veure que el mòdul està configurat per Compose.
Les dependències $compose.*
es declaren amb una sintaxi especial de referència al catàleg de biblioteques de l’eina Compose.
product: jvm/app
dependencies: - $compose.desktop.currentOs
settings: compose: enabled
Catàlegs de biblioteques
Un catàleg de biblioteques associa claus a coordenades de biblioteques (inclosa la versió) i permet afegir les mateixes biblioteques com a dependències a múltiples mòduls sense haver de repetir les coordenades ni les versions de les biblioteques.
Els catàlegs de la cadena d’eines es defineixen implícitament i contenen biblioteques predefinides relacionades amb la cadena d’eines corresponent. El nom d’un catàleg d’aquest tipus correspon al nom de la cadena d’eines corresponent a la secció de configuració.
Per exemple, les dependències dels frameworks de Compose Multiplatform són accessibles mitjançant el catàleg $compose
: Referència DSL - Compose
Totes les dependències d’aquests catàlegs solen tenir la mateixa versió, que és la versió de la cadena d’eines.
Per utilitzar dependències dels catàlegs, fes servir la sintaxi $<catalog-name>.<key>
en lloc de les coordenades.
dependencies: - org.jetbrains.kotlinx:kotlinx-datetime:0.6.2 # Compose dependencies - $compose.foundation - $compose.material3 - $compose.desktop.currentOs
Hot Reload
Amper és compatible amb Compose Hot Reload, que permet veure canvis de la UI en temps real sense reiniciar l’aplicació. Això millora significativament l’experiència de desenvolupament escurçant el cicle de retroalimentació durant el desenvolupament de la UI.
Configuració
Per habilitar Compose Hot Reload, configura compose.experimental.hotReload
a enabled
:
product: jvm/app # or lib with JVM platform
settings: compose: enabled: true experimental: hotReload: enabled
Quan executes la teva aplicació amb Compose Hot Reload activat:
- Amper descarrega i executa automàticament JetBrains Runtime per maximitzar les capacitats de hot-swap.
- S’adjunta un agent Java per a Compose Hot Reload durant l’execució
- Apareix una petita icona de devtools de Compose Hot Reload al costat de la finestra de l’aplicació, indicant que la funcionalitat està activa.
Integració amb l’IDE
Quan executes la teva aplicació des de l’IDE, pots obtenir recompilació i recàrrega automàtica basada en canvis del sistema de fitxers, utilitzant el plugin Amper per a IntelliJ.
Per configurar-ho, no has de fer res, el plugin detecta automàticament la presència de Compose Hot Reload i activa la funcionalitat.
DevelopmentEntryPoint
També és possible executar composables específics com a mode Compose Hot Reload.
Per fer-ho, has de posar l’anotació @DevelopmentEntryPoint
a la funció composable sense paràmetres.
Apareixerà una icona clicable al marge esquerre del composable:
Limitacions actuals
- Has d’assegurar-te que jvm és una de les plataformes del mòdul.
- Amper no observa el sistema de fitxers, per tant, les recàrregues automàtiques només estan disponibles quan s’utilitza l’IDE.