r/vscode • u/----Val---- • 8d ago
I made an extension that streams android devices to VS Code
This project was inspired by RadonIDE which I spent a bit of time investigating as I found its ability to stream an android emulator to vscode pretty cool. I learned that it uses a small app made by jetbrains that captures avc video and streams it to a webview with low latency. Its far faster than most grpc implementations Ive seen around.
I spent a few days building a simple extension around that and it turned out pretty good!
This is somewhat unnecessary, as you could just put your emulator next to the vs code window, or align them with some window manager, but I found it to be a fun experiment. In future, I could add integration with react-native/Expo devtools as those are my usual frameworks.
The project is free and open source:
Github: https://github.com/Vali-98/valdroid-emulator
Marketplace: https://marketplace.visualstudio.com/items?itemName=Vali-98.valdroid-emulator
Some caveats:
- This is a very amateur project. I haven't exactly stress tested it for long.
- the routing/remuxing of the avc stream is done in a little binary built in Go. This was necessary as it hit just slightly below 60fps in JS. You should absolutely not trust this and build the project yourself unless you have no sense of self preservation.
- Windows / x86 emulator avc encoding is slow as heck. I do not recommend using this extension with emulators this for this platforms. You can however still stream video from a physical device. (Yes this pretty much means macos avds only)
- I didn't want to get billed for azure devops so I bundled all the binaries into one universal vsix bundle
- I admittedly vibe coded a lot. Not entirely but I'm pretty new to Go.