Stop looking for the "Compile" button in Safari. It isn't there. For years, the tech world has been locked in this weird, binary argument about whether you can actually do real work on a tablet. One side says it’s just a giant Netflix machine. The other side—usually people who spend too much money on Magic Keyboards—insists it’s the future of computing.
The truth about programming on an iPad Pro is messier. It's a mix of brilliant hardware and frustrating software hurdles.
You can't just download VS Code from the App Store and call it a day. Microsoft hasn't released a full native version because of iPadOS's restrictive sandboxing. If you're expecting to just "raw dog" a Python environment directly on the metal without some serious workarounds, you’re going to have a bad time.
But honestly? I’ve been coding on a M4 iPad Pro for months now, and for specific workflows, it’s actually better than my MacBook. It’s about the form factor. There’s something fundamentally different about detaching a screen, sitting in a coffee shop with a tiny footprint, and hammering out TypeScript. It feels lighter. Not just physically, but mentally.
The Local Development Lie
Let’s get this out of the way: iPadOS is not macOS.
✨ Don't miss: A Data Center on Fire: Why Your Cloud Strategy Might Be Up in Smoke
Apple’s "sandbox" is a walled garden with very high spikes on top. On a Mac, an app can generally see other files if you let it. On an iPad, apps are mostly isolated. This makes traditional local development—where you have a compiler, a debugger, and a local server all talking to each other—a total nightmare.
However, we have Swift Playgrounds. If you are building for the Apple ecosystem, Swift Playgrounds 4.0 changed the game. It actually lets you build and submit apps to the App Store directly from the device. No Mac required. It’s limited, sure. You aren't going to build the next Photoshop on it, but for SwiftUI prototypes? It’s lightning fast.
For everyone else, the "local" dream usually dies with apps like iPhon or Carnets. Carnets is actually pretty cool—it’s a standalone Jupyter Notebook app with a local Python distribution. It works. It’s just... clunky. You’ll find yourself fighting the file picker more than the code.
How Pros Actually Do It: The Remote Setup
If you want to do serious programming on an iPad Pro, you have to stop trying to make the iPad do the heavy lifting. You use it as a thin client.
This is where the iPad shines.
Most professional developers I know who use an iPad are actually SSHing into a remote box. You get a $5/month DigitalOcean droplet or a beefy AWS EC2 instance, and you connect via Blink Shell or Termius.
Blink Shell is basically the gold standard here. It uses Mosh (Mobile Shell), which is vital because mobile internet is flaky. If you go into a tunnel or your Wi-Fi blips, Mosh keeps the session alive. You open your iPad, and your cursor is exactly where you left it. No reconnecting. No lag.
- VS Code (Web): You can run
code-serveron your remote machine. You open Safari, point it to your server’s IP, and boom—full VS Code in the browser. - GitHub Codespaces: This is the "lazy" (and expensive) way that just works. GitHub spins up a container for you. It’s seamless.
- Tailscale: This is the secret sauce. It creates a private network (a mesh VPN) between your iPad and your home PC or server. It makes remote development feel like local development.
I’ve spent entire afternoons sitting in a park, connected to a 16-core Linux box at my house via 5G. The iPad isn't doing the compiling; it's just a beautiful 120Hz window into a beast of a machine.
Why the Keyboard Matters More Than the Processor
The M4 chip in the latest iPad Pro is overkill. It’s like putting a Ferrari engine in a golf cart. You will never hit the ceiling of that chip while writing Python scripts.
The real bottleneck is the keyboard.
If you use the Apple Magic Keyboard, you’re golden. But if you’re trying to use a third-party Bluetooth keyboard, watch out for the escape key. Or lack thereof. Coding without a physical escape key is a special kind of hell, especially if you’re a Vim user.
The Web Development Loophole
If you’re a front-end dev, you’re in luck.
Play.js is an incredible IDE for React and Node.js that runs locally. It’s one of the few apps that managed to pack a functional Node runtime into an iPad app. You can npm install packages, run a dev server, and see your changes in real-time.
But there’s a catch.
Browser DevTools. They don't exist on iPad Chrome or Safari in the way you need them. You can't just right-click and "Inspect Element" to fix a CSS grid issue. You have to use "Inspect" via a separate Mac, or use a third-party tool like Eruda or Inspect Browser. It’s a workaround. It’s always a workaround.
Is the 11-inch or 13-inch Better?
This is the big debate.
The 11-inch is the better tablet. It’s portable. It’s great for reading documentation. But for coding? It’s cramped. Split-viewing a terminal and a text editor on an 11-inch screen feels like looking through a mail slot.
The 13-inch (formerly the 12.9) is a canvas. When you use Stage Manager—Apple's attempt at window management—the 13-inch feels like a real workstation. You can have your documentation on the left, your IDE in the middle, and a Slack window floating on the right.
What about the battery?
Don't believe the "10 hours" marketing. If you’re running a high-brightness screen, 5G, and a persistent SSH connection, you’re looking at 5-6 hours. It’s still good, but it won’t last a cross-country flight if you’re grinding out a new feature the whole time.
Real World Use Case: The "On-Call" Savior
Where programming on an iPad Pro truly wins is the "emergency" scenario.
I was at a wedding last year when a production server went down. I didn't have my laptop. I had my iPad in my bag. Within thirty seconds, I was in Blink Shell, I had checked the logs, restarted the service, and was back to eating cake.
You can't do that comfortably on a phone. And lugging a 16-inch MacBook Pro to a wedding is a vibe I'm not ready for. The iPad is the ultimate "just in case" device for engineers.
Software You Actually Need
Forget the "Best Apps of 2024" lists written by people who don't code. Here is the actual stack:
- Blink Shell: The only terminal that matters. It’s open source, though the App Store version costs money. It supports VS Code (via the
codecommand) natively now. - Working Copy: The best Git client on any platform, period. Its developer, Anders Borum, is a wizard. It integrates with the iPad File provider, so other apps can "see" your Git repos.
- Textastic: A solid, no-nonsense code editor. It handles syntax highlighting for almost everything and plays nice with Working Copy.
- Prompt: If you don't like Blink, Panic’s "Prompt" is the polished, beautiful alternative. It doesn't have the "pro" features of Blink, but it's very stable.
- Hyperduck: A tiny tool that lets you send links from your Mac to your iPad (and vice versa) instantly. Great for when you find a Stack Overflow answer on one device and need it on the other.
The Frustration Factor
I have to be honest: there are days I want to throw the iPad out a window.
Sometimes the "Files" app just decides it doesn't want to show a folder. Sometimes Stage Manager gets glitchy and hides your cursor. Sometimes you realize that you can't run Docker locally and you have to spend 20 minutes configuring a remote environment instead of just... coding.
It’s a high-friction setup.
But there is a "flow" state you get into on an iPad that I can't replicate on a Mac. Because you can only do a few things at once, you tend to focus more. You aren't tab-switching between 40 Chrome tabs and three Electron apps. You’re just... in the code.
Actionable Steps to Get Started
If you want to try this, don't go buy a $1,500 tablet today. Start with what you have, but if you're serious, follow this path:
- Setup a VPS first: Get a cheap Linux server on Hetzner or Linode. Install your favorite tools. Get used to working in the terminal using
tmuxorscreen. If you can't work in a terminal, you won't like the iPad. - Master a CLI editor: Whether it’s Vim, Neovim, or Emacs, you need to be comfortable without a mouse. iPadOS touch targets in a terminal are tiny. Keyboard shortcuts are your lifeblood.
- Invest in the Magic Keyboard: Don't settle for the folio. You need the trackpad. Trying to code on an iPad by touching the screen to move a cursor is a recipe for carpal tunnel.
- Learn the Shortcuts: Command+Tab, Command+Space, and the specific Stage Manager shortcuts are mandatory. If you’re hunting through the dock every time you want to switch apps, you’ll give up in an hour.
The iPad Pro isn't a laptop replacement for everyone. It’s a laptop replacement for the person who is willing to adapt their workflow to the constraints of the device. If you can embrace the remote-first lifestyle, it's the most liberating way to write software. If you need local SQL databases and Docker containers running under your thumb, stay on macOS. For now.