My week of using an iPad at work has come to a close. Overall it was a great experience. I'll be glad to have my laptop back, but I definitely feel like I appreciate the iPad even more now. It's a very personal device, and pushing the boundaries of what it is capable of makes me even more excited to be building apps for it.
I'm in a position as a developer where my job involves more than just writing code. As such, I was able to test the experience of working with the iPad in a wide variety of activities. All of my normal activities were possible with the iPad, but it was clear that the iPad just isn't that great for writing code yet. Sure, you can do it, but it's far from ideal. For every other aspect of my job though the iPad performed very well. There's a lot that goes into software development, from team communication to researching frameworks and tools, reading specs, writing documentation, reviewing designs, maintaining build systems and testing apps. Engineering is all about solving problems and I really feel like I was able to solve a lot of problems this week using the iPad.
When I'm at home I use my iPad a lot while I'm laying on the couch. I spend a lot of time reading twitter and RSS news to keep up to date on what is going on. It occurred to me today while I was sitting at my desk that I hadn't tried that at work yet with the iPad. I was researching an automated UI testing framework called KIF, so I laid down on one of our office couches and read about KIF for an hour. It was really relaxing and I learned a lot about a new tool that I want to use. I bet that when people start using tablets more in the work space that they'll be able to be more relaxed while still being very productive. That's certainly how a lot of my experience using the iPad felt.
I've been thinking about how the iPad actually can become a better experience for software development. I can see how Xcode could be built for the iPad. The sliding panels in the desktop version will fit in well on the iPad being shown and hidden with swipe gestures. Same situation with the console/debugger drawer at the bottom. Whether or not the iPad has enough horsepower to be an effective build machine is another question, but I don't think it would be hard for Apple to build a version of Xcode that works on the iPad. The issue that I see with it though is that development is still very mouse and keyboard based. You have to type to write code. We're not in a world yet where you can drag and drop functions (except for code snippets…which I think would get used a lot more on a tablet) to build an app.
We are in a world though where we have Interface Builder. That's the one piece of iOS development that does lend itself to the tablet, since you can drag and drop bits of an interface around on the screen to build your nibs and storyboards. So then it occurred to me, what if you could bake interface builder into an app itself? What if you were building an app on the iPad, and that while it was running on your iPad in "developer mode" you could actually move the pieces of the UI around as needed while the app was running. It would be the perfect way to avoid the problem of context switching between your code/interface editor in the app itself. Why not just adjust your UI from the app while the app is running? We all do it all the time, where we'll run an app in the simulator and say to ourselves "that text box should be 2 pixels over to the left…. With this system you could just drag the text box over, say by tapping and holding on it to move it. You could use standard popovers to bring up a dialog for property changes, like font, color, size, etc. I bet that would be a pretty compelling way to fine tune an app you were working on developing, and it's something that would be a far better experience on the iPad itself than it would be on the simulator running on a Mac.
One of the biggest surprises this week was that I found the 10" display on the iPad to be plenty large enough for me. I'm a bit obsessed with screen real-estate…I use dual monitors at home and at work I use three monitors. I tried plugging the iPad into a monitor, but it just didn't' feel right. It turned out that the 10" gorgeous retina display on the iPad was just fine for me. I wouldn't have expected that to be the case.
I consider this to be a successful experiment. I would definitely encourage other people, developers or otherwise, to try using an iPad as your primary computer for a week. I think you'll be pleasantly surprised by how much you can do with it. I think it's important to note that what made this experiment possible for me was the quality of the apps that I was able to use. Panic in particular deserves a lot of credit. Their iPad apps are simply top notch. Edovia and Google deserve a lot of credit as well. Screens, Google Drive, and Google Hangout are excellent experiences on the iPad. If you do try this experiment and find places where the experience is lacking, think about what would improve that experience and write about it. Maybe someone will be able to build an app to fill the need that you have.
Thanks to everyone at Mutual Mobile who made this experiment possible!