iPad Pro 10.5 for Software Development(codingepiphany.com)
codingepiphany.com
iPad Pro 10.5 for Software Development
http://www.codingepiphany.com/2017/07/19/ipad-pro-10-5-for-software-development/
75 comments
Do people really "develop" on a tablet? I cringe when I see people "develop" on a laptop. I can't imagine anyone developing on a tablet.
I need a keyword and two monitors at the very least.
I need a keyword and two monitors at the very least.
Doesn't take much to connect a mechanical keyboard (assuming you meant keyboard not keyword) to an iPad. And the keyboard shortcuts on the iPad are becoming much more powerful.
You can of course connect an external monitor to an iPad, but not a lot of applications are taking advantage of this ability yet (for extended screen space).
But realistically, iPad won't be ready until they support the mouse due to "gorilla arm" as it's called. Getting the iPad to eye level for proper ergonomics require a lot more effort to raise your arm to interact with the screen.
You can of course connect an external monitor to an iPad, but not a lot of applications are taking advantage of this ability yet (for extended screen space).
But realistically, iPad won't be ready until they support the mouse due to "gorilla arm" as it's called. Getting the iPad to eye level for proper ergonomics require a lot more effort to raise your arm to interact with the screen.
I'd love to find a good iPad style dev workflow, but the step that requires "commit and push" before compiling is a deal breaker for me. Is there no rsync or good way to move a local copy to a remote dev server from the iPad?
One thing I've heard others do is to just ssh into a remote machine and do all coding against that (through vi or whatever) instead of coding locally.
Well you have things like Dropbox and iCloud and box.net, etc, etc. They will sync files across magically. Plus there are editors that can do it across things like SFTP: https://panic.com/coda-ios/
I use Coda to push files to remote servers for exactly this reason. There's a good number of alternatives that are less feature-rich than Coda which can do the same thing. I think Prompt is probably a great alternative if you just want to SSH a file onto a remote box.
Working Copy is an app that provides you with, just that, a local working copy of your git projects on your phone. Not just an explorer. Just started using it yesterday and I love it.
Is "directly" editing over SFTP not a thing anymore? Desktop editors could (can?) do that.
I'm super interested in being able to do this. I love the idea of an nearly always on and connected device.
For anyone who does code on an ipad, what is the advantage over a mac air or similar?
Mac OS, like Windows, has fundamental latency and battery use issues that can't be easily fixed without sacrificing backwards compatibility.
What latency are you talking about? Decent PC or Mac with SSD is much faster than iPad and can hold battery trough ~9 hours (depends on a workflow).
Interactive latency. Being able to type and have it appear on the screen instantly, reliably.
> Decent PC or Mac with SSD is much faster than iPad
Yes, but speed isn't latency and hardware speed is irrelevant.
My DOS-based 286-12 had better latency than my Surface Book and MacBook Air do, mainly because DOS has no (or very little) multitasking. My iPhone also has excellent latency as it limits the APIs available to background tasks, stopping the typical 'Windows Search Service' (or any other random background executable) killing foreground performance.
> Decent PC or Mac with SSD is much faster than iPad
Yes, but speed isn't latency and hardware speed is irrelevant.
My DOS-based 286-12 had better latency than my Surface Book and MacBook Air do, mainly because DOS has no (or very little) multitasking. My iPhone also has excellent latency as it limits the APIs available to background tasks, stopping the typical 'Windows Search Service' (or any other random background executable) killing foreground performance.
I'm sorry I haven't use Windows for a while but there latency, as you call it, is much better on Linux/MacOS based machines than on iOS. Switching between windows without waiting, multitasking all those, and more, things are much better on computer.
You should look at benchmarks of latest iPad Pro vs. Mac laptops. iPad Pro is faster than lower end Mac laptops and only a little bit slower than MacBook Pros.
Why does graphics performance matter for programming? (Game design excluded of course)
Only in benchmarks. Look at the workflow presented in article. There is no builds required nor CPU heavy processing. But there is a lot of switching between applications, multi windows etc. iOS UI is not prepared for this kind of workflow. Even the newest improvements on iPad Pro are far away from being as useful and as fast as on normal laptop.
Sorry, I misunderstood you. The way you phrased your earlier comment ("Mac with SSD") made me think you were talking about hardware performance.
On macs with without SSD UX is lagy
what do you mean by "latency"?
It's the action-response time. I this case the delay time for interactive activities, such as the delay between pressing a key and seeing the letter appear on the screen. Even 'fast' desktops can be intermittently rubbish at this due to background tasks saturating the CPU or I/O channels.
OP here, this is exactly what I meant.
If you use a mid range windows or mac like the article author uses an ipad pro, meaning nothing running in the background and no high cpu build steps on the machine itself, then latency and battery life would be excellent.
The ipad is not magical. Were you to run actual dev workloads on the machine itself it would be sluggish with terrible battery life.
The ipad is not magical. Were you to run actual dev workloads on the machine itself it would be sluggish with terrible battery life.
None? I guess the iPad Pro has a lovely screen.
I’m also a software dev who has been painfully dogfooding an iPad Pro 10.5 fulltime for development of CoCalc/SageMath for the last few weeks. I even opened (and fixed) a bunch of bugs in our site as a result: https://github.com/sagemathinc/cocalc/issues?utf8=&q=label%3...
I’ve been using iOS 11 beta3. Surprisingly, there actually exist some clear advantages over most laptops:
Physical Hardware Advantages over laptops (not over surface pro):
- More cameras (e.g., an extra 12MP camera on back); you can easily snap a picture or shoot video.
- The iPad 10.5 weighs 1 pound, which is way less than most notebooks; it is EXTREMELY portable.
- Portrait mode (i.e., rotate screen) with no keyboard, which is useful, e.g., for reading pages of technical documentation.
- No trackpad, so the keyboard/bottom takes up much less space, meaning you can fit easily in more places (e.g., cramped airplanes).
- The keyboard doesn’t get dust/crumbs under the keys, since they are sealed.
There are also some advantages over my other laptop, which is a 2.2 pound Macbook 12:
- The iPad has LTE, which works very well to provide internet without wifi.
- Surprisingly, the iPad 10.5 “SmartKeyboard” from Apple has a vastly better mechanical feel than the Macbook 12 (2016).
Of course, the real annoyance of the iPad is the software, because the hardware itself is very good, whereas the software is intentionally crippled for reasons of control/security/arrogance/vision. This is a much bigger can of worms...
I’ve been using iOS 11 beta3. Surprisingly, there actually exist some clear advantages over most laptops:
Physical Hardware Advantages over laptops (not over surface pro):
- More cameras (e.g., an extra 12MP camera on back); you can easily snap a picture or shoot video.
- The iPad 10.5 weighs 1 pound, which is way less than most notebooks; it is EXTREMELY portable.
- Portrait mode (i.e., rotate screen) with no keyboard, which is useful, e.g., for reading pages of technical documentation.
- No trackpad, so the keyboard/bottom takes up much less space, meaning you can fit easily in more places (e.g., cramped airplanes).
- The keyboard doesn’t get dust/crumbs under the keys, since they are sealed.
There are also some advantages over my other laptop, which is a 2.2 pound Macbook 12:
- The iPad has LTE, which works very well to provide internet without wifi.
- Surprisingly, the iPad 10.5 “SmartKeyboard” from Apple has a vastly better mechanical feel than the Macbook 12 (2016).
Of course, the real annoyance of the iPad is the software, because the hardware itself is very good, whereas the software is intentionally crippled for reasons of control/security/arrogance/vision. This is a much bigger can of worms...
Great screens can be find on laptops too.
For web development it can be OKish, but for the rest it is almost impossible.
Even for web development, there are a lot of obstacles on the way.
Even for web development, there are a lot of obstacles on the way.
Even for web development it's useless for me. Today I had to install new package via composer, install new package via npm, do multiple gulp/grunt runs, regex trough 100k+ lines of log files, ssh multiple times to the server and build docker containers. And that's just average day at the office as PHP/JS dev / devops. Try to do that on iPad.
The author of the post is really using an iPad Pro and a remote Linux server together for software development. With that combination, all the above that you mention is of course easy to do from an iPad.
So he is not using iPad, he is using Linux machine. It's like Google employee saying: "I am running the whole Google search on my phone" after he SSH to main server. iPads, in current form, are not suitable for any efficient and high quality content creation. Of course they can be used as a "terminal" to access machines/devices that can do that but you can't really seriously work offline on it.
Yes, he is using an iPad + remote Linux machine + network connection. It’s an interesting and useful combination for some use cases. You’re right that “you can’t really seriously work offline [for software dev] on it”, at present due purely to Apple-imposed software constraints, IMHO.
Regarding “not suiable for any efficient and high quality content creation”, there are some use cases where the iPad 10.5 Pro is pretty useful:
- with an Apple Pencil, it’s a very useful device for sketching out ideas (much like a piece of paper is, but with some neat advantages, e.g., infinite size, scalability, editing),
- with the keyboard and any text editor, it’s useful for banging out text, e.g. a rough draft of a blog post or paper...
- with an Apple Pencil, it’s a very useful device for sketching out ideas (much like a piece of paper is, but with some neat advantages, e.g., infinite size, scalability, editing),
- with the keyboard and any text editor, it’s useful for banging out text, e.g. a rough draft of a blog post or paper...
Most of the Apple-imposed constraints on local development and code execution were lifted recently:
https://www.macstories.net/stories/coding-on-ios-is-more-fea...
Of course, it will likely take a while before developers are able to publish apps that utilize these new permissions to the Store.
Of course, it will likely take a while before developers are able to publish apps that utilize these new permissions to the Store.
Cool; perhaps I will be one of the developers to publish such an app! Without those constraints, I could technically provide a purely local offline App version of https://CoCalc.com...
With the pencil you can create pretty high quality drawings. It also seems many photographers are happy with the iPad in their workflow. The problem is that 90% of the rest what people do is cumbersome and full of needless obstacles. How should an iPad Pro replace a laptop if you can't export the photos and drawings without a laptop/computer. It's just so, so stupid. On the surface you pop in the USB stick (and virtually all other USB Hardware!) and you're good to go.
meh...looks pretty rough to me still; that seems like a HUGE sacrifice coming from a surface pro 4. As much as I don't like it, cloud based IDEs + dev platforms seem like the only way for this to work.
I worked off of an iPad Pro 12.9 (with keyboard cover) when I was remote for a few months. It was ok. What made it possible for me was Panic Inc's Coda, Transmit, and Prompt apps.
The portability of it and battery life were great. There's also a certain intimacy in working with a touch device. But there's a cumbersomeness to it when coming from a keyboard-centric background.
The portability of it and battery life were great. There's also a certain intimacy in working with a touch device. But there's a cumbersomeness to it when coming from a keyboard-centric background.
I do most of my writing and research on an iPad Pro, but not much coding - just little things while traveling. I like Raskell for Haskell and Pythonista. I also use Prompt for SSH.
Raskell and Pythonista are great.
I also use Continuous [1] for F# dev. Great IDE experience, and being able to play around with apps right on the iPad Pro (2016 model).
I also use Continuous [1] for F# dev. Great IDE experience, and being able to play around with apps right on the iPad Pro (2016 model).
[1] http://continuous.codes/Thank you. This looks interesting. I don't use C# or F#, but F# has been on my to-leaern list for a long time.
I had a pretty similar setup with a Pixel C for the last year:
http://bergie.iki.fi/blog/working-on-android-2017/
The portability and battery life were great, and since Android has the Termux app available, I could also do vim/git/node.js locally.
Unfortunately I had to give the tablet back when I switched jobs earlier this year. The iPad Pro looks pretty appealing, especially now that there is a Mosh app (Blink Shell), meaning that the SSH connections won't cut out after two minutes of being out of the app.
http://bergie.iki.fi/blog/working-on-android-2017/
The portability and battery life were great, and since Android has the Termux app available, I could also do vim/git/node.js locally.
Unfortunately I had to give the tablet back when I switched jobs earlier this year. The iPad Pro looks pretty appealing, especially now that there is a Mosh app (Blink Shell), meaning that the SSH connections won't cut out after two minutes of being out of the app.
I have transitioned to an environment where I only use a web browser, a terminal and an Emacs instance.
I realise the advantage one of the huge advantages of this approach is that you have so few dependencies even Android or iOS can be OK.
I realise the advantage one of the huge advantages of this approach is that you have so few dependencies even Android or iOS can be OK.
The screen real estate alone should be a good reason not to do that. I gather most people do js programming on a tablet. I would still need three windows side by side: the IDE, the UI rendered in a browser, and stackoverflow or some documentation. Having to switch all the time must be tiring.
The most effective folks I've talked to about doing this tend to be doing server-side work and pretty heavily TDD'd. So most of your time can be spent with an editor in one pane and docs in the other, and have a keyboard shortcut in your vim/etc terminal window to run your tests automatically.
You can have 2 apps at the same time, I beleive. Split in the middle by iOS.
I still dream about an iPad that run macOS. :)
I still dream about an iPad that run macOS. :)
I thought 10.5in was small. Two halves of 10.5 really feels like developing on a smartphone.
Apple will not make Macs forever. A macOS-ARM VM that runs on iOS is plausible. There is certainly precedent for this sort of thing (Classic on PowerPC Macs, Rosetta on Intel Macs). We might even have Homebrew ARM :p
re: "Apple will not make Macs forever": you may be right, but I would guess that the Mac product line will be profitable enough to last a long time. That said, I now only use my Mac while coding, and all other reading, research, and writing is done on one of my iOS devices.
What I want is a powerful phone that air docs to screens, keyboards, etc. as needed. I use Dropbox, iDrive, Google Drive, and OneDrive - I like them all (especially for multiple backup targets) but I would really one phone-like device with sharable peripherals both at home and in public places.
What I want is a powerful phone that air docs to screens, keyboards, etc. as needed. I use Dropbox, iDrive, Google Drive, and OneDrive - I like them all (especially for multiple backup targets) but I would really one phone-like device with sharable peripherals both at home and in public places.
> "This makes the Surface Pro 4 a poor choice for remote work..."
and
> "Having a test or staging server is mandatory so that we can test our codes that we wrote on the iPad."
are not congruous.
and
> "Having a test or staging server is mandatory so that we can test our codes that we wrote on the iPad."
are not congruous.
Why? You can get iPads with cell service, allowing you to connect to a test/staging server without having access to power. I use a full blown MacBook Pro at work, and _still_ connect to a powerful EC2 box running tmux/vim/etc for development.
My laptop has had cell service for over 5 years thanks to USB internet stick.
Right. But the author's point was about battery life. Not that an iPad is unique in having cellular service.
You can now get a Surface Pro with cellular service too unlike the Mac
I prefer just tethering my phone, it's generally cheaper just to get a bigger data plan than it is to get a new service for $device number 2.
/sarcasm on
IntelliJ is finally available in the App Store? Count me in!
/sarcasm off
IntelliJ is finally available in the App Store? Count me in!
/sarcasm off
I'm curious what device the author prefers, for software development: iPad Pro or the surface. Also, the conclusion is that "it’s quite possible" to use the iPad Pro, but that isn't necessarily an endorsement.
I only ask because I've been toying with the idea of buying a surface / iPad Pro.
I only ask because I've been toying with the idea of buying a surface / iPad Pro.
I carry both at times. During commute and travel I use the iPad for development as it has smaller form factor and longer battery life. Developing on it is enjoyable given the right “homework” with the automated deployment. Obviously the feedback is not as fast as using the surface as all compilations and vm or containers works locally.
I think the right tool for the right situation would best describe this. Mind you that the comparison was with surface pro 4, as I understood the new Surface should have better battery life.
I think the right tool for the right situation would best describe this. Mind you that the comparison was with surface pro 4, as I understood the new Surface should have better battery life.
We've got a gen-3 Surface in the office for when we need to do Windows stuff and I'd say: definitely try before you buy. Given how much positive stuff I'd heard about it, almost every part of the reality was... surprising.
> gen-3 Surface
I don’t think anyone ever said positive stuff about a “gen-3 Surface”... and it’s certainly not representative of the modern Windows experience
I don’t think anyone ever said positive stuff about a “gen-3 Surface”... and it’s certainly not representative of the modern Windows experience
I have a 2015 15-inch retina macbook pro and a surface pro 4. Ever since Windows 10 added a native ubuntu bash shell to its OS, I have preferred using the surface for all of my development (some web stuff where I ssh into other boxes and some python number crunching done locally). A big factor is that the surface pro 4's screen looks a lot better than my retina macbook pro because it is more dense and has a higher resolution. A few years ago I would not have believed the stuff I am writing in this comment, but here we are!
You do most of your coding without an external monitor?
I've tried to use an iPad for Python web development - it's usable for a Vim person since they'd be using the keyboard all day, but for me I missed Sublime too much. Ended up getting a Macbook and the iPad is now collecting dust.
Also task switching between your editor (which was Vim inside an SSH terminal in my case) and Safari to see the end result was way too slow, and you constantly need to take your fingers off the keyboard to interact with the touchscreen.
Related: http://yieldthought.com/post/31857050698/ipad-linode-1-year-...
Also task switching between your editor (which was Vim inside an SSH terminal in my case) and Safari to see the end result was way too slow, and you constantly need to take your fingers off the keyboard to interact with the touchscreen.
Related: http://yieldthought.com/post/31857050698/ipad-linode-1-year-...
For external keyboards, Cmd-Tab works on the iPad to switch applications. In addition, most apps support a subset of standard keyboard shortcuts - if you hold Cmd down, it'll throw up a list on screen.
[deleted]
What's the benefit of this over a MacBook?
Is it that you "get an ipad" to use when not developing?
Is it that you "get an ipad" to use when not developing?
I'm curious how the smaller screen affects productivity. I've had the primary responsibility for building applications with associated web services and tackling that on a 15" Retina Macbook Pro was, while possible, hardly ideal and certainly not what I would call "enjoyable". It was by temporary necessity and it was a relief having a large external monitor attached. Jumping between applications gets old pretty fast and turns what would otherwise be a smooth flow from one part of a task to another into nearly a full context switch.
As an aside, when I see "simply", "of course", or "just" (or, for example, hear it in a presentation) I get concerned since those are abstracts of highly variable possibilities that could otherwise be interpreted as "your mileage may vary". Ergo, the relevance could drop off precipitously, leaving little more than a passing anecdote.
That's not meant as a jab at the author as I appreciate them outlining their experience as it provides useful guidance. (And I'm probably over-analyzing it...)
As an aside, when I see "simply", "of course", or "just" (or, for example, hear it in a presentation) I get concerned since those are abstracts of highly variable possibilities that could otherwise be interpreted as "your mileage may vary". Ergo, the relevance could drop off precipitously, leaving little more than a passing anecdote.
That's not meant as a jab at the author as I appreciate them outlining their experience as it provides useful guidance. (And I'm probably over-analyzing it...)
I've noticed that it's easier for me to get to a state of flow on smaller screens vs big or multiple screens. The tabbing between applications (e.g. IDE and browser) doesn't tire me either. It's like the simple keystrokes for tabbing between applications are far less intrusive than having to turn my head, search, and regain focus. To me that makes sense.
"it’s quite possible to do advanced software development on the iPad"
the author's idea of advanced seems to correspond to what i consider the duplo blocks of programming, which is sad. :/
try some actual software development and the ipad does not stack up, because there are zero compilers for it and zero tools. on the other hand, that surface 4 can run all of the industry standard tools except xcode and lets you build native code for any platform, including those horrible apple ones and complicated or specialist stuff like quantum computers or games consoles.