The iPhone and iPad are great devices for consuming content. Unfortunately, their ability to produce content is limited. Whether transcribing a lengthy dissertation, creating high-level graphic artistry, or writing code in a rich integrated development environment, the current design and constrained screen real estate of iOS devices have reinforced their intent as an endpoint with high bandwidth output and low bandwidth input. In other words, it's really hard to write code on the iPhone or iPad!
Even so, this intentional design has not stopped determined iOS application developers from attempting to transplant the application and design experience of a desktop computer to the iPhone or iPad. This article takes a look at some of the more notable attempts to do this and evaluates how well they succeeded. (Unless otherwise indicated, iPad and iPhone/iPod touch versions of the apps are available. Note that apps listed as "iPhone/iPod touch only" should run on the iPad but were designed for the smaller iOS devices.)
Code Viewer 2
This helpful app can retrieve project files from a Subversion code repository and display them on the iOS device in an organized manner and offers code keyword highlighting, just like a desktop editor would. Annotations can be made to the files, and these notations can be synced back to the repository with the same check-in options one familiar with Subversion would expect. Code Viewer 2 supports HTTP and HTTPS connections, but not SSH connections. It would be nice if future releases support other open source control systems like CVS, Git, and Mercurial. Still, Code Viewer 2 does what it was designed to do very well. It's very useful to have on your iOS device, especially in moments of inspiration when you finally realize how to refine a troublesome algorithm or recognize the location of a snarky and elusive bug.
$6.99 (iPad only), app2.me/3143
The popularity of HTML5/CSS3 continues to grow, but using it to built attractive font styles, color schemes, and effects can take a considerable amount of time and effort. Because the iPad is being used more frequently to show work in progress to clients, it's very convenient to have an editor app onboard to tweak style sheet designs on the fly—CSS3Machine fits the bill. It's also a rewarding app to use if you're still learning the intricacies of CSS3. It's educational, and fun to move sliders and toggle settings to see what creation comes out of this style sheet maker.
$9.99 (iPhone/iPod touch only), app2.me/3144
Apple's iOS SDK is necessary to build apps, and its Interface Builder (IB) is especially useful for creating sliders, buttons, tabs, progress indicators, and other elements of the UI. However, the SDK and IB are OS X-based tools—to build an app you have to be sitting in front of your Mac.
Thoth Ling wanted to be able to build interfaces directly from his iPhone, so he created Developer Toy. Using the app's tools is straightforward: Select the user interface elements to add to the Window, drag them into the desired location, and click the "Generate Code" button to export the layout. This generates a Zip file that can be sent to your Mac as an e-mail attachment or transferred via Wi-Fi. The files can then be unzipped and imported into Xcode for further development.
JavaDoc documentation can be very helpful when Java developers are learning new API's or reviewing a project's code documentation. However, transferring and browsing the documentation on anything other than a laptop takes a bit more effort. Fortunately, JDoc Reader makes these procedures much easier. By simply transferring a zipped JavaDoc archive to the iPhone or iPad via iTunes file sharing (or via an external file transfer service like Dropbox), you can view the help files the same way you would on the desktop. Note that expanding a JavaDoc zip or jar file before transferring will help speed up performance so the iPhone or iPad's processor doesn't have to do the work of uncompressing the JavaDoc files first before you access them. While the application delivers on what it promises, I do hope that future versions allow the ability to search across JDoc collections, as it would greatly accelerate the ability to locate desired information.
Continue pushing the envelope
Because of the physical limitations of iOS devices and the limitations the OS places on software, programmers and application designers may never be fully satisfied with tools like the ones I've reviewed. However, the existence of these apps demonstrates that developers are looking for ways to extend their productivity with the help of their iPad, iPhone, or iPod touch. Of particular interest to me are the design apps that can be used to play with ideas and brainstorm with clients.
I continue to prefer a powerful laptop for writing and reviewing code and related documentation when I'm on the road. However, I encourage developers to continue pushing the envelope on these apps. I look forward to the day when I can leave my laptop behind and have everything I need on my iPhone or iPad.