Twitterrific Rises

Gedeon Maheux for The Iconfactory, responding to Twitter’s new guidelines for third-party developers:

For the past several months, we’ve been working on a major update to Twitterrific that we’re very excited about. There were concerns that this new version might end up on the cutting room floor prior to Twitter’s announcement, but after reviewing the new restrictions and speaking with the team at Twitter, we’re pleased to report that our development plans remain unchanged.

We’re re-doubling our efforts to bring you an all-new version of Twitterrific: one that complies with Twitter’s new guidelines and makes reading and posting to Twitter even easier and more fun.

I have been using Twitterrific since my first day on Twitter. I’ve tried other clients at times, such as Tweetie and Tweetbot, but I’ve always come back to Twitterrific.

For me, the reasons I have always preferred Twitterrific are its ease of use, unified timeline, unified feel across Mac & iOS, and chiefly, its beauty.

I can’t wait to see the next take on the first and best Twitter client I’ve known.

Also, let’s not forget how important third-party clients have been to Twitter, and how many things Twitterrific did first.

Tweetbot for Mac Public Alpha

Tapbots have released a public alpha of Tweetbot for Mac. If you’ve ever used either of their iOS versions of Tweetbot, you’ll feel right at home with it on your Mac, as Tapbots have maintained consistency.

The public alpha is free to download for now, but it is far from a finished product. Expect bugs, crashes, and incomplete features. I imagine that when it hits 1.0, it will be a paid product in the Mac App Store.

¶ (In)Consistent Experience

About a week and a half ago, Twitter’s Michael Sippey penned a letter on Twitter’s developer blog about the service’s ambition of delivering a consistent Twitter experience.

A lot of speculation has swirled around Sippey’s post the past week, primarily because of this paragraph (emphasis mine):

Back in March of 2011, my colleague Ryan Sarver said that developers should not “build client apps that mimic or reproduce the mainstream Twitter consumer client experience.” That guidance continues to apply as much as ever today. Related to that, we’ve already begun to more thoroughly enforce our Developer Rules of the Road with partners, for example with branding, and in the coming weeks, we will be introducing stricter guidelines around how the Twitter API is used.

Why is this important to you and me? Well, it probably isn’t if you are happy with Twitter’s official clients. But for those of us who use third party clients like Twitterrific, Tweetbot, Echofon, or Plume — this potentially spells disaster for our favorite client.

I see this thinly veiled threat from Twitter being fully revealed in one of two ways:

  1. Third-party Twitter clients will have to introduce Twitter’s promoted tweets (ads) into the stream, and possibly modify how they present tweets to be in line with Twitter’s guidelines on Twitter Cards.
  2. Twitter kills all third-party clients by revoking their API access completely.

If the first option is what happens, I don’t see that as a bad thing, really. Twitter has to pay its bills, and they’ve chosen to do that through ads (I, honestly, would have paid a subscription for Twitter). Third-party clients get to use Twitter’s API for free, and many of them are paid apps. So, third-parties are making money for themselves while not having to provide direct revenue to Twitter.

I can live with ads in the tweet stream. Heck, if you use the official client, you already do.

Now, the second option. This is the tough one. I honestly don’t know if I could stomach using Twitter if third-party clients were killed. Why?

Because Twitter is a hypocrite. Here they are, claiming they want to deliver a consistent experience. But have you used various official apps from Twitter? They are anything but consistent.

The iPhone and Android apps behaves somewhat like the website experience, having both the Connect and Discover areas. However, the iPad app has hardly any of the same features as the phone apps and web. It also has a vastly foreign user interface in comparison.

And I don’t even want to get started on the Mac app, which has been neglected for over a year — its last update was on June 1, 2011. The Mac app cannot even upload an image to Twitter’s own picture service.

Now, maybe there are big updates in store for Twitter’s first-party apps that will unify the experience. But for a company that is implicitly saying it doesn’t want third-party clients in the ecosystem because they are “inconsistent”, they have been showing through history that they do not care about a consistent experience.

So let’s talk about a consistent experience. Go try Twitterrific out on your Mac, iPhone, and iPad. Everything is laid out relatively the same and the apps are updated consistently at the same time, rolling out new features to all platforms at once. If you use Twitterrific on one device, you know how to use it on the other.

The same goes for Tweetbot. Currently, Tweetbot is on the iPhone and iPad, and if Twitter doesn’t pull the third-party rug out, there will soon be a Mac version. On the iPhone and iPad, the Tweetbot experience is consistent and easy to move between one device to the next. I assume the Mac version will be very similar.

Simply put: third-party apps like Twitterrific and Tweetbot have proven they do a much better job at maintaining a consistent Twitter experience than Twitter itself does.

I know that when a company builds their product on top of another company’s product, they should expect that the rug could be pulled out from under them at any time. But it seems such a shame the way Twitter treats third-party developers, since I doubt Twitter would be half the juggernaut it is today without having been built up by third-parties in the first place.

Twitter, historically, has been largely unoriginal in how it has developed new features. Things like mentions and direct messages came from users, not Twitter. Twitter had to buy the leading third-party iPhone app (at the time, Tweetie) to offer the first version of an officially branded client. Even the use of the word tweet and associating a bird icon came from a third-party developer.

If Twitter pushes third-parties out the door, I don’t see a bright future for Twitter. The evidence shows they have little original inspiration and even less commitment to a consistent user experience.

Here's Some Ads with Your Apps

Twitter:

With our most recent app updates, Promoted Accounts are now in Twitter for iPhone and Twitter for Android. And in the coming weeks, we’ll begin introducing Promoted Tweets in the timeline on these mobile apps. Initially, a small number of users may see Promoted Tweets near the top of their timelines from brands they already follow.

This isn’t really a surprise. It was only a matter of time since promoted tweets started happening on the website.

My question is how long until third-party apps have to include promoted tweets?

Third-Parties

Back in May, I wrote some thoughts about what looked like the beginning of Twitter pushing third-party clients like Twitterrific and Tweetbot out of the service.

Recently, Business Insider interviewed Paul Haddad, the coding-half of Tweetbot maker Tapbots. I thought the following was worth mentioning:

BI: How has dealing with Twitter been, by the way? They still being awkward to developers about making clients, etc?

PH: It’s been much better over the last few months. I’m not sure they were ever harassing folks, I think it was just really bad communication. But regardless they’ve been really helpful over the last few months. The dev relations group in particular is great, I’m always pestering them with questions and bug reports.

There’s still a view out there that they are actively against third parties and I just don’t think that’s the case.

I find that to be incredibly reassuring that Twitter won’t pigeon-hole us into their single (crappy) experience.

¶ Fly

When it comes to using an app or service on multiple devices, consistency is key. This is one of the reasons I love Apple’s Mail app, as the majority of the experience is now the same on the Mac, iPad, & iPhone.

Something I use as much as — if not more than — email is Twitter. I have long shied away from Twitter’s official experience, because it is completely fractured. The iPhone app is nothing like the iPad app, neither are like the Mac app and the web is also different. It’s a whole new ball game every time you switch to a different device. Instead, I have favored Twitterrific, which offers the same Twitter experience across iPhone, iPad, and Mac.

Twitter seems to be taking a hint and has begun to roll out an attempt at a more unified experience with Fly. They have updated the iPhone and Android apps to a unified interface, and the web interface is slowly rolling out to users over the next couple weeks.

The experience is divided amongst four tabs — Home, Connect, Discover, and Me.

Home houses the timeline, where you can read tweets, view photos & videos, and follow links.

Connect takes over housing Mentions, and also pools together what Twitter is calling Interactions. Interactions shows the actions other people take related to you and your tweets, such as new followers, retweets, favorites, or list additions. Connect also integrates search for @usernames.

Discover aggregates stories, trends, and popular hashtags. It also attempts to offer stories that it thinks you’ll be interested, based on what you tweet about, where you’re located, and who you follow.

Me is the new profile section. If you’re looking for your direct messages, this is where they have been buried. This is also where you can switch accounts. A couple tips I saw regarding the Me tab on touchscreen devices:

  • Swipe up on the tab to immediately go to DMs.
  • Swipe left on the tab to immediately go to the account switcher.

I’m all for Twitter trying to get their experience on the same page. I think it is a misstep to de-emphasize DMs in favor of trends and stories (I have heard some folks say they have seen ads in the discover tab, as well).

A couple refinements I rather like so far are the feather quill in the Compose button (let’s face it, it’s cute) and the Tweet Button for websites (you can see it at the bottom of this post) has been refined and looks much better.

It will be interesting to see how the iPad and Mac apps will change. TweetDeck, a recent Twitter acquisition was also updated today with the new look and feel (and also available on the Mac App Store).

I look forward to seeing how the more unified experience pans out over the next few months. But if you ask me, I think all the innovation still resides with third-parties like Twitterrific and Tweetbot.

Twitter Parties

Lately I have noticed the proliferation of "twitter parties" on my favorite communication service, Twitter.

Here is how twitterpartyguide.com, the first result on Google when I searched for "twitter party", defines it:

A twitter party is a fast and fun virtual party, using the twitter platform. Usually held in the evening, twitter parties typically last 1-2 hours and are a wonderful way for people to connect and discuss a topic of choice. Most twitter parties have an expert panelist and party host to keep the party on topic.

And how it works:

Twitter users tweet with a specified Hashtag (#) for the party. The party host will announce the hashtag prior to the event. If you look at the twitter party calendar, parties are listed by the hashtag (#). Users use their tweet chat client to search for the hashtag and join in the conversation.

Basically, a twitter party acts as a private chatroom. Participants are focusing in on a single hashtag via search, so for the duration of that party, they only see tweets related to that topic.

I don't like twitter parties. Sure, twitter is a great way to communicate with people, but while people you follow are participating in a twitter party, you have to see their dozens of tweets about it, which are usually not following a context apparent to those outside the party.

The people I follow (or rather, followed) who regularly participate in these have often retorted to me that I should switch to a client that supports muting a hashtag. Yeah, great idea. Tell me, do any of Twitter's official branded clients support that feature? No. (TweetDeck doesn't count. Yes, it is owned by Twitter now, but it is not, as of this writing, branded by Twitter itself). When Twitter rolls this out as an official feature of the service, then this argument can be made. Until then, don't assume every client supports it.

I consider twitter parties to be spam. Their participants rarely pay their followers the convenience of announcing, "Hey, I'm going to be flooding your stream soon, you may want to unfollow for a couple hours". Instead, my time and yours is wasted by having to scroll through party-related tweets, trying to discern whether or not each one is nonsense or not.

The only real solution at that point is to sever ties with the unfollow button. Which blows, because then you do miss out on the good stuff from that person at other times — you know, the kind of stuff that made you click the follow button in the first place.

A Better Solution

Twitter is a great platform to communicate. But I don't think it is the best vehicle for large scale private chatrooms. You know what is? An actual chatroom. It is private to only those that wish to participate, doesn't disturb the rest of the community that you've established, and you can probably get a transcript for further reference.

Heck, even AIM supports chatrooms. And I know you can export a transcript for that.

Wouldn't it be easier for an organizer of a twitter party to announce a site or the name of a chatroom within AIM to host these events? That way, only interested participants are talking amongst each other, and not polluting the streams of all their followers?

Surely using a service that was designed for being a chatroom is much better suited than a service that was meant for casual conversation between two or few people at a time. Seriously, you can only tag so many people in a mention before you don't have room to say anything.

Devil's Advocate

It would be unfair if I didn't point out one criticism that twitter partiers have made against me when I have made my criticism of their parties. I often go a little on the excess with tweets when there is an Apple event.

You see, though, I often do several things leading up to Apple events:

  • I send several tweets at different times of the day prior to the event saying I will be tweeting a lot about the event.
  • I welcome people to unfollow for a day if they don't want to read my tweets about Apple's new stuff.
  • I use a single hashtag for the event, so, in case someone's client does support muting, they can do that. I don't tell people to switch clients to accommodate me.

Also, it's worth noting that I end up having these tweet splurges about once every four or five months. Not weekly. And, if you're following me, it's likely because you want my thoughts on Apple and technology, or you know me personally, which, if you do, you know that's pretty much my thing.

All of this is to say that Twitter is not the best medium for a massive private chatroom. A private chatroom, however, is. Let's not unintentionally waste our friends' time.

¶ The Writing on the Wall

I love Twitter. The service itself has connected and reconnected me with more people than I could have imagined. I have made lasting friendship with a couple folks on another continent. I have been able to candidly chat and bounce ideas off fellow writers who inspire my own writing. I have been able to help with the development of some of my favorite apps on iOS and Mac OS. I have met many of my local friends through Twitter, and a few of those friendships have developed into bonds similar to family.

To say that Twitter has become a new communication medium that has changed and will continue to change lives is an understatement. But some of the fun of Twitter is fading. And that's because the folks in charge of Twitter1 don't seem to be fostering a community and ecosystem anymore.

Tweetie — The Harbinger of Doom

Those who have joined Twitter in the past six months or so likely don't realize that Twitter hasn't always had its own official app. In the old days, Twitter's official ways to access the service were via the website, the mobile website, or text message. Much of Twitter's popularity was garnered by third-party apps such as Twitterrific and Tweetie. Twitterrific was the first on the scene, and Tweetie was a late-comer, but quickly became the darling of many users.

In April 2010, Twitter acquired Tweetie and rebranded it as Twitter for iPhone, making it the official Twitter client. Over the next year official clients popped up for Blackberry and Android. The iPhone app became universal with the addition of an iPad interface, and the Mac version of Tweetie was updated and rebranded as Twitter for Mac.

This foray into official apps was the first blip on the radar.

A Shot Across the Bow

Back in March, Twitter's Platform/API Leader Ryan Sarver posted a note to third-party developers about the future of fully featured third-party clients.

Twitter will provide the 
primary mainstream consumer client experience on phones, computers, and 
other devices by which millions of people access Twitter content (tweets, 
trends, profiles, etc.), and send tweets. If there are too many ways to use 
Twitter that are inconsistent with one another, we risk diffusing the user 
experience.

and

Developers have told us that they’d like more guidance from us about the 
best opportunities to build on Twitter. More specifically, developers ask 
us if they should build client apps that mimic or reproduce the mainstream 
Twitter consumer client experience. The answer is no.

The day that was posted was not a good day to be a developer of a third-party Twitter client.

The x & O of Auth

A year ago Twitter made a change in how third-party apps access the Twitter service. Instead of Basic Auth, where a user supplies their username and password and an app stores both of those credentials, the service moved to OAuth, where a client receives and stores an access token linked to the user's account. This token can be revoked at any time from a user's settings page on the Twitter website. So OAuth is nice in that revoking access from a client is much easier if needed.

The problem a year ago was that OAuth requires a web view for the user to give permission for the client to access the Twitter service. It's janky and ugly and doesn't work very well on a smartphone, in my opinion.

Third-party developers voiced these same concerns, so Twitter adopted xAuth, which allows a developer to make a beautiful interface that asks for the user's username and password, and uses that momentarily to request the OAuth token. The token is then stored, and the user's credentials are not. This is fantastic for third-party clients. All the security benefits of OAuth with the ease of Basic Auth. It's a win-win-win for Twitter, developers, & users.

Well, one week ago Twitter announced (developer oriented version here)that they were removing direct message access from xAuth, and all full-featured clients would have to switch to the problematic OAuth web interface if they wanted to continue giving their customers direct messages.

John Gruber comments:

That’s good news on the surface — it means you can use services and apps that require your Twitter credentials without granting those services/apps access to your private direct messages. For services/apps that are entirely public, this makes sense. But there’s a big shit sandwich attached: Twitter is implementing this change by requiring all third-party clients that want or need access to direct messages to use the cumbersome OAuth login flow for authentication.

[…]

Thanks to OAuth, you never need to give these sites your Twitter password, let alone allow them to store your password. Instead, they forward you to twitter.com, you grant them access to your account there, and then twitter.com forwards you back to the website where you started. It’s common sense: a web-based authentication flow works naturally from within a web browser. But the same web-based authentication flow is jarring for native apps. When you open a native app — Mac, Windows, iOS, Android, WebOS — you don’t expect to be forwarded out of the app and into your web browser. Developers can alleviate some of the context switching by using an embedded web view inside their native app for the OAuth authentication handshake, but at that point, why not just use xAuth and simply allow the user to enter their username and password in a native dialog box? So long as you remain within the app, there’s no security advantage for OAuth in an embedded web view over xAuth — but there’s a huge decrease in usability, simplicity, and clarity to the user.

[…]

And OAuth is even worse for setting up multiple accounts in a native client (and good multiple account support is surely one of the leading reasons to use a native Twitter client instead of the twitter.com web site). Because then, not only do you need to go through the cumbersome OAuth login process for each additional account, but you must first sign out of the Twitter account you’re already signed into in the web browser. The twitter.com web interface is inherently single-account. To use a different Twitter account in the same web browser, you have to first sign out, then sign back in using the other account. With xAuth, to add an additional account you merely enter another username and password. With OAuth, you have to start by signing out of whatever account you previously signed into. You only have to do this when first creating each new account in the client app — the app can save the OAuth credentials for multiple accounts — but it’s still far more complicated and annoying than simply entering a username and password.

The whole article is worth your time. There's a lot of gold in there.

To me, this move is solely to make life difficult for third-party developers. Even though I don't think Twitter would be nearly as successful today if the third-party clients hadn't made Twitter such an attractive medium, I also don't think Twitter owes developers in the long-run. It is their platform, after all. Same goes for Apple and Android, etc.

I do however, think Twitter has been rather duplicitous. Why have the annual Chirp developer conference when the company obviously does not want to foster an ecosystem? It doesn't make much sense.

Sadly, I don't think we will see fully featured third-party Twitter clients by this time next year. I think Twitter will cut them out. Which, in my opinion, will also cut out innovation on the Twitter service as a whole.

A Symbiotic Relationship

Throughout the past few years that I have been a Twitter user, I have always used a third-party client as my primary access to the service. I started out back in the day with Twitterrific, which was only available for the Mac (the iPhone didn't exist yet). My usage exponentially took off after I got an iPhone 3G on day one and Twitterrific for iPhone was available that day on the App Store, which also debuted that day. I had a brief affair with Tweetie on my iPhone for a couple months until Twitterrific updated with a lot of nice new features. And my Mac saw the occasional use of Tweetie for Mac, though I used my iPhone more because I love Twitterrific. And now Twitterrific is available using the same experience on iPhone, iPad, & Mac. So that is where I am happy.

Tweetie, however, was very great on both the iPhone and Mac. But the quality of both apps seems to have degraded since the developer sold out to Twitter. They may be the official apps, but they were both more stable and a better overall experience when Loren Brichter worked alone on them.

Now that I have established ad nauseum my preference for a third-party app, let me tell you why: that's where all the innovation has come from.

I'll start with a few that Craig Hockenberry, lead developer of Twitterrific, came up with regarding his app:

  1. First use of “tweet” to describe an update (see page 86 of Dom Sagolla’s book.)
  2. First use of a bird icon.
  3. First native client on Macintosh.
  4. First character counter as you type.
  5. First to support replies and conversations (in collaboration with Twitter engineering.)
  6. First native client on iPhone.

There are a number of the central themes of Twitter that came from one third-party app. Not to mention that @-replies and Retweets2 were innovated outside of Twitter itself as well.


My point is that third-party clients have been an important part of the Twitter experience. For many third-party clients were and are their main experience with Twitter.

Twitter gave developers a service to build upon, and developers in turn gave Twitter a user base and ideas on how to make the service even better. Many of these ideas I don't think Twitter would have implemented on their own. And now it just comes off that Twitter is stabbing developers in the back.

If you've seen the first Iron Man movie, Twitter sure seems a lot like Obadiah Stane, and developers seem like Tony Stark. And Obi is trying to kill off the golden goose that churns out invention after invention.

1 At least in charge this year. The captain's chair has a high turnover rate at Twitter.
2 Crudely implemented in clients first. Twitter came up with a better solution later, but they likely would not have implemented official retweets with the classic style becoming popular.

Making the Case for Ollie

Ben Brooks doesn't like the new Twitterrific for Mac. I know, I know, I'm a Twitterrific die-hard. Ben has some good points, but I find a lot of his criticisms to either be unfounded or, well, nit-picky.

After you post a tweet your Twitter stream is not updated, so you see your new tweet at the top of the old tweets. Then when Twitterrific does update, the new tweets jump into position where they should be in the timeline. Your new tweet, that was at the top of where you had read, is now mixed in with a jumble of other tweets. You could get used to this, but you shouldn’t have to get used to non-sense like this.

Agreed. I am used to this behavior of the app, but I would love for the stream to update.

The title bar with all the icons is very imposing and throws off the balance of the entire app. Even with all icons removed it is still just too thick. Twitter clients should always feel like small-apps and not like full-blown apps 1 — Twitterrific fails at this.

I partially agree with this. The account switcher could, honestly, be better. I also like having icon only for the elements in the title/tool bar. His opinion of Twitter apps being constrained to "small-apps" (I believe we call those Dashboard widgets) seems odd. These are Mac apps. Why should they not be a full app? And TweetDeck, being an Adobe AIR app, is a horrible comparison. May as well compare a steak to a pile of crap.

If you want two accounts you need to pay $9.99 — which is silly given that Twitter for Mac is free.

Then go download Twitter for Mac. Fact is, the Iconfactory doesn't, to my knowledge, have venture capital and angel investments totaling in the tens of millions of dollars. They make great products, and sell them for money. That's called a business plan. If the only incentive to pay is to get rid of ads, then I don't think many folks would pay.

You can’t remove the menubar icon.

I don't have a problem with it, but I agree. It's not for everyone.

You can’t close image windows (Twitpic and the like) with the keyboard.

Tap the escape key. Side story: Popovers are an iPad UI element. They aren't native to Mac OS X (at least, not yet. I wouldn't be surprised if they are in Lion). If you rip open Twitterrific's app bundle (right click, Show Package Contents) and scope out their frameworks, you'll see UIKit. UIKit is an iOS framework. To me, that says Iconfactory rewrote Apple's UIKit framework for use on the Mac. That's pretty much amazing (and a lot of work).

In contrast, when you click an image link in Twitter for Mac, it appears a type of popover opens. You can dismiss this with Command-W. That tells me that Twitter for Mac is actually opening a standard window with a custom UI.

Iconfactory did the work to bring iOS popovers to OS X. They chose to use escape as the dismissal shortcut for this new UI.

This is my biggest gripe: the direct messages show up as a random hodgepodge based on the time sent. So I can’t view the entire conversation thread, I just see messages in a confusing and un-helpful way.

I partially agree. In the main timeline, I like that DM's are part of the timeline. It's part of what attracts me to Twitterrific, a universal timeline. However, when viewing just DM's, I would actually like them to be threaded as conversations.

No live streaming of the Twitter feed, which at this point is basic and mandatory.

It'd be a nice option. Personally, to me, it would feel like a constant trickle of information overload. I prefer to digest tweets in morsels during set intervals. But, that is a personal preference that is different for everyone. I'm sure this will be in an update.

No drag and drop support for posting pictures — I mean I guess sending the file path for the picture could be useful at times.

I actually reported this during the private beta. There just wasn't time for it for the initial release.

The icon: I don’t hate it, but I don’t love it.

Dude, it's fricken Ollie! He's awesome! And don't get me started on Twitter for Mac's various icons over its three updates thus far.

The app is stable and works. It does what it says. I can’t help but feel a lot was left out to get the app out. Most of the problems can be easily fixed with updates, but for a version 4 product these issues should have never shipped. Making sure CMD+W closes picture previews and that dragging in pictures to a compose window attaches the image, is basic stuff for a 4th version product. [...] It doesn’t feel finished — it feels like a version 1.0 product. If this was a version 1.0 then I would be excited for its future, but given the version 4 nature I am hardly impressed.

I get the feeling Ben just doesn't know about the product's history, which is understandable. I highly encourage reading Filing a Flight Plan and On Final Approach for some context. Essentially, Twitterrific 3 for iOS was a complete re-write of the iOS app, and likewise, to get the Mac and iOS apps on the same codebase the Mac app is essentially built from the ground up as well. Even though the new Mac version says 4.0, it's a 1.0 from a codebase point of view.

Now that the Mac and iOS versions are built on the same foundation, it should be easier for both platforms to grow concurrently with new features. It was a ton of work for the Iconfactory, but in my opinion, a great investment for the future of the app.