Compose HotSwanCompose HotSwan

Android Hot Reload
for Jetpack Compose

Instant Compose UI changes on your running Android app with state preserved.
No rebuilds, no relaunching, no navigating back to the same screen again and again, right from Android Studio.

Skip the slow Live Edit. Test your UI on a real device, instantly, run @Preview in ~1 second, and take snapshots.

How It Works

Hot reload for Android, right from your IDE. No rebuild, no restart.

Save File
.kt / .xml
Compile
Incremental Kotlin + D8
Extract
Changed classes only
Swap
Replace classes in memory
Recompose
Scope-based UI update

What You Can Reload

Not just composables. Hot reload any Kotlin function, theme value, or resource. Updates in seconds in your real Android devices.

Composable UI Changes

Change modifiers, text, colors, and layout. The UI updates in place.

Before
@Composable
fun Greeting() {
    Text(
        text = "Hello",
        color = Color.Gray,
        fontSize = 16.sp
    )
}
After
@Composable
fun Greeting() {
    Text(
        text = "Hello, World!",
        color = Color.Blue,
        fontSize = 24.sp
    )
}

Tweak Modifier Parameters

Adjust layout modifiers like size, padding, and animations on the fly.

Before
@Composable
fun ContentPanel() {
    Box(
        modifier = Modifier
            .fillMaxWidth()
            .animateContentSize()
            .height(200.dp)
    ) {
        // content
    }
}
After
@Composable
fun ContentPanel() {
    Box(
        modifier = Modifier
            .fillMaxWidth()
            .animateContentSize()
            .height(300.dp)
    ) {
        // content
    }
}

Adding a New Composable

Add a new composable function and call it from the same file. No rebuild needed.

Before
@Composable
fun Profile() {
    Avatar(user)
    UserName(user)
}
After
@Composable
fun Profile() {
    Avatar(user)
    UserName(user)
    Bio(user)
}

@Composable
private fun Bio(user: User) {
    Text(text = user.bio)
}

Composable Reordering

Reorder composable calls and see the layout update instantly without losing state.

Before
@Composable
fun Profile() {
    Avatar(user)
    UserName(user)
    Bio(user)
}
After
@Composable
fun Profile() {
    UserName(user)
    Bio(user)
    Avatar(user)
}

Resource Changes

Update strings, colors, and dimensions in XML resources.

Before
<resources>
    <string name="app_name">My App</string>
    <string name="welcome">Welcome</string>
</resources>
After
<resources>
    <string name="app_name">My New App</string>
    <string name="welcome">Hello there!</string>
</resources>

UI States Get Preserved

Your app state survives every hot reload.
No more navigating back to the screen you were working on.

Navigation back stack
Scroll position
remember{} state
rememberSaveable{} state
ViewModel instances
SavedInstanceState
Lazy layout items
Dialog & bottom sheet state

Fast Preview Runner

Run @Preview composables on a real device in under 0.5 seconds.
No full rebuild, no waiting. Just click the HotSwan icon and see results instantly.
Isolate a single composable and get faster, more precise hot reload without navigating through your full app.

One-Click Preview

Click the HotSwan icon next to any @Preview function. The composable renders on-device in under half a second, isolated from the rest of the app.

Zero Rebuild

Uses the same hot reload pipeline. No full build, no Gradle sync. Change a parameter, save, and the preview updates on device instantly.

HTML Preview Catalog

Generate a browsable HTML catalog of all @Preview functions across your project with a single Gradle task. Search, filter by module, and inspect parameters.

Visual Snapshot

Capture device screenshots on every hot reload automatically.
Browse visual history, time-travel through code changes, and share design reports with your team.

Auto Screenshot

Every hot reload automatically captures a device screenshot and pairs it with the code diff. Browse your entire UI editing history as a chronological visual strip.

Code Time Traveling

Revert your source code to any previous snapshot with a single click. The device UI updates instantly via hot reload. Full IDE undo support lets you jump back to your latest code anytime.

Design Bridge

Export your snapshot history as a shareable visual report with screenshots, metadata, and code diffs. Bridge the gap between development and design by giving your team the full visual context.

Pixel-Perfect Design Collaboration

Fine-tune your UI to match design specs down to the pixel. Adjust colors, spacing, and typography with hot reload, then instantly verify the result on a real device. Use sliders and overlays to compare your implementation against the design mockup and close the gap between what designers envision and what ships.

No more back-and-forth screenshots over Slack. Export a visual diff report and let your design team review every change in context, with before-and-after screenshots and the exact code that produced them.

Try Design Bridge Report

Join the Community

Get help, share feedback, and connect with other Android developers using Compose HotSwan.

Join Discord