Textastic Code Editor for iPad
Programmers and Web-page coders have specific needs when using a text editor to write and edit. Textastic, an iPad-only app by Alexander Blach, fulfills those needs superbly. The app can access files across many protocols and services, uses colored type to distinguish programming or formatting elements, offers a powerful floating selection tool, correctly handles uploading changes even in complex circumstances, and has the fluency you need for a touch-based interface without losing any of the requirements for working in text.
With any tool intended to write or manage code, you want to be know that you can open a file, make changes, and have those saved back to the source, whatever that source may be. There shouldn't be any management stage in retaining bookmarks to reach remote file servers, nor to upload changes.
Textastic manages remote access as a collection of servers reached via its Files list. Tap a globe, and a File Transfer view appears split into Local Files on the left and Connections on the right. Tap the plus button (+) at the top of the Connections column, and you can choose to add FTP and WebDAV servers, enter Dropbox credentials, or link to the dying breaths of MobileMe's iDisk. (MobileMe shuts down June 30, 2012, but iDisk access remains in effect until then even if you had a MobileMe account and converted it to iCloud.)
Because this is a serious programmer's tool, the app offers unsecured FTP along with the three separate flavors of secured FTP: SSH-based SFTP, and both implicit and explicit FTP over SSL. (The former assumes a secured connection, while the latter has to request it.) WebDAV can be used with or without a secured HTTPS connection. Depending on the Web or cloud host or a system administrator's particular predilections, a programmer or Web designer might face any or all of these options.
The attention to detail shows here as throughout the app. Many SSL-based FTP servers use self-signed certificates, which can't be verified through a third-party authority as is universally the case for secured public Web sites. Textastic has a switch that can be thrown to disable such verification, if that's appropriate, allowing these connections. Likewise with SFTP, an option to use a public key for authentication—stored in the local files area—lets programmers use existing workflows for that kind of secure connection.
On top of the remote access options, Textastic also has a built-in WebDAV server, which can easily be accessed from a Mac, Windows, or other system, as well as from other iOS devices. Tap a Wi-Fi icon (a fan with no bars) at the bottom of the Files view, and you can configure access. Flip to a Mac, for instance, and type in the WebDAV server URL, and you can copy, delete, or add files in Textastic's internal storage. File transfer over USB from iTunes hard-to-use File Transfer feature also works.
Once you've made a connection and navigated to files or folders of interest, checking a box next to one or more items and clicking Download makes a copy in the local store. Crucially, a link is retained back to the same path from which the file came. If you copy a local file that's linked to a remote repository to a different remote location each link is retained, which is a nice bit of recordkeeping. That's less like "Save As" and more like "Save to Multiples Places." There's no per-se "Save" option (nor even one to close a file). Rather, you select upload, and confirm that you want to overwrite the remote copy. (You can avoid future prompts by choosing Always from the Overwrite Files pop-over menu, however.)
Tap Back and then Files, and you can select among locally stored files. Textastic has syntax coloring for more than 80 different kinds of text files, according to Blach's site, and I tested a dozen of those. What that means is that special parts of the language are highlighted in distinct colors as you write and edit. For instance, commands, variable names, quoted text, and other matters appear in different colors, allowing visual inspection for errors, syntax (the correct usage in a line of code), and missing opening or closing quotation marks. (If you're of the right mindset, you can even add your own syntax definitions.)
As you work, Textastic shows the current line and column in the upper-right corner. Tapping a File Properties icon (it looks like a sheet of paper) reveals a variety of data, including the current line, character, and word count. This properties view also lets you set text encoding and line endings for the platform (a critical and annoying difference between Mac, Unix, and Windows). You can also set or change the format used for syntax coloring, which is set automatically from a file's extension, like .css or .js. For a file without an extension or saved as .txt, you're not stuck without the right.
HTML and Markdown files can be previewed by tapping a Preview button that appears when editing those types. The resulting preview HTML can be saved as a file. Also helpful is a Symbols button, which when tapped shows a pop-over of all the functions, objects, and other major elements in a bit of code. You can tap a name and jump to that part of the program or page.
Textastic is almost certainly best used with a keyboard, whether a dock or wireless, because most people find it too tedious to tap out long stretches of code or writing. Textastic makes typing with the on-screen keyboard easier by including a row of swipable common programming punctuation, like parentheses and curly braces, above the normal on-screen keyboard. The app adds keyboard commands explained in in-app and online help files. You can use keyboard navigation and selection. But the program also has a unique floating cursor navigation wheel that offers arrows and selection options for more precise choices than the iOS's magnifying glass and selection grabbers. It's clever, I wish Apple would kipe it.
While using Textastic, I frequently lost myself in the code and forgot the app was running on an iPad instead of a full desktop computer interface. Like most iPad software, the app fills the screen with just what you're working on. It's easy to swap back and forth among locally stored files, but there's no split-view to see two or more files at once. Without more screen territory, Textastic can't have the scope of a desktop programming tool, and it lacks project-management features. But it makes the best of the space it has, along with great nuance that coders will appreciate.
[Glenn Fleishman is a senior contributor to Macworld, and wrote his first code on a Commodore PET in the 1980s. He still programs, now in perl, having built TidBITS content-management system, and his own book-price comparison service, isbn.nu.]