Configuring R8 For Compose

Configurazione minima di R8/ProGuard per build di rilascio Compose; rifiuta regole keep troppo ampie

di skydoves · skydoves/compose-performance-skills

Promosso ★ 8.4/10

Configuring R8 For Compose — Configurazione minima di R8/ProGuard per build di rilascio Compose; rifiuta regole keep troppo ampie

Cosa fa

Guida alla configurazione della minificazione R8 per una variante di rilascio Jetpack Compose: abilita la modalità completa con proguard-android-optimize.txt, attiva la minificazione e il resource shrinking, e affidati alle regole consumer incluse in Compose invece di aggiungere keep Compose-wide. Si attiva quando si abilita per la prima volta la minificazione, quando una PR aggiunge un keep ampio come `-keep class androidx.compose.** { *; }`, o quando una build di rilascio si blocca dopo lo shrinking. Copre il reporter AGP missing_rules.txt e R8 retrace per diagnosticare i crash di rilascio.

Rapporto di test

SKILL.md recuperato da build/configuring-r8-for-compose/SKILL.md tramite raw GitHub; il frontmatter viene analizzato con name+description, nessun script referenziato nel corpo (autocontenuto), e il suo unico crosslink relativo al repo (measurement/testing-compose-in-release-mode/SKILL.md) restituisce HTTP 200. Nessun problema di sicurezza; i comandi retrace usano la variabile d'ambiente $ANDROID_HOME, non percorsi hardcoded. Per l'output ho scritto una configurazione errata (proguard-android.txt, -keep androidx.compose.**, -keep kotlin.Metadata, -dontobfuscate) e l'ho rivista due volte: la mia baseline ha lasciato proguard-android.txt nella sua raccomandazione finale e ha esitato sui keep ("probabilmente rimuovere a meno che non si verifichi un crash"), mentre la revisione guidata dalla skill è passata a proguard-android-optimize.txt, ha eliminato tutte e tre le righe con motivazione per riga più una stretta sostituzione kotlinx.serialization, e ha aggiunto il flusso di lavoro missing_rules.txt/retrace/APK-analyze che la baseline aveva omesso. La documentazione perde un punto: l'affermazione "proguard-android.txt salta le ottimizzazioni R8" e le cifre 75%/60% sono dichiarate con più fermezza di quanto supportato da un singolo post di Medium citato.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

git clone --depth 1 https://github.com/skydoves/compose-performance-skills.git /tmp/configuring-r8-for-compose-src
mkdir -p ~/.claude/skills
cp -R /tmp/configuring-r8-for-compose-src/build/configuring-r8-for-compose ~/.claude/skills/configuring-r8-for-compose
# Pure-knowledge skill (single SKILL.md, no scripts/deps). No external tool needed to use it.
# Repo also ships scripts/install-skills.sh that symlinks all 26 skills into ~/.claude/skills/ if you want the whole set.

Comandi e prompt di esempio

  • /configuring-r8-for-composeConfigurazione minima di R8/ProGuard per build di rilascio Compose; rifiuta regole keep troppo ampie

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Set up R8 full mode for our Compose app
  • Fix our ProGuard keep rules for Compose
  • Enable resource shrinking without breaking Compose