Working on an iPad Pro as my main computer
typicalprogrammer.com
typicalprogrammer.com
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/iVimThank 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 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.
https://www.google.com/amp/s/9to5mac.com/2016/03/27/how-to-c...
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.
Until these barriers are lifted, I think I will stick to old and boring laptop computers.
A reasonable solution would be to make it sufficiently "technical" to unlock the device, so people can't be easily tricked into it.
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.
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.
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.
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.
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.
Don't get me wrong, I'm not saying "iPad will replace my MBP", but I would like to be able to use it.
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.
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 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.)
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.
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!"
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.
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.
Dropbox docs can be opened in local apps.
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.
Amazing how much you are limited without multitasking (as is the case with the old iPads).
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).
They even show a little cursor when one is plugged.
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.
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.
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.
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.
- 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 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.
https://www3.lenovo.com/us/en/laptops/thinkpad/thinkpad-yoga...
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.
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.
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.)
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.
- 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.
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.
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?
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.
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.
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.
Edit: not to say that was the way they should have been doing things, haha.
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.
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.
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.
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.
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.
- 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.
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.
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.
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.
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.
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. :)
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.
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.
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.”
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 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.
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?
Unfortunately, I need something that can run Primiere and Illustrator as well as the easy vim and terminals.
I assumed that the Surface Pro, which at least through model 4 was Intel GPU only, would be even worse...
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.
If you can't install your environment locally, you might as well use a $200 android tablet...
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.
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 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.
ipad is still very cripple for development purpose.
> 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.
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.
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.
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.
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.
Let's just say that I'm happy to have abandoned the platform.