Voice to Text for Android Studio
You just finished implementing a complex Jetpack Compose UI. Now you need to explain what it does, write the commit message, or add KDoc for that public API. Your brain is still in Kotlin mode. Switching to typing prose feels like a context switch your brain resists. Blurt lets you speak your documentation, comments, and commit messages directly into Android Studio. Hold a button, say what you need, release. Text appears at your cursor. Your hands stay in position. Your flow stays intact. Works everywhere in Android Studio — Kotlin files, Java classes, XML layouts, Gradle scripts, the terminal, anywhere you can type.
The Typing Problem
Commit messages interrupt your Android development flow
You just spent four hours implementing the new user profile feature with Compose. The code works. Espresso tests pass. Now Git wants a commit message. Your brain is still thinking about recomposition and state hoisting, not summarizing what you built. You stare at the commit dialog trying to context switch. You end up writing 'profile screen updates' because typing a real description feels exhausting.
KDoc comments that never get written
That ViewModel method deserves documentation. You know exactly what parameters it takes, what it returns, and which exceptions it might throw. But after wrestling with lifecycle issues for an hour, typing out KDoc with all the @param and @return tags is the last thing you want to do. Future you will spend another hour figuring out what past-you was thinking. The documentation never gets written because the effort outweighs the discipline.
XML layout comments you keep skipping
Your ConstraintLayout has three different constraint chains doing different things. You understand why right now. In a month, you won't remember which chain handles the loading state versus the error state. A quick XML comment would save future confusion. But you're already moving to the next screen. The notes stay in your head, not in the markup.
Gradle build configuration notes that vanish
You just figured out why that specific version of the Compose compiler is required. It should be documented right there in build.gradle.kts. But the build works now, there's a feature waiting, and typing out the explanation sounds tedious. Next time someone upgrades dependencies, they'll break the build and spend hours figuring out what you already knew. The tribal knowledge disappears.
Jetpack Compose documentation that feels like overhead
You wrote a reusable composable function. It needs documentation explaining what modifiers to pass, how state works, and usage examples. You could explain it verbally in 30 seconds. But typing out the KDoc with all the formatting takes ten minutes. The documentation gets skipped. Other developers guess at how your component works.
How It Works
Blurt works in every context within Android Studio — your Kotlin files, Java classes, XML layouts, Gradle scripts, the terminal, Logcat, and anywhere else you can place a cursor.
Hold your hotkey
Press your chosen shortcut anywhere in Android Studio. A small indicator shows Blurt is listening.
Talk naturally
Say your commit message, code comment, or documentation. Blurt handles punctuation and capitalization.
Release and done
Text appears at your cursor in Android Studio. No extra steps. Keep building your app.
Real Scenarios
Speaking commit messages in version control
You've staged your changes in Android Studio's Git tool window. Instead of typing, hold your hotkey and speak: 'Refactor ProfileViewModel to use StateFlow instead of LiveData. Migrate all observers to collect in lifecycle scope. Add unit tests for profile loading states. Update ProGuard rules for new Kotlin coroutines.' A detailed commit message in 10 seconds instead of 60. Your hands never left the keyboard. Commit, push, and move on.
Dictating KDoc for public Kotlin APIs
You wrote a repository method that other developers will call. Position your cursor above it, hold your hotkey: 'Fetches the user profile from the remote server and caches it locally. Takes a user ID as a string parameter. Returns a Flow of ProfileResult which can be Success with profile data or Error with the exception. Throws IllegalArgumentException if user ID is blank.' Your method now has documentation that appears in quick documentation. 12 seconds instead of 3 minutes of typing KDoc tags.
Adding XML layout comments
Your ConstraintLayout has complex constraint chains. Hold button above the relevant section: 'This horizontal chain distributes the action buttons evenly when all three are visible. The chain style is spread inside to keep buttons away from screen edges. See the visibility toggle in the ViewModel that hides the delete button for non-admin users.' Now when you scroll through the layout, you know exactly what each constraint group does.
Explaining Jetpack Compose state handling
You just implemented a tricky remember pattern with derivedStateOf. Hold your hotkey above the code: 'We use derivedStateOf here because the filtered list only needs to recompute when the search query or the source list changes. Without this, the filter would run on every recomposition of the parent. See performance analysis in the docs folder.' The next developer will understand immediately.
Documenting Gradle build configuration
You finally figured out the right combination of Compose compiler and Kotlin versions. Before you forget, hold button in build.gradle.kts: 'The Compose compiler version must match exactly with this Kotlin version. See the compatibility matrix in the official Compose documentation. Upgrading Kotlin without matching the compiler version will cause cryptic build failures.' Future dependency upgrades will go smoothly.
Logcat investigation notes
You spent an hour debugging why the RecyclerView was recreating view holders on every scroll. Before fixing it, hold button and add a comment: 'The issue was caused by using a non-stable key in the DiffUtil callback. Object hashCode was changing because the data class had a mutable property. Solution is to use the server ID as the stable key instead.' Your debugging journey is preserved for the next person.
Inline comments during code review
You're reviewing a pull request in Android Studio and need to explain why an approach is problematic. Hold button: 'This will cause a memory leak because the Context reference is held in the companion object which outlives the Activity lifecycle. Use applicationContext here instead, or consider dependency injection with the proper scope.' Constructive feedback that teaches, not just critiques.
Why Android Studio developers choose Blurt over built-in dictation
| Blurt | macOS Dictation | |
|---|---|---|
| Activation | Single hotkey, instant start | Double-tap Fn or menu bar click |
| Speed | Text appears in under 500ms | 2-3 second delay before transcription starts |
| Android vocabulary | Handles Kotlin, Compose, Gradle terms accurately | Often misinterprets ViewModel, StateFlow, LaunchedEffect |
| Reliability | Works consistently in all Android Studio panels | Sometimes fails in Logcat or terminal |
| Price | $10/month or $99/year | Free (built into macOS) |
| Free tier | First 1,000 words free | Unlimited but unreliable |
Frequently Asked Questions
Start Typing Faster Today
Free to try — no credit card required
Download Blurt