iPad Pro as Development Machine
arslan.io
arslan.io
> we need to first create a remote workstation which we can start using as our main development machine.
A dumb terminal isn't a development machine. That's like saying "Using my DEC VT100 terminal to develop in Go", let me just hook it up to an actual computer
"To operate properly, packages (apps and programs) must be built for ARM 64-bit and must comply with Android security policy."
Ubuntu: https://www.linuxondex.com/ "Linux on DeX beta is only supported on Galaxy Note9 and Tab S4"
I'm thinking about getting a Tab S4 so I can play with it.
I use C9 which is another web based IDE.. it doesn't have all the power features of a jetbrains ide but it is nifty and should meet the needs of most developers.
Lots of options outside of vi!
In all seriousness, I use (neo)vim as my full-time editor for several very large projects.
i assumed OP is talking about "development" machine implying some code writing.
Edit: OP said he had the latest top of the line. Latest, top of the line has 32.
https://news.ycombinator.com/item?id=18430031
Still doesn't convince me to swap my 8 core ryzen 1700 laptop with 32gb ram and 1.5tb ssd and a RX580 for an ipad pro.
It drives me god damn bonkers that the iPad is such an unbelievably powerful piece of hardware... that is practically unusable due to arbitrary OS limitations. Unusable for certain types of tasks that is.
Le sigh.
I dream of the day when an iPad can dual boot iOS and OSX.
And to be clear: The iPad Pro does not even achieve the level of "dumb terminal": It does not pass control sequences intelligently, so even running remote emacs is not possible without major remappings (and the remappings are so major as to reduce functionality.)
That said, the iPadPro is good for what it's good for. I love having a portable library, and note taking with the pen is kinda nice. It just doesn't achieve the level of development machine for any intelligent definition of the word "development".
Steve Jobs' Post PC world analogy was off in that PCs are the cars, trucks, convertibles etc. and tablets are the scooter. Yes you can do all your grocery shopping on the scooter given the groceries fit, the shop isn't too far away, it's not raining, the mileage will be good etc - you making that one successful grocery trip doesn't mean scooter is a car replacement.
In general, if you don't have the shops close by, a car is more practical.
I suppose enough people use Amazon like this, but they will eventually ban you for abusing their return process.
It's one thing if that user choose to make a wrong choice but they can service it themselves, but it becomes a nightmare story if someone's forced to support that.
The way most people use iPads as 'dev machines' could be just as easily configured using a $199 netbook from Best Buy and a copy of PuTTY. (Or, buying any not-broken laptop from Craigslist for $50 and saving yourself $1100.)
Granted, as a sysadmin, most of my job could be done on an iPad too (SSH, RDP, web browser, and messaging applications), but every few days I need USB, Serial, VGA, or Ethernet (along with manual config of the adapter), among other things.
So, with these iPad there are always caveats: you end up needing to keep a "real computer" around for all the cases the iPad can't cover, which is most of them.
A few days ago there was a discussion about Termux (https://termux.com/) on Android here, and with things like USB OTG and removable storage that are commonly featured in Android, a Kindle Fire tablet (which cost about $50-150, regularly on sale) would be more usable, even, than an iPad.
Except then when not using PuTTY, you aren’t able to use it as an iPad.
But, you've got me on the 'best displays' portion. I think the iPads have 120hz displays? They're amazing and threre's nothing like them. They most certainly are "all that", but despite having the opportunity and the spare cash, I still prefer the trashy, ghosting, dim, low-rez display that I have attached to a real laptop.
a) some IOS-native IDE, i.e. http://continuous.codes/ ?
b) how would android fare in comparison? I.e. I really like termux project, it seems to have much more installable packages than i.e. blink, and it could alleviate the need to run separate session in a separate box over the internet. Similarly, because android is based on linux, there are projects for running linux distros alongside (mostly in chroot?).
I am currently trying to learn Ocaml on my android phone on my way to work with Termux :)
No real benefit over a decent laptop.
[1]http://yieldthought.com/post/12239282034/swapped-my-macbook-...
A friend of mine is a university tutor and complained about students showing up to work with only their phones. A growing-fraction of people are even writing long essays using only google docs on their phone (without even a bluetooth keyboard).
But that's exactly what the current marketing push is all about.
When the first iPad Pro was released, nobody batted an eye because it wasn't pushed as a laptop replacement.
One thing the iPad Pro is really good for is reading documentation. 13”, portrait mode, retina screen, sitting on the couch or in some quiet corner - it’s the bees knees.
I really wish I could have native Emacs on the iPad. It is one of the fastest and lightest machines around, phenomenally lightweight and with a great battery life. It has a pretty good keyboard attachment. And Emacs even without a native shell would work pretty well (using Tramp for editing remote files).
And no, Emacs via a shell is not nearly enough. You can't get enough modifiers through the TTY, so it ends up being crippled. And no, Apple is not likely to reject it, apps with interpreters have been getting in for several years now. And even if Apple were to reject it, there is nothing that prevents people (as in, me, for example) from compiling Emacs myself and loading it onto my iPad (these are common misconceptions, so I'd rather clear them up right away).
I think I might end up funding a bounty, perhaps someone is willing to shave this yak.
i've mainly used the ipad pro as my companion notebook replacement, using the notes app with a pencil. i had hoped by now that all handwritten text would be OCR'ed and searchable, but alas that's been limited to one mode of the notes app so far.
such a promising machine crippled by the indecision of not knowing what it wants to be when it grows up!
I don't imagine ever wanting to give up my laptop for such a development environment but I could see myself using it when traveling to tinker / test out things or maybe making emergency / urgent changes.
I feel like this should be the opening line, not buried in the ending notes.
I am hoping Apple will update the 12" MacBook this year so I can try that out for an ultra-portable dev machine. I like the current model but the CPU options are poor/dated.
Edit: Hitting the little... "world" key is sometimes quite annoying, it pops up some kind of emoji keyboard? Alas.
Why don't you rebind your Caps Lock to Esc? For Windows there's uncap <https://github.com/susam/uncap>; on Linux you can find it in your KDE/Gnome settings or look at the uncap Github page for other methods.
Or if you do use the Caps Lock key frequently, what for?
Also as mentioned in this post the lack of Escape key is frustrating.
Finally the lack of angles for the iPad makes it feel old compared to the Surface Pro and ThinkPad X1 Tablet with their many angle kick stands.
Microsoft's Surface Pro 6 type cover is a far superior keyboard cover than Apple's Folio one. Probably the X1 Tablet one is as well although I have not used it enough to state that for sure.
And drop the price while they are at it. The form factor is enticing but I won't pay that much for it if I can get the Air or Pro for a little bit more.
I used Blink (because of Mosh support), a Digitalocean droplet running docker and Dropbox for syncing local and remote files. Very similar approach to what's been mentioned in this article.
Some of my experiences as a full-stack web developer:
- Front-end development sucks. You can use Coda for iOS but it doesn't help much. What I was missing was Chrome's inspector. You can do some basic DOM manipulation and console logging via apps and firebug but it's not productive.
- Manipulating image assets. I didn't use the official Dropbox client (I think at the time Linux support wasn't very good) I instead opted for a small script written in bash that talked to the Dropbox api. If there was an image that needed manipulating, I would push that image to a folder in Dropbox, which I could then open in Pixelmator in iOS. Pixelmator would update and sync to Dropbox and I'd run the bash script on the server to pull the updated file.
- Browserstack didn't work on mobile Safari. I don't know if it does now but at the time, I couldn't get it working.
- Lack of multi-tasking. Granted, iOS now supports split screen so maybe this isn't a big deal anymore. I'm ok with looking at one app at a time but app switching in iOS was horribly slow.
This was over 2 years ago and things may be better now but overall as a full-stack web dev, I wouldn't recommend it. It was a frustrating experiment.
On the Surface Pro 1 you can forget using the pen input and sometimes the wifi will just disconnect until you reboot. Aside from that Linux will run pretty smoothly.
From what I've read so far I get the impression it works better on the newer models though(SP3 and up).
The surface line was not Linux-friendly at the beginning, then around Ubuntu 17.04, the mainline kernel and the firmware started to give the required support for working daily.
The linux-surface kernel (https://github.com/jakeday/linux-surface) gives extra functionality - mainly the touchpad.
Working Copy is an excellent git client, and combining it with Textastic proved a good workflow. Textastic allows you to add any folder, including a Working Copy repo, as a source in the file browser, so no more swapping files between apps.
Using this, I built my personal portfolio site with Jekyll while commuting on the tube.
Other apps are available: DraftCode provides a full PHP/MySQL stack, I got Django running on Pythonista, found iSh could run Bundler and Jekyll and got a long way towards getting Rails working. Also Processing runs, well, Processing. Play.js does react and Node and Continuous does .NET and C#.
There are also Vim and Emacs apps, though I don’t know how good they are.
What if I want to work in areas of little or rubbish connectivity?
Tools such as docker, etc don't exist just to run things on a remote server.
Code editing, highlighting, syntax checking, and a compiler. The iPad is pretty damn powerful, but Apple just won’t let it off the leash.
I bought the gen 2 pro in 2017, and while it’s a fantastic iPad, it sucks for doing work. I should have just gotten a Mac laptop.
And that disappointment is completely due to software - the hardware is fantastic.
It's generally surprisingly capable for a vast number of tasks, and I love using this in bed/on the couch/outdoors more than a laptop, but iOS remains the biggest hurdle. Too many limitations and quirks, and it's frustrating that you have to wait for a year at a time to receive any major changes.
I even tried brainstorming some coding ideas in Swift Playgrounds, but gods it's terrible for that. You can't even really `print` some simple output without awkward UI fumbling as there doesn't seem to be a "console" window without creating views.
Now I've decided to keep it as a secondary display for my next Mac, which might be a Mini:
1: https://www.macstories.net/ipad-diaries/ipad-diaries-using-a... 2: https://itunes.apple.com/us/app/id499470113?at=10l6nh&ct=ms_...
---
My iPad Pro has been my only computer for nearly a year, and I miss my Windows Machine and VMs. Some things that help me make do:
1. a VPS with a VNC server installed: I connect with Screens and, for example, can use Firefox's Dev tools. Performance could be better (I'm a ways from my VPS), but it's much better than nothing.
2. A Google Pixel 2 (or any Android phone) + a USB-C to USB adapter. This lets me put files on a flash drive, or even write Linux ISOs. I've found that, in a pinch, I can often do on my phone what I would have used my desktop to do.
3. Termux[1] was mentioned here recently, and I installed it, then loaded vim and tmux. SSHing into my phone from my iPad, I have lightning fast (low latency) Linux environment. Have just started using Termux, but for those with similar setups (iOS + Android), it may be worth a look.
4. Exploit the iPad's strengths. LiquidText[2] is, as they say on the site, "Better than paper". It's been revolutionary for reading my PDFs and extracting and connecting and cross-referencing information in them.
In any case I do agree, only 2-1 and laptops are viable propositions for coding on the go.
I agree, but it’s worth pointing out that Tim Cook doesn’t see it that way.
A lot of apps offer seamless syncing which makes using multiple devices really easy. I can throw PDFs on my iPad via Airdrop, annotate them with the Pencil in Notability and see the changes synced immediately back to my Macbook with Notabilitys icloud sync.
The VSCode Docker image recently discussed is a huge next step if the input and scroll were to be fixed.
I used to use the dev version of cloud 9 on my VMs and code in the browser. It worked really, really well. Getting that right for the iPad would be quite exciting.
But that continues to feel like something many years away.
It’s not a mainstream solution, though, and for other kinds of development I’ve found that Jump Desktop and the Citrix X1 mouse (https://taoofmac.com/space/blog/2016/11/06/1930) are a great alternative—I can VNC or RDP to a Remote Desktop via an SSH tunnel and run literally anything (mostly VSCode and Firefox).
Doing fully local development with the likes of Working Copy and Textastic is also quite feasible (at least for back-end stuff), but it’s always a pain to test and compile stuff.
Things are getting better (https://github.com/holzschu/Carnets lets you run Jupyter notebooks locally, which is awesome), but we’re not quite there yet.
Everything else (downloading, tweaking sounds, watching classes, reading on Apple's Feb resources, etc. I do on my Windows laptop. I do have an iPad, but it is as good as a video player/kindle. Perhaps I am just lazy and don't bother to learn how-to-ipad-everytbibg, but a PC will always (imho) be more useful than most other alternative options out there.
"If you are unable to run the tools needed to further create software on the machine itself, then said machine cannot be considered a developer machine."
It was running ArcLinux, node 0.4 (if I remember correctly).
I'm not going to suggest that this was the "future of computing" and I put it away after playing with it for a bit.
I'm not an Apple user and don't have an iPad (pro or other) but I do think we will move away from "pc" needed as your development platform.
At one point we would have said that a notebook wasn't good enough for development, you need a "real pc" (desktop) for development.
With AR/VR we'll move into completely new realms of interfaces for development, I wouldn't rule out a tablet as one of the form factors of the future.
I swapped my MacBook for an iPad+Linode http://yieldthought.com/post/12239282034/swapped-my-macbook-...
iPad + Linode, 1 Year Later http://yieldthought.com/post/31857050698/ipad-linode-1-year-...
I followed his steps and enjoyed this approach much.
I rarely use my phone as a development machine, but when I do, it feels more authentic than using a remote workstation. It heats up because the local CPU is really working. Occasionally I find myself shelling into the phone from my laptop....
[edit, typo]
Pythonista (though I’m not python person) is always great to have especially with the new keyboard. Scriptable is also magical.
With fine iPad native IDEs for Haskell and Python, some local development is possible. In the future with using the USB-C port to dock to monitor and keyboard, then we get a little closer to a “not nope” answer to the author’s question.
Also seems a bit over-engineered, I would just ssh into a server and do everything from there as a normal user.
And they are always using the wrong setup (SSH to remote server with Blink & Mosh). If you want to edit and run code on an iPad (god knows why), use iSh.
It's a userland x86 emulator that will enable you to work offline. It's TestFlight only at the moment, or you can compile it yourself if you have a mac and Xcode.
People who do this kind of thing are like those people who change their linux distro every other month, they are in search of distraction, not productivity.