This is part 1 in a new series on the site about some false notions out there about what you can and can't do on the iPad. The iPad has long been criticized for being a "consumption device" and that "real work" still needs to happen on a desktop computer. Last month's release of the iPad Pro got more people questioning what can and can't be done on an iPad, and I want to explore that idea more in this series.
One thing that always seems to come up in these conversations, and this is likely more due to who tends to write these articles, is writing code. The feeling being that anyone who spends their days in Sublime Text on their computer and is FTPing into their server all day could never make it work on iOS. So can you write code and develop a website on your iPad?
I won't lie, as someone who has years of experience and workflows built up for writing code for the web on my Mac, the transition was not effortless. My current workflow involves Sublime Text, Transmit, Finder, and Safari. I command-tab rapidly as I upload files, edit documents, and refresh my browser over and over and over and over... I work really fast, and I've done that by not changing much in my workflow for years. Just like some people always wear the same outfit or eat the same breakfast everyday, I feel like my tried and tested workflow allows me to focus on the code, not how I'm making the code.
That's why switching to the iPad to develop the new version of BirchTree (coming within a matter of weeks!) was hard on me. Everything in my workflow is new, and I'd be lying if I said I took it well.
Coda ($9.99) has a Mac counterpart, but I've never really used it. Sublime Text is a great, traditional text editor that is more than capable of doing what I need it to do. Coda on iOS is a shockingly good replacement for Sublime, and in some ways it's much better.
First off, Coda does a far better job of handling on-server file handling than I have ever experienced with Sublime Text. On my Mac, I have Transmit opened as my file manager and Sublime is my editor. Why I still have not been able to find a good package for Sublime to let me edit documents on my server is beyond me. Coda for iOS has a very good file manager built into the code editor. I can navigate my files quickly and open them directly in Coda.
Coda is very good at editing multiple files at the same time. It's not unusual for me to have 5 or more files I'm hopping back and forth between, and Coda is stupid fast at getting me from one document to the other with ease. Those tabs aren't just for show, they have power hidden inside them too. You can do everything from change the syntax mode, text encoding, theme, line wraps, spell checking, and more by tapping on the expand icon. It's liberating to have this much control, and I miss these features when I go back to my Mac.
Not all is rosebuds and blue skies though, as Coda has quite a few issues that make it less than ideal for all circumstances. First, the app is very prone to crashing. I've had quite a few crashes that I just can't explain. The app will simply stop responding at random points while I'm typing and not respond until I force quit and restart the app. I can also get it to crash every time when trying to paste in HTML formatted text that I copied from a web page in Safari. It's not a deal-breaker, but it is a frustration that comes up way more that I expect from an iOS app.
Speed will be another concern for experienced developers. I do feel a little slower developing on iOS. It's nice using iOS 9's split screen to have a Safari window open on the side, but it's also limiting compared to the Mac experience. I miss having a full-size browser next to a full-size text editor. This would be mitigated a bit by the iPad Pro, but it's a little cramped on my iPad Air 2. Tabbing between Safari and Coda in full screen is too slow for my taste.
While we're talking about speed, it's also a little slower navigating documents than I'm used to. I prefer touch controls for most things, I do miss the mouse for moving around documents and some text selection. iOS's built in two-finger cursor control mitigates this, but you lose that feature when using an external keyboard. It's not bad, but I'm having to relearn some muscle memory I've built up.
And then there's customizability, which I know a lot of developers hold dear. There is little that you can customize in Coda for iOS, especially compared to Package Control for Sublime Text. This isn't a huge deal for me, but I could see how many developers would be worried about this limitation.
Once all is said and done, Coda is a great editor that holds its own against even the best editors for OS X. I love this app, and would enjoy it even more if they can squish these crashing bugs in a future release.
Textastic $7.99 is a solid editor that reminds me more of Sublime Text, but it only works with local files, so it's less useful for my needs. Still, I'd be remiss if I didn't at least give this app a shout out.
Transmit and general file management
A website isn't just text and you'll eventually need to upload and move files around as you work. Transmit ($7.99) is a fantastic app on the Mac and it's truly amazing on iOS. You can use the app's browser extension to save files from the web and upload them directly to your servers. That was a huge limitation in the pre-iOS 8 world, but modern iOS and Transmit make finding a file on a website and getting it to your site a breeze.
Beyond simple "save item here" or "move file there" actions, Transmit also supports some additional actions such as decomposing ZIP and RAR files. This has allowed me to download custom fonts in Safari and move them onto my server so I can call them in a stylesheet later. It all works better than you would expect, and is surprisingly heavy lifting for a supposed "simple" OS.
But while Transmit does a formidable job of getting files where they need to go, it is simply not up to the task of keeping up with the Finder and Transmit for Mac. In building this site, I used my iPad for more than half of the development, but I sometimes had to break down and just boot up my Mac to get some more difficult file management completed.
I'm not the guy to ask about this, since I'm more a designer than a low-level developer, but there are some decent terminal apps on iOS. Panic has their own called Prompt ($7.99) which is supposed to be very good, but I went with the $1 SSH Terminal app which got the job done for me. I was able to log into my server, make some quick changes, and get out without any frustration.
Again, I'm not the person to ask about anything more advanced, so I won't even try. Just know that if your main concern is being able to do relatively normal functions, you can definitely do them from these apps.
I think the big takeaway for web development on the iPad is that you can do it, but it's not always better. Coda is an amazing app, and is something I wish I could run on my Mac (I hear the Mac version is a bit different and is less updated). My big concerns of writing and navigating my code is more indicative of developing on a 10" screen than the limitations of iOS. I would like some way to move the cursor around a document while using an external keyboard that is a little more efficient, but that's a solvable problem.
The bigger issue with moving your entire workflow to iOS is with how file management is handled. Transmit does a wonderful job of managing your remote files, but the lack of a great local file system hampers the process right now. I understand that the future is all about not having file systems, and I think that's the right way to go, but in the current realities of web dev, having something more capable on iOS would be a huge advantage.
All this said, I think that iOS is a great platform for maintaining a website. This site, for example is managed almost entirely from an iPad and an iPhone. If you are looking to replicate your entire workflow on iOS, you're going to be disappointed. However, if you are willing to make a few changes and be a little clever sometimes, I think you'll be surprised just how much "pro" work you can get done from an iPad.