How good is IDX?

IDX is a Google’s IDE in Web, released less than a year ago as a public beta. It promised Flutter development with iOS and Android emulators built-in, and more features that I’m not particularly interested, partially because they are just basic stuff, and isn’t that interesting. So how good is it? Does it hold up to its promises?

TL;DR, yes, sorta, you can use right now without any major problems, but no iOS

My first attempt, and my second first attempt

In December 2023, I got invited into the private testing after waiting for a few months that felt like years. I was really excited cause it meant that my laptop wouldn’t burn my legs after running android emulator for a nanosecond, and I wouldn’t have to buy a MacBook to run iOS Simulator, and publish to App Store (publishing got solved with Codemagic, not sponsored).

Anyways, with the access I got, I immediately opened Flow, just to get slapped with an error message: “Couldn’t setup your environment due to load yara yara”… So I waited few months, and gave it an another go. This time, it spun up without any problems, but It has a beta version of flutter installed, and at the time, stable was ahead of beta, sometimes they do that. I made some efforts to install the current stable version of Flutter, but changing the nix package config didn’t help at all. Plus, no sign of Android, or iOS emulators, and not much info on the internet about it

My third attempt: Success?

As you can see, it works. It’s a VS Code based editor (or whatever the base project is called), and most of the time it does work as you expect. I wanted to use the iOS emulator, but it got removed due to being unstable. Still, I’m really thrilled about the in-IDE emulator, because it’s a live video feed that passes touch/click events to the emulator, how cool is that?

In a nutshell, it’s code-server with few plugins, and Google spins up a VM for you, so your machine is free of doing the heavy work.

IDX has Gemini built-in in case you’re interested. Not sponsored.

I don’t use it as my main editor due to some problems mentioned below, but I occasionally use it for the emulator.

Should you use it?

Yes, go ahead. Now you can finally code on that iPad, or that old laptop only used for listening to music on YouTube.

Here are some catches tho:

  • Sometimes, it takes little longer to start the VM due to load

  • It’s still in beta

  • Last time I checked, spinning up VMs for everyone is NOT CHEAP, so I don’t expect it to be free (tho Gemini says it’s expected to be free)

List of problems preventing it from becoming my main editor

  1. Keyboard shortcuts collision. Because of it’s a web app, sometimes, your keyboard shortcuts just won’t work, or get bubbled up to the system to handle (even if you install it as a PWA)

    Here’s a very specific problem I’ve encountered, it’s so stupid that it’s funny… When I debug, I use F5 to go to the next checkpoint. After the last checkpoint, if I accidentally click F5 again, the whole page would refresh, and I have to start my debugging session again. This is after I install the PWA. I’m quite certain that it’s matter of event.preventDefault()

  2. No way to sync the personalized environment (basically settings.json and few other stuff of VS Code). Sure, you can personalize it and launch that instance again, and it’d be there, but if you’re gonna create new environment for a different repo, then you’d have to do all of customization again…

  3. It’s a little slow. Not that slow, but it feels like playing CS2 with 200ms latency. I’m located in Mongolia, and they probably don’t have close enough servers as it’s a beta. Still, android emulator is responsive enough, and runs better than what I’d run on my laptop :P

Go try out Flow, and support me if you like it ;)

No AI was involved in writing of this blog.

Thank you for reading until here, I was very sleepy at the time of writing this.

0
Subscribe to my newsletter

Read articles from Batmend Ganbaatar directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Batmend Ganbaatar
Batmend Ganbaatar

An aspiring young software engineer, 10x procrastinator