JetStart gives Android developers a choice. I wanted to make sure you could hot reload your Kotlin Compose UIs exactly how you prefer whether that's directly onto a physical Android device or using a high-performance Android Emulator.
Which one is right for your workflow? Here is how I built both paths to ensure you never have to wait for Gradle again.
The Gold Standard: Physical Device Hot Reload
There is no substitute for feeling an app in your hands. To achieve live, state-preserving speeds on a physical device, I had to develop a custom injection architecture. JetStart intercepts your file edits, runs kotlinc and d8 in the background, and pushes raw DEX bytecode via WebSocket directly to a custom ClassLoader inside your running app.
- Pros: It is the "real" environment. Colors, native Android choreography, and touch latency are 100% accurate.
- Cons: Requires a physical device connected via USB or the same Wi-Fi network.
The Virtual Powerhouse: Android Emulator
If you don't have a device handy, the Android Emulator is the next best thing. I’ve fully integrated AVD (Android Virtual Device) management into the JetStart CLI so you don't even need to open Android Studio.
By running npx jetstart android-emulator, you can create "JetStart-optimized" emulators that are pre-configured for speed. When you run npx jetstart dev --emulator, the CLI automatically detects the running emulator, installs the client, and establishes the hot reload connection for you.
- Pros: No cables required. It stays on your screen alongside your IDE. Supports multiple configurations and API levels.
- Cons: Requires hardware acceleration (VT-x/AMD-V) and can be resource-intensive on older machines.
Experimental Fallback: The Web Emulator
I also included a Web Emulator as a tactical fallback. By running jetstart dev --web, the CLI starts a secondary pipeline that transpiles your Compose code to JavaScript (ES modules) and renders it in the browser.
I consider this experimental. It’s perfect for quick UI scaffolding when you’re working from a laptop in a cafe and can't run a heavy emulator, but it isn't a replacement for a true Android environment.
- Pros: Opens instantly in any browser. No virtualization required.
- Cons: It's an abstraction layer; it won't render complex third-party Android-specific views.
The Verdict
For final polish and performance testing, use a Physical Device. For your day-to-day development loop, the Android Emulator is the perfect companion. If you're on the move and need to save battery or resources, the Web Emulator has your back.
JetStart gives you the freedom to build at the speed of thought, regardless of your hardware setup. Give it a spin and let me know which one you prefer!
Top comments (0)