Hacker News new | past | comments | ask | show | jobs | submit login
Working on an iPad Pro as my main computer (typicalprogrammer.com)
152 points by gregjor on April 3, 2018 | hide | past | favorite | 186 comments



The author seems to be SSHing most of the time, so it’s more accurate to say that he’s using an iPad Pro as his primary terminal rather than as his primary computer.


Right!

Does anyone here who develops on iPad use any of the of the Vim apps, e.g. iVim? [0]

  > iVim was inspired by and based on 3 projects:
  >
  > vim - the official Vim repository
  >
  > Vim port from Applidium
  >
  > VimIOS - A port of Vim to iOS 9+
  >
  > Without them, iVim wouldn't begin.
[0] https://github.com/terrychou/iVim


I do, but it's useful mostly with the addition of shell utilities from Nicolas Holzschuch's fork [https://github.com/holzschu/iVim]. At the moment, this still requires sideloading (with a paid Apple Dev account). I mostly use it for LaTeX editing; the whole setup is outlined here: https://michaelgoerz.net/notes/editing-latex-on-the-ipad-wit...


> In principle, this works with a free developer account. However, the resulting installation of iVim on your iPad will only run for seven days. For this to be actually useful, you will have to pay the 100 dollar yearly membership fee.

Thank you for posting this. I often get the "grass is greener" feeling and an urge to check out swift but this tells me I shouldn't bother. Sigh.


I don't understand this attitude.

I can think of a litany of things in the past 12 months I've spend $100 or more on that I probably shouldn't have.


In principle, yes, but for some reason it really bothered me to have to give Apple $100 just to install some open source software on my iPad. I’d much rather have given that money to Nicolas who spent immeasurable effort trying to work around Apples silly restrictions to get a working shell environment onto iOS. Apple are the last people that deserve to get the money for this! It’s the moral issue, not whether spending $100 is a financial burden.


Just because you are spening less strictly doesn't mean everyone does, and in turn it doesn't weaken their argument.


I believe sideloading is now free (as you indicate, this was not always so), but must be repeated each week:

https://www.google.com/amp/s/9to5mac.com/2016/03/27/how-to-c...


Not really. Apps that are signed with a free account expire after 7 days, which makes the free side loading pretty much useless. With a paid account, they work indefinitely.


Do they work after the 1st year expires?


Maybe not, I haven't tried that yet. But yeah "indefinitely" was probably not the right word. It might very well depend on some certificate with some expiration date. But it's very manageable.


“My work time breaks down like this, on average:

50% communicating with clients, translating their requirements into actionable, incremental tasks, researching solutions.

25% reading code, my own, legacy code I inherited, and code from programmers I’ve hired.

25% writing and testing code. The main tools I use on the iPad Pro:

Inbox (GMail client) Skype and Hangouts Slack Blink (ssh client that support mosh, a real timesaver) Working Copy (local copies of git repositories) CodeHub (GitHub client) Textastic (code editor with Working Copy and sftp) Dash (offline documentation) Google Drive, Sheets, and Docs Google Keep, for notes, to-do lists, saving web sites”

So, no, that is not accurate.


To be fair, that accurately describes a lot of the programming I do on my Macbook too...


Yup, same here. It's a terminal, to my dev and production systems. I only develop on it directly if I'm targeting specific other hardware (arduino, rpi, esp8266, making a linux distro, etc.) and even then I run that in a virtual machine.


A friendly reminder: there's no reason the iPad couldn't have things like a local shell, emacs or whatever local program you like, only the artificial barriers Apple imposes to limit what you can do with your own device.

Until these barriers are lifted, I think I will stick to old and boring laptop computers.


In contrast, on Android I remember sshing and coding in vi on the very first android phone(a rooted T-Mobile G1/HTC Dream) back in 2008. It had a physical keyboard so this was actually practical.


Yes. You can even run a full GNU/Linux distro inside Android (and without root!): https://www.xda-developers.com/guide-installing-and-running-...


It will be an interesting exercise for Apple to create a fully sandboxed computer which can be still used for actual development. With all of the push they do for education and learning to code, there is still no way to actually develop an iPad app on an iPad.


You could equally remind people that those “barriers” also carry significant benefit to the vast majority of users.


The iOS model is certainly a good default, but that does not mean that some limitations that come with it couldn't be lifted to some extend. Even with full sandboxing, applications could do a lot more without compromising security than Apple allows.


Not sure why it has to be one or the other.


Security yo.


There is no reason Apple could not allow users to install their own certificates, or even to just provide an "easy jailbreak" that was not accessible remotely, without compromising security for users who elected not to use these features.


Android allows sideloading, and the security problem arises not from users who “elected” to use those features, but from those who were duped into using them. For example somebody might be trying to play a Pokémon emulator, end up on a side loading site with some technical instructions, and load their phone with malware without even realizing it.


Let us not give up freedom for security.

A reasonable solution would be to make it sufficiently "technical" to unlock the device, so people can't be easily tricked into it.


I keep hearing that Apple's direction of travel is to sunset MacOS for iOS. If that's the case, Apple will need to provide developers a path to develop for iOS on iOS. So there will be a need for an "expert / developer mode".


I hear a lot of people say that too, but Apple itself has repeatedly said that iOS and macOS serve different purposes and they will remain separate products.

What we do see Apple doing is consolidating some aspects of iOS and macOS development. That makes sense since iOS was originally built on the OS X kernel, but then allowed to diverge.


Would they have to? I mean, yes, that would be nice, but for example people developing for game consoles don't develop on the console itself, but rather using a separate development system.


He means security for apple and things on the app/itunes store.


You have been able to do this since iOS 10. You get a free developer certificate simply by having an Apple ID, allowing you to sign and sideload apps onto your device.


The free account is severely crippled. To seriously side load your own apps, you need a paid account. And I think that’s a travesty!


Not all functionality is there, no doubt, but can you explain why you believe it is severely crippled? Works reasonably well for me.


Oh, I’m mostly talking about the 7 day limit.


Can I side-load Cydia using my free developer cert?


You would need to modify it to install apps in a different way and to also sign them, and most things would not work due to root access being required, but technically you certainly can.


> you certainly can

but

> most things would not work

It should go without saying that the whole point of installing an app is that it work. It does me little good to have the binary sitting in the file system if it doesn't actually perform the function which it was built to perform.

Developer certs != jailbreak. Apple could provide a jailbreak option, but it chooses not to, so people who want to actually control their own devices (a not unreasonable thing for someone to want IMHO) have to deal with Chinese hackers.


You assume you can't have your cake and eat it but it's unproven.


Yes, see QubesOS which has a shoestring budget compared to Apple.


I'm a heavy iPad user (I use the 12" pro). I'd be willing to pay $100 for a good, working Emacs. That said, I find that the experience of working on an iPad is less than optimal, because of keyboards.

IPad Keyboards almost universally suck, for various reasons. I actually used Apple's aluminum bluetooth keyboard for a while, because it was the least sucky. The Apple smart keyboard is an improvement, but it also sucks in various ways. There is always a problem with remapping caps lock to control, which is essential, and I can't remap other keys and use them because of the limitations of either the keyboard, the OS, or the terminal. I'd like to be able to use Emacs as I do everyday, with a Control, Alt, Command and Super modifiers, but once all the limitations are in place you end up with an Emacs where even Alt (Meta) doesn't work and you have to type esc-something, and you might not even have an esc key.


With all these downsides to keyboard input on the platform and wanting to use Emacs, I'm just curious what do you actually like about working on the iPad over something like a Macbook, Surface or the small MBP?


As someone with a 12 inch iPad Pro, Macbook Pro, and Surface Pro tablet, I can weigh in.

A Macbook Pro is significantly more expensive than any of the other options, and frankly, I despise the redesigned MBP. The touch bar hinders my productivity, and the new keyboard tends to malfunction. The key travel is so low that the keys often get stuck. Simply put, I love Apple products, but the new MBP breaks my heart. It sucks. It's one of the worst Apple products I've ever used. Apple urgently needs to put out a new MBP based on the previous design. Get rid of the touch bar, bring back the ports, bring back Mag-Safe, and pretend this terrible laptop never happened.

The Surface Pro is interesting. It's almost useless as a tablet. I basically treat it as a very small laptop. I've tried using it without a mouse, but the Windows UI isn't designed for it. I'm constantly struggling to click on UI elements that are way too small. A lot of Windows apps are not prepared for the high DPI screen, and are insanely tiny. You pretty much need a magnifying glass to use them. As an ultra-portable laptop, it's decent. It weighs very little, and the construction quality is decent (though not as good as an iPad). The keyboard for the Surface Pro is pretty good. It's slightly flimsy, so you have to keep it on a semi-solid surface, or the keyboard can start to buckle and cause some issues. The stylus on the previous model wasn't very good, but the new one is great. It's almost as good as the Apple Pencil, which is high praise. As for development, it runs Windows. If you're a C# or Java developer then that's great, otherwise it's not so good. You can run a VM, or the Linux subsystem, but that eats into the Surface's already extremely poor battery life.

The iPad Pro (especially the full size version) is just stunning. It has the nicest screen I've ever laid eyes on. I'm not just talking about pixel density. Images pop off the screen. The whole device is really solid, and it feels great in your hands. Battery life is good, usability for daily tasks is superb. The stylus is the best in the business (I strongly prefer it over a Wacom Cintiq). Unfortunately the keyboard is a problem, and the inability to run development software is a showstopper.

So I'd say the iPad Pro is the best hardware out there, but it's hampered by software support. In my dreams, I can run Emacs, Ruby, Haskell, and all of my other development tools right on my iPad. Since that's not possible, I use a Surface Pro for Windows related development (working on a 3D indie game), and an MBP for web development.


Replace the surface with a 2015 (wife's primary) and 2009 MBP (my non-work backup), and I'm the same as you.

The 2015 MBP is almost perfect, and the 2017 would be extra perfect if they hadn't changed the keyboard (it's like they didn't test it on people who type for a living...)

I love my 2017 iPad Pro, and I hope to someday use it for local dev. I've tried using it for dev work w/ an external keyboard, but you really need a table, whereas a laptop can be used in your lap... The lack of mouse integration is a bit annoying too, but most apps have good keyboard shortcuts. Of course, you end up SSH'ing and then it's just easier to switch to my 2009 MBP. It doesn't have the latest OS, only has 8GB of memory, but still chugs along nicely and is more dev friendly than a tablet.


I run Emacs full-screen on my MBP anyway, so there wouldn't be much difference in terms of experience. But the MBP is much heavier, has short battery life, and does not allow me to do other things (quickly browse through 1000-page PDFs with the screen closer to my eyes, draw, take notes, annotate documents, etc).

Don't get me wrong, I'm not saying "iPad will replace my MBP", but I would like to be able to use it.


I'd love some pie in the sky Emacs environment on mobiles and tablets that incorporated voice commands, even if it just translated to M-x commands or something. Others have gone further[1], but I wonder if there's decent subvocalization tech coming to mobiles eventually to make this usable in a work setting.

[1]: http://ergoemacs.org/emacs/using_voice_to_code.html


You could use a USB adapter and plug in a normal keyboard, like a Happy hacking keyboard or something like that? Depends how mobile you need your solution to be.


I use a kinesis Bluetooth keyboard with mine and set the tablet in a floor stand.


The second you want to branch out and try something different, you are going to be stuck as hell on the iPad. No way to run Fusion 360 for example. Try to work on dropbox documents locally? Just simple stuff like downloading MP3 files and playing them can be a pain.

Unless you are laser focused on one task (like you seem to be)... sure it looks like you have made the necessary adjustments to make it work. For the general computer where your hobbies, desires and programs vary... there are just too many tradeoffs. I mean... running another OS on my macOS device is stupidly easy. I can manipulate any file in almost any manner. I don't have to paw at my screen for text selection... and so on and on.

That all said, I would love an iPad pro with macOS.


>No way to run Fusion 360 for example.

Actually there is, but how is this relevant? Some obscure CAD package is not exactly the litmus test of how usable an iPad can be.


> ...how is this relevant?

How is it not? This entire thread is about comparing iOS to a fully unrestricted desktop operating systems where we all work normally.

> Some obscure CAD package is not exactly the litmus test of how usable an iPad can be.

Actually, it is in this case. That was the entire point which was clearly stated from the first sentence:

> The second you want to branch out and try something different...

So the obscure CAD package itself is not the litmus test for how usable something is, no. However trying to use one or more obscure package is the litmus test for how usable the iPad is in its ability to let you branch out and try obscure things.

> Actually there is...

Well that would have really been some relevant information to reply with.

So what's your solution? Running a virtual machine containing a fully unrestricted OS on your iPad? (EDIT: I see someone below pointed out the "Fusion 360" iOS app which seems like a gimped, ahem I mean mobile, version of the full app.)


I can’t speak about the entire thread, but I didn’t intend to compare iOS to other operating systems. I just wrote that I can “work normally” on an iPad. The kind of work I do allows that.

If I want to “branch out” I have the Chromebook Pixel, and I can get another laptop if I need to. I can run a Mac or Windows system in the cloud — I’ve done that when I need to use tools not available on iOS, from POEdit to Eclipse. I didn’t mean to imply that I would force myself to use an iPad for everything and just throw up my arms if I couldn’t get something to work on it.


I would say "great"... but also, "Why bother?" You did compare iPad Pro and iOS to alternatives, no? Main computer and all that?

The point is "main computer" means main... not secondary or ancillary to my main computer. Your average person does not have a need for several thousands of dollars worth of screens, and would be much better off with a laptop vs. iPad pro. Furthermore, the premise of this "experiment" is extreme navel gazing.

"Hey look at me everybody! I bought a device for almost a thousand dollars then spent a lot more on apps, then wasted a shit pile of time for a gimped UX that sort-of works! You can do it too! Just get your check book out and be prepared to buy another laptop and/or VPS space because you'll need it!"


You can put whatever spin on it you want, I suppose. The iPad has more uses than as my main development machine. I would have bought it anyway for all the reasons people buy tablets. I don’t see it as a waste of money since I use it all the time, for work and non-work.

The few apps I paid for did not cost “a lot more.” A VPS costs $5/month, I already used a VPS anyway, and mostly I work on client systems already in the cloud. I don’t need to buy another laptop, I already have one that has worked fine for more than three years.

I didn’t suggest everyone try this, nor did I intend to evangelize iPads. Lots of people already have iPads or will buy one, and lots of people have expressed interest, for years, in using tablets as laptop replacements.


Fusion 360 for iOS: https://www.autodesk.com/products/fusion-360/blog/fusion-360...

I don't think anyone is saying that an iPad is a replacement for all computing tasks. But for many things it could come close.


"Laser focused on one task" might be a benefit here ;-)


Downloading and playing MP3 file: GoodReader

Dropbox docs can be opened in local apps.


You can share 'MP3' to Dropbox as well, then play them there. It's still a paid, but in dire situations it works.


Another interesting take on exactly this topic, also using Blink to SSH (Mosh) into a VPS: https://jann.is/ipad-pro-for-programming/

I run the set up from that article sometimes, which depends mostly on an app to connect to a VPS and running a Docker container with all your tooling there. In the end, that's all there is to it; Blink is a nice terminal app, and you're using it to do the actual work on a linux machine elsewhere.

By the way, I use the the standard wireless magic keyboard instead of the smart keyboard. It has an escape key, which is great for vim, and for me it feels better to type on being a ‘real’ keyboard with some travel and clicky keys.


Thanks for sharing this article. This is exactly what comes to mind for me. I recently came back to this to see if I could set up an old iPad with this setup to see if it would be valuable to buy the iPad Pro.

Amazing how much you are limited without multitasking (as is the case with the old iPads).


I use a chromebook as a portable terminal in the data center. It's awesome. Termux for ssh sessions and common command line utilities, beagleterm if I need a serial console, and chrome for looking up stuff online. About 2 seconds from opening the cover to being usable, and battery that will last the whole workday.


I use a Chromebook in user mode for development at home. Using Caret for editing and Termux for nodejs stuff actually works quite well, but there are a few slightly annoying things like Chrome refusing to load things from localhost (Firefox for Android will). It's not a replacement for a proper computer but it works for tinkering.


Waiting for this bug to be resolved (termux supports only the US/qwerty keyboard layout) - qwertz/dvorak/etc is broken.

https://github.com/termux/termux-app/issues/250


Same here. Best choice I've made in ages.


> Awkward text selection. If I didn’t mainly use vim over ssh I would have given up on iOS for this reason alone.

I think this is a really salient point. For those of us still doing Cut and Paste, a tablet isn't going to cut it (pun intentional).


Android and W10 tablets support mices.

They even show a little cursor when one is plugged.


Even the Blackberry Playbook supported a mouse, really surprising that iOS doesn't.


I'd go one step further and say that any device without mouse support wouldn't cut it outside of a terminal-exclusive programming environment.


The upcoming version of Blink has some pretty awesome keyboard-based selection/copy/paste: you still tap and hold for the initial selection, but then that selection can be expanded with keyboard shortcuts


Blackberry's BB10 had the only good selection mechanism on a touchscreen I've ever seen, and I think it's patented.


Sailfish OS also has really good touch selection, where it zooms in. Much better than Android or iOS


Apple would go a long way toward solving this problem just by adding a right and left arrow key to the virtual keyboard.


Eh the actual selection process is a nightmare. I don’t understand how poorly they released it.


Wow, I didn’t expect so many comments.

Thanks for the constructive ideas and discussion. I noticed that the skeptical comments fall into two broad categories:

1. I can’t do my work on an iPad because I need to use tools that don’t work on iOS. Therefore I don’t understand how anyone could use an iPad.

2. The iPad seems so obviously unsuited to software development the author must suffer from masochism, or need to prove something, or suffers from Apple fan boy disease.

I didn’t write the article to evangelize iPads for development. I described my experience using an iPad Pro for my own work, which just happens to fit pretty well with a tablet and keyboard because I work remotely on code I can’t easily run locally, and I prefer using Unix (actually Linux) as my IDE. That won’t work for everyone. Not everyone needs a pickup truck to do their job, that doesn’t mean people who don’t own a truck made a mistake or want to punish themselves.


Good point. A lot of people are criticizing you for "preaching" about using an iPad for their work, when in fact you are just sharing your dev setup for us to read. It won't work for everyone, but it works for you so who are we to criticize you?

Anyway, you have an interesting setup and I want to thank you for sharing!

Aside, I also run a Pixel LS with Crouton and love it still.


I wrote this because I had told a few people I can use an iPad for work and they asked me to write up the details because they would like to do it. A quick Google search shows quite a bit of interest in using tablets instead of laptops. I think I clearly made the point that this won’t work for a lot of people, and iOS gets close to a good developer experience but has some frustrating issues.

Haters gonna hate, the subject doesn’t even matter. If I wrote about my favorite work chair I would get replies about better chairs and lectures about how I should stand or walk on a treadmill. If I wrote about my motorcycle a lot of people would tell me what a piece of crap I ride. When I switched from a Macbook to the Chromebook Pixel, after a lot of research, I was told by other developers that I couldn’t work on a Chromebook.


That's really cool people were interested in reading about how you do it! I always have a fascination about how other people live their lives and that includes setups and other such things.

I enjoy my Pixel LS so much, it really is an incredible machine. It has some pains for development work, but for me the pros outweigh the cons. I just really don't like MacOS or Windows because they get in my way. Chrome OS doesn't get in my way.


I've been searching for a light & thin computing device for intermittent travel needs where I can

- use SSH

- edit & run code (i.e. python / JS etc.)

- preferable running Ubuntu

- form factor of iPad or iPad Pro

- multitask with browser, terminal and editor

Your article is the closest thing I've found so far. The list of tools that you use are also useful, thank you !

If it had Ubuntu, it would have been a perfect solution for me.


I haven't gotten mine yet, but the Planet Computers Gemini is a modern take on the Psion 5 that probably meets your requirements: https://www.indiegogo.com/projects/gemini-pda-android-linux-...


That's cool, but oof, that price. I think one of those cheap $200 (just over) laptops you can get on Amazon with USB tethering to my phone would be my choice. Maybe a cheap fabric sleeve case to go with it. Even if I lost one, I could completely replace it and still be under the cost of this setup, and while a small laptop/netbook, it's still very usable. I bought 5 to play with for $DAYJOB the other month, and besides being a pain to get the big windows 10 update on because of low free disk space, they work great.


I own netbook and before that an actual Psion series 5 and series 7. They all really do seem like a great idea. On the netbook I set the text size tiny so I could still get two columns of 80 char lines. But the problem with all of them is the keyboard. It's just too small. If you're used to typing at a high wpm and use emacs like me then you will feel retarded. I never ended up doing anything productive on any of them.


I stuck to netbooks/sublaptops before and it kinda worked for me, last one was a Lenovo Ideapad. Was eyeing 13" MBPs for quite some time but they are really much more in weight/bulk. But last year went for 12" Mac with RAM maxed to 16gb, couldn't be happier. Almost netbook like outer dimensions: still comfortable to use on the bus/plane. Same weight and thinner, usable keyboard. Great battery life, and enough horsepower even with the m3 cpu. Fanless, just like my Ideapad was!


Looks cool, wish the screen was a bit bigger.. around 9"-10"


If the Linux subsystem on Windows satisfies your Ubuntu requirement, a Surface Pro satisfies all of those requirements.


That's a great suggestion and might work well with vmware.


My ThinkPad X1 Carbon seems to tick all your boxes with the exception of the tablet form factor. I love this thing. I get ~12 hours battery life, can run full-fat Linux and Windows, it has a superb keyboard and trackpad (and TrackPoint!), beautiful screen (I have the HDR model), loads of memory and solid state storage and 4 USB ports! (two type C and two type A). And it only weighs 1.1KG.

I have tried and failed to work on a tablet but they are just too limiting for me as they always rely on a stable internet connection to a VPS which isn't always possible easily and sometimes I just want to get on with work without the internet as a distraction.


The X1 Carbon is a fantastic laptop. The X1 Yoga is basically an X1C that can go tablet or tent mode and has a touch screen. It might be what GP is looking for:

https://www3.lenovo.com/us/en/laptops/thinkpad/thinkpad-yoga...


While waiting for my Youyota Sailfish tablet (https://www.indiegogo.com/projects/youyota-sailfish-os-2-in-...), I'm using a Sony Xperia X phone as my travel computer. It was simple to install Sailfish X: https://jolla.com/sailfishx/

Bluetooth is a bit patchy at the moment (the keyboard drops out occasionally); I'm waiting for a software update to fix that. (Jolla's updates are frequent, so I'm not fretting about this.)

Now, it runs Linux, with a proper terminal, and a suite of software - I'm using Emacs with SBCL and Erlang. (I had to compile Erlang - not a problem at all!)

Going through your list:

- SSH 'out-of-the-box'

- Emacs (or Vim)

- not quite Ubuntu; it's RPM based

- a smaller form factor than iPad Pro, but that's what the tablet will hopefully rectify!

- proper multitasking, unlike Android or iOS

Plus, I get telephony, and VPN support in the OS.

Compared to iPad and Android tablets, this is a breath of fresh air - no idiotic hoops to jump through (rooting the machine); simple to transfer files via SD card, USB, or just use SCP from the terminal. Root access is just a 'su' away.


Any Windows tablet would do, no?


Those of you looking for a mouse that works with Remote Desktop on iOS can check out my review of the Citrix X1:

http://taoofmac.com/space/blog/2016/11/06/1930

Otherwise, I'm totally on board with this kind of approach - it works really well, except that I can't really use Blink until it has ssh-agent (and slightly better SSH key handling - it's still a bit clunky, so I use Prompt instead).

OTOH, my work machine is now a Surface Pro, which does everything just fine.


I did it two years or so ago. You really notice not having a mouse. Copy and pasting was weird. Local development is off the table; your workload will need to be on another box. Panic handled window resizing and rotations weird.


Yeah for tools driven by webpack not having local development is really painful. I tried to make the pixel c my only device and got somewhat further thanks to tmux but ultimately not having chrome developmer tools in the browser made it not work for me.


Just a tip: it wasn't officially advertised, but with iPads 2 and 3 (and probably 4 as well, those with the wide connector before the lightning connector was released) you could use ANY USB keyboard connected via the so called camera-kit connector (or whatever it was called, basically just a USB adapter). That could still hold true if there any USB adapters out there available for these new connectors).


Lightning to usb is the "camera" adapter and I use it on an iPad Pro. It definitely still works


I don't use my iPad as my main computer, but I do use it when traveling. The work I do is mainly command line (development---Unix is my IDE), so using SSH is fine (vSSHD for iOS). Cut-n-paste is a bit of a chore though. My biggest complaint is the keyboard, but then again, short of an IBM model M I'm always going to complain about the keyboard.


I like the iPad Pro but for that kind of workload it seems an Android (or Windows) tablet would be a better fit.

You get mouse support for proper text selection and with ie. Termux you can work locally without the need to ssh into a server all the time.

I use an old Sony Android tablet with bluetooth mouse+keyboard this way and it has been great while travelling or for any spring time "I want to work in a park" flashes. (It is also water proof which saved it quite an embarrassing number of times already.)


I use a cheap Microsoft Surface clone as my main tablet. It is far slower than a current iPad, but also cheaper.

Con: The app situation is dire. I generally use the browser instead of apps.

Pro: It is an actual computer. You can plug in USB sticks, you can work with files, you can connect to a TV, you can program, you can use command line programs. For me, this outweighs everything else. In a pinch, I can whip out Emacs and write a Python program, or run ffmpeg to convert a video file, or debug a C++ program. All of this will be slow, because these cheap tablets are slow, but none of these are even possible on iOS/Android tablets.

We should choose tools that empower us, not tools that take our power away.


Performance wise though, the iPad is totally gonna best any Android tablet out there right now.


Does that matter in this context? All I see here is talk of SSH and vim.


Absolutely. Working mostly on CRUD-Apps in php, python and node locally though, I never missed a faster device that much. You are more limited by your input modes or apps than performance really.


That would matter if you could do anything performance-dependent on the ipad pro, like run dev services, compile code or run tests.


Have you found a screen that enables to work outside? All my previous attempts have been unworkable (screen not visible) when it is sunny.


Unfortunately no. I would love a large epaper tablet but so far I just cranked the screen brightness up high and brought a battery pack. Works quite well.


The big things that would prevent me from using an iPad for work are:

- No window management. No multiple screens. Can't have docs, IDE, browser and Slack open at the same time, for example. Bad crouched-down seating position as a result.

- Text selection sucks on tablets in general.

- Can't install developer tools locally; you're forced to work over SSH. Can't work on a plane, or wherever there's spotty WiFi

- No good IDEs. For PHP, I like PHPStorm, for example. Don't know if web-based IDEs are any good though.


> Can't work on a plane

You're now making me imagine setting up a Raspberry Pi as a portable micro-server for your iPad terminal to SSH into, then creating an ad hoc WiFi network on the plane, which you could then connect your iPad Pro to.

Of course that's completely backwards, your terminal has more processing power than the server, plus you'd need a battery for the RPi, and a way to sync your micro-server to your real server.

It would be completely impractical and stupid, but it would be rather funny.


It totally works. The PI just needs a regular USB battery which I travel with for my phone. An added bonus is all the fun wifi Linux tools that aren't available on my Mac or iPad.


If you mostly use the terminal for sysadmin and coding, I assume the difference between terminal and server is nil.

I'm trying to achieve this result with a solar powered rPi and my Android phone (running Termux), for syncing aren't git and rsync enough?


How small can we go? Busybox + SSH running on a wifi-enabled watch or earring?


You can do split-screen apps, you could have a ssh session and slack at the same time.

https://support.apple.com/en-us/HT207582


> Can’t work on a plane

With the cramped economy seats that have become standard these days, the iPad Pro with a SmartKeyboard is pretty much the only thing I can use to work on an airplane (because the keyboard is so short). I wouldn’t be able to fit a full laptop in front of me and be able to type without hitting other passengers in the face with my elbow. But yeah, it’s pretty restricted. No real dev tools. Text editing works fine though. It also requires some thinking ahead, as I need to sync any files I want to work on to local storage on the iPad.


> Can't work on a plane, or wherever there's spotty WiFi

When I moved to the iPad-only I thought this would be an issue. Reality is I cannot code without WiFi anyway (checking documentation, doing research, etc...). I understand that may not be the case for everyone though, but coding without WiFi may actually be the exception.

And for spotty-low speed, that's where Mosh shines. I've even worked on spotty 2.5G tethering from a remote place.


iOS has limited multitasking and multiple windows. I can have my terminal open with Slack on the side, for example. I have come to prefer having the entire screen devoted to a single task — fewer distractions. iOS also has keyboard shortcuts for switching apps.

Text selection does suck, as I mentioned in the article.

I’m forced to work over ssh in any case. I work on legacy applications, for multiple clients, and most of them would need a lot of work and stubbing in weird dependencies to run locally. I used to try to run them on a MacBook, and even when I got them to work it was a lot of trouble and never a real duplicate of the production application. Much easier to clone the whole thing into a cloud server for development.

I have tried most of the cloud IDEs. Cloud9 works the best but not with iOS.

I can get all of the source code on the iPad with Working Copy and I can edit code offline with Textastic. I just can’t run it or push to the server until I get back online.


This tangentially reminds me that when I landed my first software development job I had just a 10in 1gb netbook. It was a remote gig where I supplied my own equipment, so right before I started I got the Acer C720 (4gb ram and added a bigger ssd) and put Ubuntu on it. Luckily I did mostly backend then. Most the frontend devs seemed to need 16gb to spin up Vagrant and all the webpack watch tasks etc.

Edit: not to say that was the way they should have been doing things, haha.


When I started my first job as a developer a few years back, my boss (non-technical) apparently asked my manager if it was possible for me to do my job on an iPad instead of a Macbook, as iPads are cheaper.

Obviously my manager said no.

I should've taken it as a sign of things to come. My boss wouldn't even pay for my stationary, I had to buy my own pens and paper, let alone get my any peripherals like a monitor or a keyboard.


this kind of marginal cost-cutting at the expense of medium/long-term productivity is commonplace yet baffling to me. even if it doesn't increase productivity, surely it increases retention to some degree, I just don't get why you wouldn't make a small investment here as an owner/manager.


I've had the same recurring thoughts.

Surely hardware is such a miniscule cost compared to the bodies using it 8 hours a day.

I have never encountered a carpenter whose boss tried to get them to use the cheapest possible tool (especially the wrong kind of tool) for their job. Why would we be different, other than having bosses unfamiliar with the work they are managing.


With these kind of "cost effective" bosses I suggest offering remote work, it usually works beautifully and you don't have to endure their ridiculous attitude 8+ hours a day.


Conveniently my "cost effective" boss worked remotely, so at least I didn't have to tolerate him in person more than once a month.

Everyone else at the job was super cool, I just really didn't gel with the CEO. I think maybe it was because he never saw us he treated us as some abstract cost centre.


I have made similar experience with my 13 inch iPad Pro. The hardware is just great - perhaps with an exception for the missing keys on the smart keyboard. But what really holds it back is the software. Working remotely on a Linux box works around some of the restrictions - I have been struggling with various ssh clients, I really have to give Blink a try. But the iPad Pro could be the ultimate mobile device, if Apple would put a stronger emphasis on developers needs. A sandboxed version of termux would just be great - perhaps even a complete virtualisation app, which allows to boot a linux inside the apps container.


The sticking point for me with Android or iOS is always the web browser devtools. I write all my code on a remote server, so a decent terminal emulator is sufficient for that, but without local browser debugging tools, I am way less productive. I don't get why the mobile browsers are crippled versions of the desktop ones in that regard.

It's also the greatest thing about Chromebooks. They have real desktop Chrome. I have other gripes with the OS just like I do with Android or iOS in terms of usability vs MacOS, Ubuntu, or Windows, but it's the best "mobile OS" currently.


Yes, I miss Chrome dev tools more than a mouse. I have a Chromebook for the relatively infrequent episodes of HTML/CSS/JS debugging and experimenting, since I don’t do a lot of front-end work.


Most of the jobs I have worked at required a desktop workstation running Windows 10. While perhaps not a tablet, I’d love to have the sort of work where doing everything over SSH would be possible.


He has "old eyes" but can work okay for hours on end on a 10" screen? I wonder what font size he runs his terminals at.


The increased rendering accuracy of HiDPI is extremely soothing to my eyes, allowing me to even go with a smaller font (rather, UI scale) than I do on a LoDPI one while improving comfort.

I have a 29" 2560x1080 screen in front of me yet I still regularly unplug it and work on the 13" Retina in spite of the reduced real estate.


13 px. The hi-res iPad display really helps.


My biggest issue with an iPad Pro+Apple Keyboard as the main terminal client:

- Where the "Control" key should be, is the "International Keyboard" key -- and there's no option to remap it. Control-something brings up the "Emoji" keyboard...or the Spanish keyboard (for me)

Everything else? I can live with.


This is why I started Blink, seriously. I just wanted to have Cmd as Ctrl and Alt as Meta on my iPad, for emacs.

I even had to go one night to Grand Central's Apple Store and buy an external BT keyboard to run some tests because I realized the Simulator wasn't working properly with the modifier keys. And fortunately I was right, I could make modifier keys work, and it made sense to continue working on Blink.


The main benefit to me, besides mosh support, of the Blink app mentioned in TFA is that it actually allows you to remap caps lock to be control, because between left shift and tab is where the control key is supposed to live. I have been searching/waiting for half a decade for someone to produce a bluetooth keyboard that allowed me to remap keys the same way I can on my laptop and this software hack in Blink is the closest anyone has come.


Yeah, I've had to disable all keyboards except the main (English) one because hitting the globe key accidentally was so frustrating. For Emoji, I'm using an app called Symbols which allows be to copy/paste them (yay for multitasking with a floating app window on iOS11).


For the folks worried about the limited iPad keyboards:

You can use most any bluetooth or USB keyboard with the iPad. I use a Code keyboard with cherry switches connected to my iPad via USB if I am doing anything serious. Just need the little Camera -> Lighting adapter.


At that point why not just use a laptop? You're carrying around an iPad, some way to stand it up, a USB keyboard and a dongle.

Just seems to be getting a little silly imho the amount of cruft people are willing to carry around to try and fulfil Tim's vision that the iPad is a laptop replacement.


I've tried a Surface with NixOS, and a minimalistic setup: XMonad, Emacs, Firefox and URxvt. It's great, except for the fact that most Surfaces are second-class citizens in Linux. I'd like to see an iPad with something closer to macOS.


Can you not use a bluetooth mouse/touchpad with an iPad? This honestly surprises me.


iOS doesn't have mouse support. It could be bolted on by simulating touches, but a lot of the interactions just don't make sense on a mouse.

The iOS simulator that comes with Xcode demonstrates this clearly. It just feels unnatural to swipe between homescreen pages on a mouse, for example. You have to hold down the mouse button and drag, which traditionally means drag'n'drop of objects rather than switching pages.


Makes no sense from my point of view. The mouse could be an addition to touch, not a replacement. I certainly understand the concern, but I believe the benefits of supporting a mouse clearly outweigh the drawbacks, especially for business users.


You can on Android and W10 tablets, though.


Such articles would make no sense on in that case. "Install everything you need and it just works" makes little to brag about on your blog...


Nobody wants to use Android or W10.


Not everyone wants to use an iPad.


While there doesn't seem mouse support built into iOS, Citrix offers a special mouse for their iPad client - I guess they implemented some custom support for their app.


Sometimes I think that they haven't added this because it would mean less macbook sales.


I think it's less that than it is a philosophy; they're still very wedded to the idea that mice = (general purpose) computers, touch = tablets. I wouldn't be surprised if this eventually changes--maybe sooner than we think. Apple also at least claims to be wedded to the idea that the iPad can be an actual laptop replacement; if they mean it, they can't stop where they're at now when it comes to knocking down reasons to prefer a MacBook to an iPad. This is one of the big ones. (And, yes, ultimately I think this will require them allowing users to sideload apps: either the manufacturer gets to dictate how you can use the platform, or it's general purpose, but it can't truly be both simultaneously.)

Also, from a purely revenue standpoint, if they added trackpad/mouse support to iOS, I think they'd just sell more expensive mice and trackpads. :)


No, since iOS doesn’t have cursor support like iOS does.


For those considering iPad for work, I would recommend also testing Macbook. Before switching to Windows I was traveling with Macbook and found it pretty convenient. No need to play with SSH or alternatives as you can run the actual tools. Depending on stuff you do, syncing via Dropbox may make it possible to easily work on a more powerful computer when at home/office.

Not perfect of course. In some cases, it would be nice to have the tablet mode, for example reading docs in plane (no need to stash away for takeoff/landing). With Macbook touchpad I did not really miss touch screen. Can't remember how it was with battery life in real life.


I use my iPad Pro for taking note taking during lectures and for reading. I would love to be able to use it for LaTeX too, however ShareLaTeX has a bug [0] making it impossible to navigate text using the arrow keys.

For programming and other more technical things I do not see any reason to use the iPad. MacBooks are lightweight and more competent machines – the only thing worrying me is Apple's recent lack of interest for macOS and the Mac overall.

[0] https://github.com/sharelatex/web-sharelatex/issues/611


The (offline) LaTeX situation on the iPad is pretty good, actually. There’s Texpad and Tex Writer, both of which are pretty good. Personally, I use a fork of iVim that contains a Texlive distribution (https://michaelgoerz.net/notes/editing-latex-on-the-ipad-wit..., as mentioned in my earlier comment)


What recent “lack of interest?”

MacOS isn’t suffering from “lack of interest.” As far as Mac, according to media reports, Apple is even working to develop their own chips — hardly the hallmark of a “lack of interest.”


Note that the iPad with a keyboard handles non-English languages relatively bad. There are shortcuts in some applications that simply do not work using a non-US layout.


I am looking for ways to do this: ssh is not enough for my workload so I am building a slew of apps to run on iOS/Android that let me do all my dev work on them. I am very close to that point now; hopefully in the next few months I reach the point where I only have to bring a gdp pocket or Pyra or Gemini and an ipad pro on travels to do everything I need to do. Where 90% happens on the iPad and 10% on the tiny laptop.


I would like to see a series of articles describing/teaching his client communication and organization process.

He illustrates that it takes about 50% of his time, and that sounds about right for my experience. However, he clearly has a system for managing his 50% that I don't have (but need).


I have written about it a little bit, in my articles about freelancing, on my site typicalprogrammer.com.

I mostly use email because my clients mostly use email. If I can get them to use Slack or report/track issues in GitHub, great, but usually they use email. I have five active customers most of the time. I use Google Inbox for organizing and finding emails, Google Keep for notes and lists, and GitHub issues for tracking bugs and programming tasks.

I got into the Google Drive/Keep/Inbox world because I used a Chromebook for three years as my main computer (still use it fairly often) and was on Android before that.


I would switch in a heartbeat if it had a mouse. This stops me working on presentations which is where most of my time is spent.

Surely it wouldn’t even be that hard to enable and would fit in without compromising a touch based interface? I don’t understand why they wouldn’t do it?


Controlling Ubuntu Remote Desktop with an iPad is kind of cool. Maybe not full time.


I'm not a Windows fan, but the Surface Pro like looks very attractive and super small and light.

Unfortunately, I need something that can run Primiere and Illustrator as well as the easy vim and terminals.


The main issue I have with Surface Pro (outside of the numerous bugs) is that it behaves more like a laptop in term of waking up. An ipad can be on sleep for a long time and is instantaneously available when woken up, whereas a Surface Pro will take a while to wake up. So it's not the same usage.


I have an i7 with 16GB of RAM, and an acquaintance with an identical config runs Illustrator on it without complaint.


I wonder why Illustrator performance on my Dell XPS 15 with i7, 32GB RAM, and 1050GX GPU is so much slower scrolling in Illustrator than my old i7 MBP with much older GPU?

I assumed that the Surface Pro, which at least through model 4 was Intel GPU only, would be even worse...


I tried an xps last year with an i7 and it was slow as well. Turns out it was thermal throttling like crazy. Returned it right away and just stuck with a MacBook Pro. Do miss all that ram though.


Thanks for this tip. I did some digging and found that even on AC power, the thing was set by default to throttle down to 5% CPU power whenever possible. I guess there's some ramp-up latency when demand hits, and that was creating the performance problems I had. After setting the min CPU at 100%, it performs almost as well as my 3 year older MBP.


Why not just go for a Surface Pro and get the best of both worlds ?


Or is it the worst of both worlds, I tried one earlier this year but couldn't get on with it, it was just too compromised.


I don't understand, what's compromised there? He's literally running only ssh client and a browser. What stops you from using the surface in this way?


I’m sure that isn’t all he is doing — who’d want to suffer through Surface for all the other tasks beyond ssh?

Also the iPad Pro refresh rate is double that of Surface; the screen is significantly better which matters when you spend 8 hours a day looking at small stuff.

iPad Pro is also thinner, lighter and has a far more powerful processor.


What advantage does faster processor give when you have to offload any dev work to external machine?

If you can't install your environment locally, you might as well use a $200 android tablet...


I use the iPad for more than ssh to remote servers. I write a lot, for example. I also use it for watching movies and playing games.

I have played with the Surface quite a bit and I know a few developers who use them (or have used them and given up). Partly it comes down to not wanting to use Windows.


You use your iPad as it was intended to. Multimedia consumption, light internet browsing, some simpler office suite work.

When it comes to development, what's the use case besides a terminal client?

You can't develop anything native, because of iOS.

You cannot do webdev, cause only browser you can have is safari.

Cannot do embedded stuff due to lack of ports.


I do all of my “office suite” work on the iPad, mainly emails and spreadsheets, but also writing specifications, reviewing issues and PRs in GitHub, etc. No problem with that, the iPad goes beyond mere media consumption.

I think I described that I work on remote servers belonging to my customers, so mainly I use a terminal and a web browser for that. I don’t do native development (anymore), I don’t do embedded programming. I do sometimes do front-end work and I have a Chromebook (and tools like Browserstack) for that.

I don’t try to do everything myself, or have computers that can do everything. I hire a lot of work out.


Err, both worlds are there, but in my experience it could hardly be described as the “best of”.


even for a terminal only, i still rather use a chromebook.

ipad is still very cripple for development purpose.


If there was some pen optimized IDE might be an interesting option


Yes I am hoping to see Pencil support in developer tools. The Pencil does work for clicking on things and selecting text but unless you need to draw or use handwriting it doesn’t work that much better than a finger.


it would be easier for clicking on [+] to expand code section. With proper infrastructure might actually be usable for writing code.


Does anyone have a similar guide but Android oriented?


I once used a Nokia 80 to fix a problem on a website.


You should write a similar article then!


re: creating iOS Apps on an iPad - I've been using Continuous IDE for doing this. It includes Xamarin Forms, as well as native bindings. I've created a few non trivial apps in it. The benefit is that you can bootstrap the app really quickly in code and if you really want to scale it up, move it to the Mac to clean up. You can also almost take the code from a VS Mac projects and run it directly on an iPad.. it just needs a few hoops to be jumped through at the moment to get the files on the device.


What’s a computer?


Wonder which iPad size is he using?


In the 2nd paragraph of the article:

> A few months ago I bought an iPad Pro 10.5” with Apple Smart Keyboard to try to use it as my main work computer.


According to the article it was iPad Pro 10.5”.


just get a Chromebook then


If you read the article you would know that I have a Chromebook Pixel LS, and that has been my main (only) computer for almost three years. I still use it for things the iPad can’t do, or can’t do well enough.


I really don't get it.

My mom can use an iPad as her primary computer, and I can use an iPad as my primary computer on the beach on vacation, but why would I hate myself so much to use an iPad as my primary computer?

I think Apple's vision is--once again--completely wrong when talking about pro users.


The fact that Apple hasn't released an IDE for iOS that can develop iOS apps is a pretty clear indicator that the iPad is not meant for professional software development, even if some people (myself included) try it anyways just to see how well it works.

However, there are plenty of other professional users who could probably use the iPad as their primary computer now. Photographers, graphic designers, visual artists, and musicians could probably make the switch now and iOS will only get better for them in the future.

I think that Apple's vision for pro users is correct as long as we consider more than just software developers as pro users.


It still doesn't make any sense to me.

Why would I buy an overpriced tablet that is stuck to being a tablet, while there are many two-in-ones that are 1/2 of the price and not only work just as great as the iPad in their tablet form, but can become an actual computer if one needs them to..?

Microsoft's Surface Book is absolutely stunning, and can become a tablet with great battery life, or be a perfect laptop if you need to type and want to use a mouse.


Well for starters, the Surface Book starts at $1500. The 10.5" iPad Pro with keyboard starts at $800, and the 12.9" with keyboard starts at $1000.

A better comparison would be the Surface Pro, which starts at about the same price as the 12.9" iPad Pro with keyboard. However, that configuration has a core m3 processor and 4GB of RAM. I'm pretty sure the iPad Pro will outperform the Surface Pro pretty handily until you get a model with 8GB of RAM, which will put you back about the same price as the Surface Book ($1500).

If you can point me towards a two-in-one that's half the price of the 10.5" iPad Pro with keyboard and performs as well, I'll be very impressed. $400 dollars doesn't buy a lot of computer. Even if you can find one, I'm 100% sure you won't find one that has the same build quality and battery life that the iPad Pro does.

I'd also be impressed if you could point be towards any non iOS tablet that works just as well as an iPad. Using iOS on a tablet is far, far superior in my opinion to Android or Windows. Android has nowhere near the app selection and Windows still feels like you should be using a keyboard and mouse for most things.

The real issue here, though, is that more and more people have absolutely no need for an "actual computer" and so they don't care if the iPad fits that definition or not. For some it's actually a negative because of the added complexity.


I don’t hate myself. I wanted to try using it for development and I’ve been surprised at how well it works, for my workflow. It wouldn’t work for everyone, but nothing does.


Yes of course, but I'm just amazed that the CEO of a computer company (if you can still call Apple that) can say that he doesn't understand why anyone would buy a computer when there are tablets around.

Let's just say that I'm happy to have abandoned the platform.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: