Ask HN: Coding on an iPad?

9 pointsposted 4 days ago
by tmaly

Item id: 42688305

19 Comments

Jtsummers

4 days ago

Coding as in the act of writing code is easy. There are a handful of editors and a good git client (Working Copy). You can get several terminal emulator apps, but they don't really let you run anything local like most people would want from a terminal, but from them you can access remote systems (Blink gives you access to VS Code for the Web, or whatever it's called).

For running on the iPad, there is the obvious Swift Playgrounds published by Apple, and several apps that give you Python and Jupyter notebook access and execution. I'm not sure about other languages. You'll want a physical keyboard to make effective use of these options.

Replit has an app, last I used it it was kind of awful though, the website worked better. All the code runs on their servers.

Get a terminal app and ssh to a more useful computer, is my advice, if you want to use the iPad as a development device. I found it to be a perfectly good remote terminal device when I was traveling around a lot and didn't want to take a lot of things with me. But I'm very comfortable in the terminal and with emacs.

tmaly

3 days ago

Working Copy is great, I use it to sync my Obsidian notes. Any recommendations for a terminal app that supports ssh?

Jtsummers

2 days ago

I use Blink but they changed their pricing model from one-time purchase (what I got it with) to an annual subscription, so up to you on that one.

I recommend using mosh instead of ssh proper, and Blink supports it as do several others but I haven't used other apps so can't suggest alternatives. When the app goes to the background it will lose its network connection and you have to reconnect. With ssh, reconnecting is manual (and if you use tmux or screen, like I do, this is an annoyance since you don't lose any work). With mosh, it'll automatically reconnect and whether you use tmux (like me) or not is irrelevant, things are still as you left them. This is also useful if you're actually mobile (moving between networks), which I was doing back when I first tried using an iPad for development like this.

gregjor

4 days ago

I use an iPad Pro exclusively for programming, have for a while now. But I use it as a mostly-dumb terminal. Blink shell for ssh/mosh, Github client and Working Copy for git, Textastic for editing locally offline. The Inspect browser for web dev tools.

That means most of the work actually happens on a remote VPS with command line tools, my preferred environment.

I travel constantly and like the iPad for convenience, battery life, and the focus of having one app at a time on the screen.

philomath_mn

4 days ago

I don't think you can do anything serious locally.

IMO, the best option is hosting a VS Code server [0] on a linux box and using Tailscale to connect to it via the browser. At that point you have a real compute environment and a pretty usable IDE.

But the screen and keyboard were too small so I gave it up.

[0] https://github.com/coder/code-server

runjake

3 days ago

You'll have to be more specific if you want useful answers.

Do you want a remote shell to a development environment? Then yes, there are a ton of iPad apps for that (Blink Shell, Termius, etc). There's also the Working Copy app for some level of repo-based development.

greggman7

4 days ago

AFAIK this is still mostly forbidden by Apple

> 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the app completely viewable and editable by the user.

https://developer.apple.com/app-store/review/guidelines/

So except for education you can't code on an iPad.

That said, you could access a website like stackblitz or codepen or codesandbox. No idea how well those run on iPad.

hnlurker22

4 days ago

I thought you can do a SwiftUI project on an iPad using playgrouds, then send the project to your macbook if you want to release from there. I never tried it though.

Jtsummers

4 days ago

https://support.apple.com/guide/playgrounds-ipad/share-a-pla...

You can actually publish from the iPad now. I think that's been an option for 2 years or so.

greggman7

4 days ago

Yes of course, Apple doesn't have to follow it's own rules.

musicale

4 days ago

Well yes, Apple's internal software development teams aren't bound by Apple's standard external developer license.

Though I suppose the EU might eventually insist that external developers gain access to the same APIs that Apple itself can use.

ImJamal

3 days ago

> Though I suppose the EU might eventually insist that external developers gain access to the same APIs that Apple itself can use

Isn't that one of the issues Microsoft had in their monopoly trial?

brudgers

4 days ago

I have an iPad and joined HN about the time the first iPad shipped.

My guess is programming on one is about the same as it has always been:

1. Either a kludge of necessity or an expression lifestyle identification.

2. An uphill fight against Apple’s design discipline for iOS.

3. Doable to some degree if everything is accessed through the web including tooling.

That it is not an obvious mainstream practice suggests that it is little different.

qsort

4 days ago

For anything serious your best bet is using an SSH client like Prompt or Blink, or an RDP client (Microsoft's app is decent).

You might have some luck with something like iSH, but it's pretty janky if you have to do real work.

Juno is a decent workflow for Python/Jupyter and has local execution, but it's far from a complete IDE.

channeleaton

4 days ago

I haven’t gotten too deep on this subject, but I’ve had a good experience with GitHub Codespaces on my iPad. Mostly just use it for quick updates on my site.

ActorNightly

3 days ago

Apple devices suck for coding. Android is way ahead on this.

My "laptop" is my Galaxy S24 phone with a lapdock. Termux and Code-browser work really well.

Tomte

4 days ago

Swift Playgrounds is Apple‘s preferred answer.