Who's not a fan of animated GIFs? But it's a pain to collect, organize and get easy access to a URL when you need a cheeky reply to something benign on the Internet.
I've been a very happy customer of both CloudApp and Droplr in the past. But I always felt like I wanted to own and control more of how I shared images, text and files. I have my own server through Webfaction and I'm familiar enough with using S3 that I've used it for sharing trivial stuff in the past. But it was always hard to manage this stuff from iOS. That all changes with Transmit for iOS.
Transmit is a beautiful FTP client, which is a wonderfully unnecessary feature.
As with every Panic product, the design is a hallmark of Transmit and they've gone the extra mile to make it all work intuitively. The animations are well considered and appropriate but also unique and interesting. For example, file uploads present an animation reminiscent of the 80's video game Tempest. It still makes me happy when I see it.
The one unique design choice that I'm not such a fan of is the drag and drop. It feels a bit too tedious to tap, hold and drag a file to perform an upload from the local file storage. Even if I don't love the effect, there's no way I can knock Panic for attention to detail. It looks lovely.
Transmit for iOS supports all of the connection types I care about. SFTP and S3 are the sources I use most. Here's a full list of the connections available in Transmit:
- FTP with TLS/SSL
- FTP with implicit TLS/SSL
- WebDAV HTTPS
- Amazon S3
Setting up a source is simple and if you already use Transmit for Mac (why wouldn't you) then it's even easier. I exported my Transmit favorites to Dropbox and then opened the Dropbox app for iOS. I selected the file and then used the sharing sheet to send the file to Transmit for iOS.
Turn on Panic Sync for iOS and all of the favorites are kept in sync across the iPhone and iPad.1
Diversion: Setting Up S3 For File Sharing
Transmit also supports S3 so even if you don't want to setup an FTP server, you can get a pretty darn cheap way to share links to files.
First, go signup for an AWS S3 account. It'll probably cost less than a dollar a month.
Next, create an S3 bucket that makes sense to you. It needs to be unique to AWS so I recommend a dot notation. I use custom domain redirection so it looks like my links are coming from Macdrifter.com but the bucket is actually named share.macdrifter.com. Whatever you choose, you'll need to set the S3 bucket preference to enable static web hosting.2
I have some specific folders in my S3 bucket. For example, I keep all my animated GIFs in one folder to make it easy to find them all. It's totally up to you.
To make sure every file you upload to S3 is visible to the world, you'll want to add a bucket policy. Look in the "permissions" and click the "Edit Bucket Policy." Here's the most basic policy that does this:
That's it. The files you put in S3 are now available on the Internet.
Setting Up Transmit for S3
I created a new Transmit favorite for the S3 bucket. You'll need your AWS Access Key and Secret which are pretty easy to generate.
The real trick here is to define the URL in the settings. If you're not using a custom domain with S3 then it should look like this:
Transmit makes entering the default path ridiculously easy. If you already have the login credentials entered then Transmit provides an option to browse and select the desire entry point for the connection.
Now you're primed and ready.
Transmit for iOS does something that even Diet Coda didn't: it provides sorting options. For my image folder, I want it sorted by name but for my connection to my blog posts, I want it sorted by modification date. Transmit gets this right.
File access in Transmit is just about perfect. Tapping a file shows a preview as well as various file attributes. If it's an animated GIF then it shows as intended, animation and all. If it's a text file then it shows a nice preview.
Files are renamed right inline. No need for an editing mode. File permissions are edited with a beautiful panel full of information and options.
Below the fold is where the action happens. Remember setting up that base URL for the S3 bucket in Transmit? Here's the payoff. You can copy the direct file URL suitable for sharing pretty much anywhere.
Navigation in Transmit is a delight. I really like how the entire navigation tree is shown while moving around. Jumping back up several levels is simple.
And Then It All Changed
With iOS 8, Transmit brings super powers. The Transmit extension is wonderful. When I find something on Twitter or the web, I can select it and send it right to an FTP or S3 location without ever needing to download. The Transmit extension pops up and asks for me to choose a destination. I have all the browsing features of the full Transmit app. The only thing I can't do is rename the file as I'm uploading although I could just download the file locally to Transmit and rename and upload later.
Uploading images from Tweetbot couldn't be any easier on iOS 8. Tap and hold on the image and choose the Transmit extension. Next, select which favorite to use. Transmit logs in, uploads and then returns right to Tweetbot.
One of the things I like about the alternative iOS browser iCab is that it has an excellent download manager that far outperforms Safari. For example, if I want to download an mp3, it's hard to beat iCab. I tap and hold to download to the iCab file storage. From there I can easily send files into Transmit with their iOS 8 extension.
What's Not Ideal
There are a few of things I'd really like to see added to Transmit for iOS. First, is an option to tap and hold a file to copy the URL (or a similar quick action). I'd also like per-favorite sorting. The sorting option is global to all connections so I end up toggling back and forth. I'd really love an option to rename a file when uploading.
As mentioned, I'm not a big fan of the drag and drop interactions in Transmit. It feels fine and is perfectly usable but it's non-standard and there are easier ways to move a file.
Strangely enough, I feel like I want Dropbox, Google Drive, Evernote and all of my other destinations to be accessible with Transmit. It would just make it more flexible and a one-stop shop for moving files around. It also makes it easier to explain than an FTP client.
I'm in serious like with Transmit for iOS. It's not perfect, but it's pretty darn close. It's a joy to use but there's an extraordinary amount of nerdy power hidden inside. It's so close to perfect, if I took it to Vegas, I might accidentally marry it.
Transmit for iOS | Universal | $10
Presumably there is a update coming for Transmit on the Mac to enable the Panic Sync. ↩
If you're going to setup a CName on your domain, then make sure your S3 bucket is setup like a static Web site and has an index and error file defined. Someone will invariable hit your main URL and you want them to get an index.html served. My index.html on my S3 bucket just redirects to a Macdrifter 404 page. I also have a robots.txt to keep Google from indexing. ↩