5 ms·
Coding on iPad using self-hosted VSCode, Caddy, and code-server
- laweijfmvo 2y agoSetting up a github Codespace allows you to use VSCode inside a browser, and in my limited testing, it worked OK. Wouldn't want to use it full time, though.
- deleted 2y ago[deleted]
- bee_rider 2y agoCoding on an iPad is pretty nice. They have, IIRC, the better 4:3 aspect ratio. Much less awkward than a typical 16:9 laptop in portrait mode. VSCode, I dunno. It is nice to be accessible. It seems like a poor replacement for tmux+vim, which runs happily over bog standard ssh.
- tarsiel 2y agoAny recommendations for an iPad SSH client?
- sebazzz 2y agoShelly works quite well.
- g8oz 2y agoSecure Shellfish
- bee_rider 2y agoI liked blink shell and panic prompt. In particular blink shell seemed very Linux-familiar. I switched back to a laptop a bit ago, though (iPad+ssh was a pandemic era fix that ended up surprisingly nice, but I can’t bring my desktop to do ssh over lan, if I want to go to a cafe or something). I do miss the aspect ratio though.
- znpy 2y agoI’m liking shelly, its putty underneath and you can buy it just once, unlike some other app that wants a $10/month subscription
- kbouck 2y agoa-shell is another good option
- setopt 2y agoLaTerminal is pretty cool, AFAIK the only iPad terminal that supports images (via either libsixel or the iTerm2 image protocol).
- dunham 2y ago"secure shellfish" has some support for images, movies, etc. I'm not sure what they're using for transfer. If you ask it to, it installs ".shellfishrc" which adds a "quicklook" shell command. It also has some integration with the "files" app to transfer files in and out of your shell session. Edit: and I've got a cron job checking on a web site that will send a notification if has changed to my watch via the secure shellfish "notify" command.
- mbreese 2y agoFor iOS I’ve been using iSH. It’s on GitHub (and the AppStore) and is an Alpine Linux shell for iOS. It provides no creature comforts for managing SSH connections, but does drop you into a pretty standard Linux shell. I believe it’s a stock Alpine install. iSH is an interesting project in and of itself, but in this context, you can also install a standard openssh client. This is usually as much support as I need on my phone or iPad to connect to a remote server. https://github.com/ish-app/ish https://github.com/ish-app/ish
- bee_rider 2y agoish looks quite good. I was using blink shell, until they switched and I didn’t notice in time to get grandfathered in. But I’m beginning to wonder if ish would have been a better pick in the first place (although, I don’t have a use for ssh on iOS beyond what Panic Prompt provides anymore, anyway).
- freedomben 2y agotmux+vim is the most underrated productivity tool I can think of. There's a learning curve for sure, but I'm immensely glad I invested the time to get in. It's paid off many times over for me.
- tempoponet 2y ago> Much less awkward than a typical 16:9 laptop in portrait mode. A laptop in portrait mode _is_ quite awkward. Did you mean to say landscape, or are there people out there propping their laptops up on their sides?
- bee_rider 2y agoNo, I meant portrait mode, but I shouldn’t have used the word “typical.” I got a convertible 2-in-1 laptop (in 16:9) after the iPad experience, figuring it would be similar. It really surprised me, after using the iPad, how much I dislike the laptop in portrait mode. Good point, though, a totally typical (aka not convertible) laptop would be more or less impossible to use in portrait mode. Sorry for the confusion.
- dunham 2y agoYeah, I don't usually use vim for coding, but tmux+vim is my weapon of choice on iPhone. I don't think I could manage vscode or emacs without a proper keyboard. I've gotten usable sessions doing Lean or Agda programming that way and they rely heavily on unicode input (handle by vim) and interaction with language servers. But I still prefer an actual keyboard and larger screen for anything serious. I'm using "shellfish" for ssh connections. And I use "working copy" by the same author for browsing source code on the go.
- bee_rider 2y agoiPhones will happily pair with Bluetooth keyboards, Apple’s Magic Keyboard is pretty good IMO, if you can bear a short key travel (and even then, it is a nice crisp short travel key).
- layer8 2y agoNote for anyone reading that 4:3 is only the 13” model (which is better for that use case anyway), not the 11” one which is more 3:2.
- xnyan 2y agoThis is ultimately why I returned my M4 iPad pro. Amazing hardware that's so limited by restrictive policy that it amounts to little more than a fancy dumb terminal.
- bilsbie 2y agoI’m looking for a tablet coding solution. I’ve just been hating siting at a desk for any period of time. I can’t figure out what it is about a desk. Maybe it’s an adhd thing?
- freedomben 2y agoThis happens to me periodically as well. I can't explain it, but all the sudden I just hate being at my desk and/or in my office. Luckily I don't use an IDE (just Vim) so my solution has been to take my laptop to different places, sometimes around the house and sometimes outside. A coworking space a couple days a week seems to help a lot too.
- shreddit 2y agoWhat’s wrong with a laptop, imho the more ergonomic solution…
- znpy 2y agoThe ipad does things most laptops won’t do. I particularly like goodnotes, for example. And the ipad is pretty light… if i could use a proper terminal (with all the keys working, including F1-F12) i might ditch my laptop… i messed a bit with remote desktop via rdp and it’s quite usable - worked okay when i tried it on a bus driving on a highway at ~110 km/h over a 4g connection). So yeah i could still access a full linux desktop either via ssh (shelly) or via rdp (via the Microsoft rdp client)
- kbouck 2y ago(this comment is about using ipad as a general computer, rather than purely coding) if you're like me and continually open new apps and browser tabs, never closing them, then one benefit of using iPad versus mac is the OS process lifecycle. iPad/iOS processes that are not in focus go into background/suspended state, and don't make your ipad slower and slower - whereas on mac you need to be a bit more disciplined, or else ...
- al_borland 2y ago
- abusaidm 2y agoSince VSCode can be installed as a PWA on chrome, is it installable on iPad as a PWA app to use from the desktop and avoid pressing back to a webpage? Also interested how it handles when network is lagging. Is the input laggy or does it smooth on the client and it syncs once network stable things sync?
- VikingCoder 2y agoRunning it as a PWA is a fun idea, but... "Terminals are not available in the web editor. Continue in an environment that can run code, like a codespace or VS Code Desktop." Which makes me want to integrate it with a Linux in the Browser...? https://geekflare.com/run-linux-from-a-web-browser/ https://geekflare.com/run-linux-from-a-web-browser/
- throwaway48540 2y agoYou can use a terminal if the backend is something like coder-server or openvscode-server
- mbreese 2y agoThere is a iOS app that acts as a client to specifically connect to code-server instances. It removes the chrome from the web browser and makes things like copy/paste easier. IIRC, it was much more pleasant than the PWA version (but it’s been a while since I meaningfully used it). Serveditor is the one I’m thinking of. Not sure if it is still around or not. There were paid plans for them to host your backend, or it was free if you had your own server.
- laweijfmvo 2y ago> There are a few caveats to coding on an iPad. Well, thanks for being specific...
- parallaxapps 2y agoIf you want to develop on an iPad, we're building WebForge IDE: a web IDE for iOS. Rich text editor, run PHP and NodeJS on device, manage Git repos, and view your projects in a built-in browser that includes dev tools. Check it out! https://apps.apple.com/us/app/webforge-ide/id6450872424 https://apps.apple.com/us/app/webforge-ide/id6450872424 EDIT: Web Development IDE, not web-based IDE. Thanks for pointing that out! :)
- ink404 2y agoThe Replit app with an external keyboard connected also works well.
- layer8 2y agoIt’s confusing to call an app a web IDE, which usually denotes a web-based IDE you use in a web browser, not a locally running IDE for web development.
- p4bl0 2y agoI guess it's a web IDE in the sense that it is an IDE made for web development rather than a more general IDE (see supported languages for example).
- parallaxapps 2y agoYes, web development IDE is what we're getting at. We first built Inspect Browser, an iOS web browser with built-in dev tools, and figured an IDE for web development with Inspect Browser embedded would be a good next step. Now, getting PHP and NodeJS to run on device was quite the ordeal...
- layer8 2y agoYes, and it’s confusing to call that a “web IDE”, it’s not how that term is normally used and understood.
- parallaxapps 2y agoGood point! - web development IDE would be clearer
- deleted 2y ago[deleted]
- minkles 2y agoSo basically you're not doing all the coding on the iPad.
- hiatus 2y agoKind of a tangent but my biggest blocker to adopting an iPad workflow is the lack of support for a customizable keyboard layout. Does anyone know any app or something that allows this or non-canonical layouts impossible on iPad?
- znpy 2y agoF keys don’t work either, even with a Bluetooth keyboard. Apple has intentionally dumbes down the iPad. It’s sad… Edit: F keys as in F1-F12
- al_borland 2y agoI don’t see it as being intentionally dumbed down, more that it never got those features in the first place. iPadOS was born out of iOS. Why would iOS build support for F keys? F keys themselves are a hold over from quite a while ago. Apple tied to repurpose that space on the laptop with the old Intel MacBook Pros. When building a new OS, with a new software keyboard without F keys, why would they spend time developing around something that didn’t exist? When adding keyboard support, why would they add support for keys that don’t exist on the software keyboard? I can see where that would be low on the priority list. I don’t think anyone at Apple had F keys working, then actively deleted the code to handle it while laughing maniacally.
- mokanfar 2y agoI too, am heavily invested in my keyboard shortcuts. Goku + Karabiner gives me the luxury of toggling between apps and doing repetitive actions without moving my hands away from home row. I really want to switch but this missing feature is a dealbreaker for me.
- transpute 2y agoWhat do you want to change? Modifier keys (Caps, Ctrl, Opt, Cmd, Globe) on Magic Keyboard can be remapped in Settings. SecureShellfish (ssh client) has a keyboard bar, support for Function keys.
- 2y ago
- vsuperpower2021 2y agoI always wondered what would happen when the ipad kids grew up. Can't say I expected them to start trying to use it to program.
- tfryman 2y agoI started on a TI-83 Plus with a program that helped factor quadratic equations. Before I knew it I was making games on it. What I would have gave to have had an iPad with all that RAM!
- layer8 2y agoKids in the 80s and 90s used to do that on their home computers (otherwise mostly used for gaming) where that was built-in and straightforward, when they were so inclined. On iPads, it’s not built-in and anything but straightforward.
- jsheard 2y agoIt's a sad state of affairs that the iPads are so incredibly powerful, with the exact same silicon as MacBooks, and yet to do real development work on one you have to reduce it to the worlds most expensive thin client connected to a real computer somewhere else.
- thomasingalls 2y ago> thin client I sometimes wonder if the ipad was made just for this pun to eventually become reality.
- layer8 2y agoNot to mention being the world’s thinnest thin client.
- p4bl0 2y agoEven Chromebooks, which are actually supposed to be thin clients and which are quite locked up compared to a "normal" laptop with a standard OS (Linux, Windows, macOS), are way more capable devices for development work (among other things, being able to offer an actual Linux environment [1]), while being far less expensive than an iPad. [1] https://support.google.com/chromebook/answer/9145439 https://support.google.com/chromebook/answer/9145439
- jsheard 2y agoIt got me wondering why they don't do something akin to Microsoft's WSL which lets you run a persistent Linux VM in the background, but of course that would loosen Apples grip over the software ecosystem by letting users run arbitrary code from outside of the App Store. Heaven forbid people start making local Linux apps which spawn a web UI accessible through Safari. That's also why they will probably never do an iPad "Pro Mode" which boots into full blown macOS.
- tonymet 2y agoit would be great to cmd-alt-9 on an Ipad and open up a virtual terminal that is running directly on darwin, allowing any shell or homebrew app. it would go a long way.
- chadsix 2y agoYou can also do this with 1-click and no effort using Cloud Seeder [1] [1] https://github.com/ipv6rslimited/cloudseeder https://github.com/ipv6rslimited/cloudseeder </shameless>
- napkin 2y agoI’ve been maining an M4 iPad Pro for a few months now since frying my laptop (which ran Linux) while travelling. There’s a lot to love about it. Sadly, one discovers dozens of minor bugs and annoyances, that are mostly specific to doing productivity/dev work. For example, when I use Cmd-Tab to switch tasks, there’s a ~ 1/20 chance that the Cmd key will become ‘soft-stuck’. That is, I’ll start typing and the OS will act as if I’m holding down Cmd, often messing with my browser or active project. I have to tap Cmd again to ‘unstick’ it. It’s not a hardware issue- An Apple store has already replaced the keyboard for me, and the problem persists. I guess no one at Apple dogfoods the iPad for productivity? Which is sad, because here this thing is! It exists! Productivity features have been at least added to iOS! On the plus-side, I’m getting deep into doing sound synthesis / music production in iOS. The ecosystem is kind of exciting. I spend most of my time inside Audulus (Max/PD-like data flow/DSP) - it is criminally underrated, and so much fun. I could really go on about the pros and cons but will refrain. It’s just such a mixed bag.
- geniium 2y agoEvery now and then I see post like this. Am still surprised there isn’t a solution to make the iPad a real dev machine. Apple must really not want us to do this.
- tonymet 2y agoApple is in a pickle because of background app restrictions. On Android, OEMs and App developers play tricks to hack those restrictions and you end up with awful user experience and poor battery life. If apple loosens background restrictions to allow for IDEs, compilers, terminals and any app that needs to keep a socket or child process alive -- an entire league of background battery-killers will hit the app store This is a case of Apple discipline in favor of the iPad platform.
- geniium 2y agoOh yeah that's a good point I forgot. They have always been very protective of the "user experience" - battery life beeing a big topic there.
- sumuyuda 2y agoThe apple silicon laptops get pretty close to all day battery life with real multitasking. I guess the iPad has a smaller battery, but I would be interested to see how long running macOS on an iPad would last. Apple could even support switching the iPad into a desktop mode, which would be real macOS. Could be similar to how the Steam Deck switches to KDE. I suspect the real reason is Apple wants the iPad to remain a consumption device so they can sell you more than one device.
- tonymet 2y agoI've attempted this with various terminal emulator / SSH apps, Cloud-9 (now part of AWS, VS Code The major issue is that apps & tabs are evicted unexpectedly. Any time you content switch, the app has a chance to be killed. Of course there are mobile terminals , tmux and other tools to mitigate it, but it's still a major pain. If I'm going ultra-light, I carry a raspberry pi + bt keyboard . Otherwise a laptop is preferred.
- transpute 2y agoThis can be mitigated with screen/tmux and an ssh client with reattach on connect.
- tonymet 2y agothat's what I meant with tmux & mobile shell/mosh but it's still unpleasant. The reconnect latency is a productivity killer. It turns out that keeping your app state in ram is very useful.
- westurner 2y agoIs it ergonomic to code on a tablet without bci? https://vscode.dev https://vscode.dev can connect to a remote vscode instance in a container e.g. over Remote Tunnels ; but browsers trap so many keyboard shortcuts. Which container with code-server to run to connect to from vscode client? You can specify a development container that contains code-server with devcontainer.json. vscode, Codespaces and these tools support devcontainer.json, too: coder/envbuilder: https://github.com/coder/envbuilder https://github.com/coder/envbuilder loft-sh/devpod: https://github.com/loft-sh/devpod https://github.com/loft-sh/devpod lapce/lapdev: https://github.com/lapce/lapdev https://github.com/lapce/lapdev JupyterHub and BinderHub can spawn containers that also run code-server. Though repo2docker and REES don't yet support devcontainer.json, they do support bringing your own Dockerfile.
- westurner 2y ago> but browsers trap so many keyboard shortcuts. As a result, unfortunately the F1 keyboard shortcut calls browser help not vscode help. Aren't there browser-based RDP apps that don't mangle all of the shortcuts, or does it have to be fulscreen in a browser to support a VM-like escape sequence to return keyboard input to the host?
- caeril 2y agoWow, that's a lot of work when you could just ssh in from Blink or Termius and launch neovim, like someone sane would do. What is the actual use-case of this?
- baseball12swag 2y ago[dead]
- baseball12swag 2y ago[dead]