Coding in a Post-PC World, Part 2
Welcome to my second installment on writing code in a post-PC environment. In Part 1, I talked about my hardware of choice. This post discusses the software I use on both Android and iOS devices to achieve my programming objectives.
Text Editing
Emacs or Vi? I'm a Vim fan myself, though when on a Mac, it's TextMate all the way (and yes, like other TextMate fans, I am eagerly awaiting the Lion-compliant Textmate 2.0 alpha release promised by the end of this year). However, due to the limited expression of the onscreen keyboards for both Android and iOS, the Shift/Control/Option/Special key combos don't work too well, if at all. As such, these keyboard combos take a back seat to the primary task of command-driven text editing.
For the Android platform, my current favorite is TextWarrior. The app, while not quite fully baked and buggy, is free. As such, the price is right and you get what you pay for. But it's also open source, and the developers enthusiastically embrace Android's open source approach by inviting other developers to contribute to the project.
The situation improves dramatically on the iOS side. One of the features I really like about TextMate is its ability to create a whole custom set of templates for a particular need such as a new language or web framework. TextMate calls these collections bundles, and they're very easy to create once you get the hang of TextMate's simple template constructs. To instantiate a template, simply type the key word(s) associated with one and the text block will fully expand, placing the cursor in the desired location. If there are multiple parameters to edit in the template, you can configure the template to jump from each via tab key presses.
I have recreated TextMate's template expanding feature via two apps for the iPad. The first is Smile on my Mac's TextExpander. This app works just like the version that has been available for years on the Mac, and just like the TextMate ability to type a keyword and have it expand to a full text or code block, TextExpander works almost in the same way. Unfortunately, because the iOS on-screen keyboard lacks a tab key, tabbing from designated fields in a template is not an option on the TextExpander iOS version. Bummer. Still, it sure beats typing out blocks of code, especially when confined to using the on-screen keyboard.