Today was the first day where I tried to use an iPad for all of my work. Here's a link to my post outlining the experiment: /blog/2012/10/14/going-on-a-pc-diet.html Overall the experience was good. It feels very inspiring to attempt something like this. But it's clear that I am still a ways away from being as productive on the iPad as I am on a Mac for software development.
Let me start with what went well.
Email. Email has always been great on the iPad and the iPhone, so I really wasn't that concerned with this one. I am a heavy user of email though, so my expectations here are high (for more on my thoughts on email, see: /blog/2012/8/19/email.html). Search worked well when I needed to find some specific messages. Conversation threading was a deal saver of course. The improved flagging and VIP support in iOS 6 were very noticeable for me. What surprised me is how much I miss always seeing that red notification dot on my dock. Most people hate it, but I like staying up to date with what is going on during the day. Without that icon I felt like I had to constantly look over my shoulder and check email. But in terms of functionality email was no problem.
Chat. I used Verbs for chat and it's a pretty good experience. There's some quirks in the user experience but overall it's a great app. What I loved though was Google Hangout. We use hangout extensively at Mutual Mobile for communications. We have a very realistic office hours policy, and a lot of people work from home every so often if they need to go heads down on a problem, aren't feeling well, or need to wait for a repairman to come. My friend Sean McMains and I were working on a project together but he was at home. I ended up conferencing with him via Google Hangout on my iPhone, while working on a shared document on Google Drive. It was actually a great experience, and one which really wouldn't have been any better on a laptop.
Music. The coolest thing I've noticed so far is that the play/pause/volume/next buttons on the Apple Bluetooth keyboard control the Music app. How cool is that? The app seems to have gotten some solid performance improvements in iOS 6 too (perhaps thanks to UICollectionView?). Listening to music today was a great experience.
Keyboard. Speaking of buttons, the Apple Bluetooth keyboard is really great. I was really impressed by the amount of keyboard shortcuts that work, and even more impressed by this find by my friend Kevin Harwood. It turns out that you can enable keyboard shortcuts for Apple-Tab app switching by turning on VoiceOver. How cool is that? Here's a link to the details: http://the.taoofmac.com/space/blog/2012/06/22/0023
Screens. The reality of this experiment is that there are some things you simply cannot do on the iPad. For those things I am using Screens connected to my Mac at home. Screens is probably the best app I have ever used on iOS. It is extremely powerful, thoughtfully designed, and very feature rich. To give you an example of a task that you can't do on an iPad, the first task I had to do this morning was build and sign an app for submission to the App Store. I was able to complete this task, including setting up all the keychains and provisioning profiles, using Screens on my iPad. I can't imagine a better testimonial :)
So what didn't go well?
Does the fact that the iPad charger isn't powerful enough to charge the iPad while operating at full brightness count?
I really didn't have any task specific problems. I was able to do everything I attempted to. But I did encounter a lot of frustrations with editing text. I enjoyed using the external keyboard to type. Like a lot of developers, I can type extremely fast on a keyboard. But that doesn't help when it comes to cursor placement, text selection, and general interaction. Having to reach up and constantly touch my screen to push a button, select a sentence, or insert a square bracket was fairly taxing and not enjoyable. Clearly this is not the iPads strong suit, which really is by design. The iPad isn't designed for that type of workflow. It is great evidence for the case against a touch screen Mac though.
I left my laptop at home to force myself to use the iPad for everything. I'll admit that for the first couple of hours it was pretty stressful. It was very much a case of being taken out of my comfort zone. I've used a Mac for my whole life, and trying to do work without it was pretty strange at first. A mainstay of my work environment is using dual monitors to view multiple pieces of information at once. That doesn't work with the iPad. I think I may try using two iPads later this week to see if it makes a difference, but for today it took me a while to get past it.
I didn't get to write much code today, but I did get to test out my actual development setup. The three primary apps I am using are Diet Coda, Prompt, and Textastic. My basic strategy is to use a combination of those apps to edit code, and then a remote build server to build the app and allow me to download and install it on my device. I'll post more information on this setup in the coming days, but I did enough work today to know that while this system does work that it isn't an efficient way to develop iOS apps. The workflow for writing code is very much centered around a mouse and keyboard, and so far doesn't seem to lend itself well to a touch interface.
After spending a day in this experiment the biggest question on my mind is what is better about the experience of developing software on the iPad than the experience on the Mac. Its clear to me now that it is indeed possible to do all of your software development on the iPad, but what is it about that experience that will make people prefer to write code on an iPad? What is the value that the iPad brings to the table?
We all know the kind of value that the iPad brings to other types of software. Touch interaction removes the layer of abstraction between you and the content. With a full screen system where the device is essentially a piece of glass the device literally becomes your content. That's lead to wonderful apps like Reeder, where it becomes fun to manipulate your articles and feeds as you read them. And iPhoto, where the iPad becomes your photo that you can view on the gorgeous display while tweaking its color and exposure. Those apps really play to the strengths of the platform to create an amazing user experience. That's the bar that the software development experience has to reach for anyone to want to use their iPad to develop apps. We'll see over the rest of the week how close it is to getting there.