Skip to content

Releases: AndroidPoet/compose-guard

ComposeGuard v1.1.0

25 Dec 04:25

Choose a tag to compare

ComposeGuard v1.1.0

1.1.0

  • 5 New Performance Rules: Advanced static analysis for recomposition issues

  • UnstableLambdaCaptureRule: Detects lambdas capturing var declarations

  • ObjectCreationInCompositionRule: Detects object instantiation without remember {}

  • WideRecompositionScopeRule: Detects state reads at top of large composables

  • DeferStateReadsRule: Suggests lambda-based modifiers for animations

  • FrequentRecompositionRule: Suggests lifecycle-aware state collection

  • New Quick Fixes: Wrap in Column/Row/Box, UseGraphicsLayerFix, AddStableAnnotationFix

  • Total rules increased from 36 to 39

ComposeGuard v1.0.9

15 Dec 16:08

Choose a tag to compare

ComposeGuard v1.0.9

1.0.9

  • State/Callback Pairing: ReorderParametersFix now keeps state/callback pairs together (e.g., value/onValueChange, checked/onCheckedChange)

  • Improved Parameter Ordering: Smart pairing for common patterns like text/onTextChange, query/onQueryChange, selected/onSelectedChange

ComposeGuard v1.0.8

15 Dec 09:42

Choose a tag to compare

ComposeGuard v1.0.8

1.0.8

  • Rule Enable/Disable Bug Fix: Fixed critical issue with rule enable/disable functionality

  • Restructured Settings Architecture: Improved enable/disable state management for individual rules

  • Settings Persistence Fix: Rule states are now correctly saved and restored across IDE restarts

ComposeGuard v1.0.7

15 Dec 09:01

Choose a tag to compare

ComposeGuard v1.0.7

1.0.7

  • All Rules Enabled by Default: All rules including experimental are now enabled out of the box

  • Simplified Settings UX: Completely redesigned settings panel

  • All checkboxes are now always interactive (no more grayed-out states)
  • "Enable All Rules" master switch to select/deselect all rules at once
  • Category checkboxes act as "select all/none" for rules in that category
  • Parent checkbox states automatically derived from child selections
  • Standard IDE settings pattern (like IntelliJ inspections panel)
  • Fixed Critical Settings Bug: Disabling one rule no longer disables ALL rules

  • Hierarchical Rule Control: Proper Master → Category → Rule hierarchy

  • Fixed Rule Category Mismatch: LambdaParameterInEffect moved to correct STATE category

  • Comprehensive Test Coverage: 45+ new tests for settings and enable/disable functionality

ComposeGuard v1.0.6

14 Dec 07:16

Choose a tag to compare

ComposeGuard v1.0.6

1.0.6

  • Statistics Dashboard: New tool window with violation analytics by category, file, and rule

  • Parameter Ordering Fix: Fixed modifier position to follow official Jetpack Compose guidelines

  • Modifier is now correctly enforced as the FIRST optional parameter (not last)
  • Order: required → modifier (first optional) → other optionals → content lambda
  • Updated ReorderParametersFix quick fix to use correct ordering
  • Suppress Built-in Compose Inspections: Automatically hides Android Studio's built-in Compose lint warnings when ComposeGuard handles them

  • New setting: "Suppress built-in Compose inspections" in Settings → Tools → ComposeGuard
  • Comprehensive Test Coverage: Added tests for all 36 rules

  • New test files for Modifier, Naming, State, Composable, Stricter, Effects, and Performance categories
  • Added EventParameterNaming rule with past tense detection
  • Improved settings UI with category toggles

ComposeGuard v1.0.5

10 Dec 15:37

Choose a tag to compare

ComposeGuard v1.0.5

1.0.5

  • Fixed Suppress action not working for ModifierRequired, MultipleContentEmitters, ParameterOrdering rules
  • SuppressComposeRuleFix now correctly handles name identifier elements
  • Added AddLambdaAsEffectKeyFix and UseRememberUpdatedStateFix quick fixes
  • Improved ModifierReuseRule, ParameterOrderingRule, and LambdaParameterInEffectRule

ComposeGuard v1.0.4

10 Dec 13:55

Choose a tag to compare

ComposeGuard v1.0.4

Real-time detection of Compose best practices and rule violations in Android Studio.

What's New

1.0.4

  • Fixed Suppress action not working for ModifierRequired, MultipleContentEmitters, ParameterOrdering rules
  • SuppressComposeRuleFix now correctly handles name identifier elements
  • Added AddLambdaAsEffectKeyFix and UseRememberUpdatedStateFix quick fixes
  • Improved ModifierReuseRule, ParameterOrderingRule, and LambdaParameterInEffectRule

Installation

From JetBrains Marketplace (Recommended)

  1. In Android Studio: Settings → Plugins → Marketplace
  2. Search for "ComposeGuard"
  3. Click Install

Manual Installation

  1. Download the .zip file from this release
  2. In Android Studio: Settings → Plugins → ⚙️ → Install Plugin from Disk
  3. Select the downloaded .zip file
  4. Restart Android Studio

Features

  • 🔍 32 Compose Rules: Naming, modifiers, state, parameters, effects, and more
  • Real-time Highlighting: See violations as you type
  • 🎯 Gutter Icons: Visual indicators for composable rule status
  • 💡 Quick Fixes: One-click fixes shown directly in popup
  • ⚙️ Settings UI: Enable/disable individual rules (Settings → Tools → ComposeGuard)

Based on Compose Rules documentation.

1.1.3

10 Dec 08:54

Choose a tag to compare

Here’s a clean, polished, GitHub-ready release notes version of your text:


✨ ComposeGuard 1.0.3 — Initial Release

ComposeGuard brings real-time Jetpack Compose linting inside Android Studio, helping you write clean, stable, and production-ready Compose UI with zero friction.

🚀 Highlights

  • 32 Compose Rules across naming, modifiers, state, parameters, effects, and composable structure
  • Real-time detection as you type
  • Gutter icons showing rule violation status
  • Inline hints for parameter-level issues
  • Quick Fixes for common violations
  • Full suppression support (@Suppress + //noinspection)
  • Supports Android Studio from Ladybug (2024.2)Narwhal (2025.3)

🧩 Rule Categories

🔤 Naming Rules

  • Composable naming
  • Modifier naming
  • CompositionLocal naming
  • Preview naming
  • Annotation naming conventions

🎛️ Modifier Rules

  • Required modifiers
  • Default modifier values
  • Modifier ordering
  • Modifier reuse
  • Topmost modifier placement
  • Avoiding composed misuse

📦 State Rules

  • Proper remember usage
  • Type-specific state rules
  • State hoisting
  • Avoiding mutable parameters

⚙️ Parameter Rules

  • Parameter ordering
  • Trailing lambda rules
  • Multiple content slot restrictions
  • ViewModel forwarding rules

🧱 Composable Structure Rules

  • Content emission
  • Preview visibility
  • Effect key correctness
  • Lambda parameters inside effects
  • Content slot reuse

🚫 Stricter Rules

  • Blocking Material 2 usage
  • Detecting unstable collections

📝 Suppression Support

  • Full support for @Suppress("ComposeGuardRule")
  • IntelliJ-style // noinspection ComposeGuardRule

If you'd like, I can also generate a CHANGELOG.md section, tag description, or a GitHub release banner text.