This week's sponsor

Tweetbot for iPhone Review

I remember when I bought my first iPhone, Twittelator was the first Twitter client I downloaded from the App Store. Back then I wasn't writing for MacStories, and I didn't know about Loren Brichter's Tweetie. I used Twittelator for months: it was a great app that had everything I needed. I saw no point in switching to another application, let alone start browsing the App Store looking for alternatives. Twitter was a young platform in the middle of expansion with lots of downtime issues, there were no lists or location features and the concept of "retweets" was just taking off thanks to the initiative of some users not affiliated with Twitter at all. For what I had to do, Twittelator was fine. Then I started MacStories, and the hunt for more compelling, alternative, different Twitter apps began.

Twitterrific came after Twittelator for me. I used it for a couple of months and then finally purchased Tweetie -- which had seen a terrific rise in popularity thanks to an elegant UI design, a fast engine and a simple, yet powerful set of features. I fell in love with Tweetie: it was stable, fast, intuitive, continually updated. It received the support of the entire Apple community, and it quickly became a standard among iPhone geeks to have Tweetie on a device's homescreen. The rest is history: Tweetie 2 shipped and revolutionized the ecosystem with pull to refresh, gestures, a refreshed interface and, overall, the richest feature set available on the market. In the meantime, Twitter as a platform was growing to accommodate more users, more servers and -- as a side effect to media starting to use the service to deliver news -- more responsibilities. Without going back through all the changes that happened at Twitter HQ between 2009 and 2010, you might remember when the company announced they were buying Loren Brichter's Tweetie and putting him in the position of lead mobile developer. Twitter rebranded the app as "Twitter for iPhone", Tweetie 2 for Mac disappeared from our radars to eventually come back as Twitter for Mac. Twitter as a company has changed (so much that they don't even want too many unofficial clients anymore), but the core concept of the service stays the same: it's all about sharing content in real time. That hasn't changed at all. If anything, it got better.

This is why I'm looking back at the 2008 - 2010 period with a bit of nostalgia mixed with excitement for what's next: the developer community has always driven Twitter's innovation on mobile platforms. Twittelator, Twitterrific, Birdbrain, Tweetie, Osfoora, Tweet Library: these are some of the great apps that have changed the way we check on Twitter with our iPhones and iPads, and have created new uses and interfaces for a service that was initially meant for sharing short status messages. You can't say this for many companies nowadays, but third-party developers have been the greatest contribution to Twitter in the past three years.

On the other end of the spectrum, there's the personal aspect of the story. As Twitter was growing in 2009 and 2010, so was this website. Of course I'm not trying to compare Twitter's growth to MacStories' one -- that would be silly -- but I'm saying I was there when all those clients started coming out in the App Store, when Tweetie 2.0 was released, when Twitter launched its criticized iPad app. Those are pretty big milestones in the history of technology, moments of innovation that a bad ranking on Google Search can't take away from us. I have installed dozens of Twitter apps, I have seen developers struggling to come up with the right features at the right time, or the best design to appeal new users in a market that was getting crowded very quickly. And you know, there are actual people behind the indie Twitter apps we usually cover -- not faceless companies looking for easy funding and a solid exit strategy. From a blogger's perspective, the adoption of Twitter clients and the rise of Twitter as a real time communication service are quite possibly the most notable changes that happened in the tech scene in the recent years.

But as the timestamps on our tweets teach us, stuff in the real-time world gets old in a matter of minutes. And when something gets old and fails at keeping our attention span active, it's time to make room for the new. But make no mistake: if there's anything I've learned from iOS developers, it's that innovation doesn't stem from a "New & Noteworthy" label in the App Store. Shipping a new product isn't a proxy for innovation. It takes a lot of ideas, willingness to change the rules and, most of all, a real "leap of faith" to release something you're not sure it's ever going to catch on, but you feel in your heart and tired coding fingers was worth the effort.

Innovation comes from the stubborns that don't accept what's been given to them.

Innovation is a big word when it comes to Twitter clients. The market has been saturated by thousands of copycats that don't add any new functionality to Twitter as a platform or service for iOS devices; the official applications are generally fine for average users who are looking for a way to tweet from their iPhones and iPads and Macs. Being an innovator in the mobile Twitter scene today means being able to disrupt what's already available. I can understand why that could be a risk not so many devs are willing to take, especially considering Twitter's aforementioned update regarding third-party clients. It's a tough call.

You may be wondering why I've already written 900 words to introduce you to the latest application from Tapbots, makers of App Store hits like Pastebot and Convertbot. I mean, it's not a secret that I've been testing Tweetbot over the past months and that Mark Jardine and Paul Haddad were working on a Twitter app for iPhone. But I believe sometimes a proper introduction is needed, just like a beautiful landscape needs to be admired and examined before a shot. In the case of Twitter clients, looking back at the platform's history is necessary.

Innovation is a risk. True excellence, on the other hand, is exclusive to those who took risks in the past and know what they're facing now, when a new risk comes forward.

Tweetbot is the app I've been waiting for: an excellent innovator of the Twitter platform. My new favorite Twitter client.

There's a lot to do in Tweetbot, and several features to talk about. After months of development and testing in a private beta group, Tapbots has managed to release the most complete and functional Twitter client currently available on the App Store -- a powerful application that is Tapbots' take on the whole Twitter experience. You can think of Tweetbot as Pastebot applied to your timeline: a beautiful app that shines on the Retina Display thanks to Mark Jardine's usual attention to pixels and taste, combined with a set of functionalities and new ideas that make Tweetbot the most innovative and disruptive Twitter app for iOS I've seen since Tweetie 2 came out years ago. I'm not afraid to call Tweetbot the "best Twitter client available for iPhone", as in these weeks spent testing it I've noticed a clear improvement in the way I can access and read Twitter from my iPhone, as well as being able to get actual work done on it.

Settings

So let's start from the main screen. Tweetbot allows you to set up multiple Twitter accounts, and switch between them from the same page -- which also contains a Settings tab to customize your Tweetbot experience and the various sharing options implemented by Tapbots. Adding a new Twitter account doesn't take you to an embedded Twitter web view, you just have to enter your username and password and wait for the app to authenticate you. One little touch I'm sure a very few people have noticed so far: if you enter the wrong username or password, the login popup will "fall" off screen. Try it. It's this attention to detail that make Tweetbot a great app.

The Settings are organized in General preferences that apply to every section of the app, and account-specific settings that you can tweak and customize for each account you've added in Tweetbot. I want to start from the Settings as I believe Tapbots has nailed this aspect of the app by providing many options that enable you to deeply personalize the experience, and make your Tweetbot different from someone else's -- especially when it comes to touch gestures and sound effects. First off, Tweetbot can post tweets in the background: if you leave this preference set to "off", Tweetbot's new tweet window will stay on screen until a tweet is posted. But if you activate it, you'll be able to instantly return to the timeline or whatever window you're in after you've pressed the Send button. What's the benefit? Simple: when you're uploading media like videos and photos, the posting process might take a while. With background posting, Tweetbot gets out of the way, does its job in the background so you can keep interacting with the app while a tweet is being processed. Other options in the General settings include sounds, font size, display name, and triple tap preferences.

So here's what Tweetbot is doing to be the "innovative client" I described above: instead of simply relying on graphics to visually communicate the status of the timeline and your interactions with tweets and users, Tweetbot makes great use of sound effects to let you know when a tweet has been posted, when new ones have arrived, or when you've successfully retweeted something. It may sound strange at first, but sounds add a whole new layer to Tweetbot -- think of Pastebot's sound notifications for copy and paste actions and you get the basic idea. Yet in Tweetbot almost everything was given a proper sound effect, and quality is top notch. In the sound settings, you're given the option to choose whether you want effects for all actions, notifications only, or nothing. Why are sound effects such a big deal? Because I've found myself instantly recognizing what was going on in the app without even looking. I can scroll my timeline, hit retweet on something, keep scrolling and a few seconds later hear a sound effect and think "Hey, that retweet went through." Again: it's all about the details, and rethinking interaction schemes to innovate a platform that's been stagnant for too long.

I appreciate the fact that you can set font sizes and display users as real names, but I want to focus on tap actions. Like in Twitterrific for iOS, you can perform a triple tap on a tweet to do something. In Tweetbot, you can configure this triple tap to mark a tweet as favorite, initiate a reply, retweet, or translate. I keep mine set to "mark as favorite", and I love it.

Last, there are the account settings. In this window you can basically select all the additional services you want to use with your Twitter account, and Tweetbot has a great selection of URL shorteners, image / video upload websites and read later services to choose from. Instapaper and Read It Later are supported, but there's no Readability integration yet. For video upload, you can choose between Mobypicture, TwitVid and yfrog. Mobypicture and yfrog also work as image services, with the addition of img.ly (which I use), Plixi, Twitgoo and TwitPic. In the URL shortening section, you can log in with your CloudApp account (my favorite), bit.ly (no authentication), goo.gl, is.gd, j.mp, Linkyy, l.pr and TinyURL. If you select a URL shortening service, all the links you post in Tweetbot will be automatically shortened.

And that's it for the Settings. Like I said Tapbots worked really hard to get as many options as possible out in the first version, and expect more coming in future updates. Right now, these settings help a lot in customizing how Tweetbot works for you, but it's when you get to the app's timeline that you notice why Tweetbot is, indeed, different.

Let me get back to the subject of taking risks for a minute: how do you break the rules and conventions in a Twitter client for iPhone, a well-established category that hasn't seen real innovations since the inception of swipe actions and pull to refresh? By building on those innovations, and trying to come up with something new that can "fix" the issues many people had with Twitter apps in the past. At the same time, you have to make sure your product is still accessible and easy to use, because new features added for the sake of being original at all costs can turn out to a terrible idea. This was the risk -- the challenge Tapbots had to accept. And with the final product in our hands today, I have to admit the Twitter experience offered by Tweetbot is perfect. At least for me, I haven't seen any other app that's so well executed, beautiful, fast and useful for what I have to do with Twitter.

Timeline & Actions

Tweetbot's timeline is based on three key features: lists, gestures, and actions. Together with these features, there are dozens of additional touches like pull to refresh, timeline resume and customizable tabs that are the proverbial icing on the cake. In Tweetbot, any Twitter list can become your main timeline in two taps. With a button in top toolbar that separates the "back" and "new tweet" buttons, you can access all your private / public lists you've created or subscribed to and make them a timeline that will replace the people you follow until you select the main Timeline again. Let's say I want to temporarily switch to a timeline based on a list collecting people that tweet about RIM: I tap on the timeline button, select the list, and there my main timeline is replaced by the RIM folks. I can go back at any time, choose lists -- even create new ones and add users to them thanks to Tweetbot's full list management. Other Twitter clients in the past tried to play around with this concept of turning lists into timelines, but none of them got close to today's implementation in Tweetbot. It's simple, fun, and adds value to my productivity.

The timeline is organized in tabs: people you follow, replies, direct messages, and two customizable tabs. Instead of putting a tab for favorite tweets and then an obscure "More" tab to let you navigate between other sections like most Twitter clients do nowadays, Tapbots created a system that allows you to access 4 sections using 2 tabs. Once you try it, it's genius: the last two tabs in the bottom bar have little arrows next to the main icon, which means these tabs can be "expanded" to reveal more sections. So let's say Tweetbot defaults my fourth tab to Favorites but I want to put Lists in there, all I have to do is tap & hold the tab, and choose lists (or the third item, retweets). It's a tiny, translucent menu that contains icons for the additional sections you might want to open and -- guess what -- it's got its own sound effect as well. In my opinion, this is incredibly better than having a More tab to manually customize the contents of the tab bar -- Tweetbot has 5 tabs, but they're virtually 9. Also, the selected tab has a pressed state, and a blue highlight to indicate new tweets or direct messages. It looks great, it works equally well. Direct messages can be marked as read with a double tap, and they're presented in threaded conversation views. Thumbs up.

To quickly scroll to the top of the timeline, you can tap on the iOS status bar as you would expect from any iPhone app. But as you do that, you might notice something different about Tweetbot's timeline. First, there's a search field above the first tweet that enables you to filter down status updates based on specific keywords. If you keep scrolling up, you will stumble upon Tweetbot's version of the mythical pull to refresh gesture: it's got a spinning blue indicator that visually tells you what's going on, and a timestamp with the last time you've refreshed the timeline. When the timeline is successfully updated, Tweetbot plays a "ping" sound but doesn't automatically scroll to the top: instead, it places a blue bar between the last tweet you read and the newly fetched ones telling you how many new tweets you have. Swipe up, and there you have some new tweets to read -- refresh again, and the previous bar goes away making room for a new one indicating new tweets. It's a lot simpler than it sounds from a written review. Combine pull to refresh and the "new tweets" inline notification with Tweetbot's perfect resume function and you get the idea of why I love this app so much. You know when you leave Twitter for a few hours and you come back to find hundreds of new tweets, right? To me, that usually happens in the morning when I wake up and fire up Twitter for Mac. Now, in most Twitter apps for iOS the action of loading past tweets isn't well implemented at all: you have to manually scroll to the bottom, and keep scrolling until an API limit is reached and the app can't get any more tweets. In Tweetbot, you get a visual "break" between recent tweets and past ones in the form of an empty dark grey bar with a + icon in the middle. When you tap on that, the app begins loading tweets, "opens" the timeline with a cool animation and puts loaded tweets in there. Your position is maintained, and the process takes seconds even on 3G. In my tests, Tweetbot has always been reliable at keeping my exact position in the timeline even after days, and it always loaded new / past tweets correctly. For work purposes, this is simply great: I don't lose my position in the timeline, and I don't lose tweets. It's a win-win feature.

The best thing about Tweetbot, however, isn't the timeline itself: it's how you can do stuff with tweets that impressed me since the first beta I installed on my iPhone. It's how you can perform actions on tweets easily, quickly, with just a few gestures or taps without being forced to leave the timeline at all. And when you do need to leave the timeline to open another view that can't be displayed inline (for obvious reasons), Tweetbot makes sure you get there with ease. Everything in Tweetbot is intuitive. A big feature of version 1.0 is support for gestures: you can swipe right on a tweet to view a conversation, or swipe left to view "related tweets" -- namely, all replies to the author. These features are useful and fun to use for three reasons: they have their own sound effects and indicators next to the main tweet; they're fast; they're so addictive you'll wonder why didn't anyone else think of them before. Ever since I started using Tweetbot, I tried to go back to other clients and I immediately missed Tweetbot's quick way of displaying a conversation with a single swipe. This is a functionality you can't understand from the screenshots -- you have to try it and let it grow on you.

And then there's the action drawer. This is hands-down my favorite feature of Tweetbot and the one that's helping me save a lot of time when dealing with tweets related to MacStories or material I want to write about. It works like this: tap on a tweet, and the timeline collapses to reveal a drawer "beneath" a message. This action panel contains buttons to reply, retweet, mark as favorite, open the detail view for a tweet or "do stuff." The gear button, in fact, allows you to send to a read later service, post a link to the tweet, copy an entire tweet, email it or translate it. The "copy tweet" functionality is the one that I've been using the most over the past months, as it enables me to copy tweets from the @macstoriesnet account and re-post them as they are. To dismiss the action drawer, tap again on the tweet. Why is Tweetbot's action drawer any better than Twitter's swipe-to-reveal menu? First, it doesn't hide a tweet and it's unobtrusive in the way it shows up on your timeline. More importantly, it contains functionalities that several clients only let you access from a "sharing" button in the tweet detail view, which in Tweetbot is entirely optional and doesn't need to be opened. These actions can also be activated with a tap: tap & hold on a link to send to Instapaper, tweet the URL or open in Safari; tap on a link (while the action drawer is open) to view it in the built-in web view. On the other hand, if you tap & hold on a tweet you'll get the same options from the gear button. But there's more: tap&hold on a profile pic to check on follow status, unfollow, add to list, DM and report for spam; double tap to open a user's profile. This view gives you all the information you need about a user: location and website (both tappable), picture, bio, followers, following count and lists. You can block users within Tweetbot, if you want. You can also view everyone's tweets, replies, favorites and lists without leaving the app. Furthermore, the "find people" feature in the Search tab lets you find users and follow them with literally two taps. Of course, you can browse trends, interests and saved searches, too.

Last, there's the tweet compose window. Tapbots went for a minimal approach here, with a simple design focused on letting you get a tweet out as fast as possible. However, there are many options behind the curtain: you can save and attach drafts (I love this); switch accounts with a single tap thanks to the user button at the top; you can upload photos or videos or -- here comes one of the many big features of Tweetbot -- remove the location the app automatically gets for you and choose coordinates or points of interests instead.

Wrap-up

There's a lot to do in Tweetbot, and many little design touches and interactions I haven't mentioned. Like the way the app displays retweets, Boxcar integration, or the blue drawer that comes down from the status bar after you've posted a new tweet. They play an important role in the app, but they're all part of a much sophisticated plan when you look at the big picture. Tweetbot comes from developers who decided they wanted to make the perfect Twitter client with a beautiful user interface, an amazing feature set, and an innovative approach to timelines. That's what I call a risk. A challenge that's been in development for more than a year, a huge risk considering Twitter's intention to undervalue "regular clients" and focus on new uses for the platform.

Yet, Tapbots wanted to make a better client.

They succeeded. Tweetbot is everything I've ever wanted from a Twitter app: it looks great, it's fast on WiFi and 3G, it innovates in several aspects that have been regarded as "standards" from both users and developers for too long. Could Tweetbot be any better? Maybe. The developers could work on improving the speed of animations and refresh times as much as possible, or implement support for Readability and other URL shortening services. But as far as the Twitter experience goes, Tweetbot has got everything I'm looking for.

So go download it now. Tweetbot was a risk for Tapbots, but they managed to build the best Twitter client for iPhone I've ever had.

Federico is the founder and Editor-in-Chief of MacStories, where he writes about Apple with a focus on apps, developers, and iOS productivity. He founded MacStories in April 2009 and has been writing about Apple since. Federico is also the co-host of AppStories, a weekly podcast exploring the world of apps.