Archive for July, 2009
Some time around late afternoon or early evening yesterday, July 27, Twitter pushed out a security update to its OAuth implementation. This security fix had the extremely unfortunate side effect of exposing a bug in how Twitbit submits new tweets and new direct messages to Twitter.
The result of their update and our bug is the now infamous error message everyone started getting at about the same time when sending tweets or direct messages:
We apologize to our customers for this problem.
The good news is that fixing this issue is extremely simple. So simple, in fact, that it’s already been done and required changing only a single line of Twitbit code.
Even better news is that we’ve been wrapping up development of Twitbit 1.1 over the last few days and were already planning to submit it to Apple today. We included the fix for this issue into 1.1 and gave it to Apple earlier this afternoon.
What’s New in Twitbit 1.1
Twitbit 1.1 is a significant upgrade from 1.0.1, the current App Store version. Its new features include:
- More granular push configuration
- Selectively push DMs, mentions, neither, or both for each Twitter account.
- Better push support while the app is running (new message badges, vibrations, etc.)
- New direct message workflow
- Summary/inbox view that’s modeled after the built-in “Messages” app, organized by user
- Threaded conversations
- Landscape typing of tweets and direct messages
- Built-in photo browser with landscape support
- Landscape mode in the built-in web browser
- Saved searches
- Person search
- Saved timeline position
- More tweet actions (open in browser, send in email)
- More browser actions (send in email, post link in tweet)
- Customizable tab order
- Customizable re-tweet format
- Ability to view users by their Twitter usernames or real names.
- Lots of other UI enhancements and bug fixes
You can read more about what’s in Twitbit 1.1 on our release notes page.
That Sounds Awesome! When Do I Get the New Version?
The bad news is that Apple’s App Store approval process is notoriously slow. Approval could take a week or more. Worse, they provide no facility for developers to expedite the release of critical bug fixes. We are at their mercy.
We do have one trick up our sleeve, though.
Getting Twitbit 1.1 Before It’s on the App Store
Apple allows for developers to send the application to people for testing without going through the App Store. Apple calls this “ad hoc distribution.”
We encourage Twitbit customers to send us their iPhone or iPod Touch’s device ID, along with their Twitter username. We’ll then send you Twitbit 1.1, which you’ll be able to use until Apple approves “the official version” for the App Store. Once it’s on the App Store, you can simply switch back to the App Store version. You’ll continue to receive all future upgrades for free as normal.
For instructions on obtaining your iPhone or iPod Touch’s device ID, please see Apple’s documentation and follow the steps under “Sending Your Device ID to Developers.” Email us your device ID along with your Twitter username, and we’ll send you a copy.
We’d like to apologize again to all of our customers for this issue. We recognize this is an inconvenience, and we’re doing everything we can to make things easy for our users.
If you have any further questions, comments, problems, or suggestions, please don’t hesitate to contact us.
We’re excited to announce the release of our latest product, Twitbit, a Twitter app for iPhone and iPod Touch. Check it out on the App Store. We’ve worked hard to build a clean and elegant application that keeps the simple things simple while providing a rich and complete feature set.
We realize the Twitter iPhone application market is pretty crowded. The last few months alone have seen the release of several major new apps. With so much great work already being done, what do we have to contribute? And why would we want to?
Twitter’s genius is in its simplicity: people post short messages. Period. (Basically.)
The iPhone is the world’s first true handheld computer, and one of the most exciting developer playgrounds to come around in a long time.
In short, the possibilities are just too exciting to resist.
I can hear people saying, “this is all fine and dandy, but that doesn’t mean you just run out and build your own Twitter app.” It’s true that there’s already a lot of choice out there. We have several iPhone Twitter apps installed ourselves, and before we built Twitbit we used them regularly. They’re great pieces of software – we wouldn’t be using them if they weren’t – and we have a ton of respect for the work that’s gone into them.
Nevertheless, we feel that each one has its own set of shortcomings. We’d rather have a single Twitter app that fits with the way we think about and use Twitter.
Even more important, though, is that there are several significant features we want but that don’t exist in any Twitter iPhone app. The most significant is push notifications, which we’ve built into Twitbit (more on that in a minute), but it’s far from the last.
So we did what programmers do: we built our own.
We approached Twitbit the same way we’ve approached everything else we’ve built. We made something we love to use with the belief that others will love to use it, too.
Push Notifications for Twitter
Support for push notifications is one of the most significant features we wanted in a Twitter client. Still, supporting them gave us pause. While it has some advantages, push notifications are far from an ideal solution to the problem of “background tasks.” We’ve written before about both the technical and business challenges push notifications present in general, and for a small software company like ours in particular.
For all their problems, though, we felt like push notifications had huge potential for a Twitter app. For many users, they could completely transform their interaction with the service. The possibilities were just too exciting to pass up, so we took the plunge.
We’ve been using Twitbit amongst ourselves and our friends and family for a while now, and we can confirm that push notifications have changed the way we use Twitter. We think they will for other people, too.
Is My Entire Twitter Stream Pushed to Me?
No. Only mentions and direct messages are pushed. We are considering adding more fine-grained control over what gets pushed and what doesn’t, but for now you get all mentions and direct messages pushed to your phone. If you don’t want push notifications at all, simply turn them off in iPhone’s settings.
Are Push Notifications Sent in Real-Time?
No. Our service polls Twitter periodically. This is both the most robust and the easiest implementation Twitter provides at the moment. Twitter does have a real-time API, but it’s only alpha quality right now so we didn’t think it made sense to use it for the first version. We are very interested in experimenting with it in the not-too-distant future, however.
That said, one of our primary concerns is getting push notifications as close to real-time as possible. We’re going to be keeping a close eye on our servers and working hard to reduce the polling interval as much as we can.
What Are Twitbit’s Other Features?
Twtbit provides a ton of great features, including OAuth authentication, so you don’t have to give your Twitter username and password to yet another application; cached timelines; and overall speed and ease-of-use. You can find a full feature list on the Twitbit web page.
We’re Just Getting Started
Twitbit 1.0 is a complete and full-featured Twitter application, but it’s only the beginning. We have a lot of very exciting and ambitious features planned for the future.
If you have any questions about Twitbit, suggestions for features, or if you think you’ve encountered a bug, please send us an email. We’d love to hear from you.
We’re excited to announce our biggest product yet: Twitbit, a Twitter client for iPhone and iPod Touch. We don’t want to give away too much just yet, but watch this blog and the Twitbit web page for the latest.
If you want to be notified as soon as Twitbit’s available, give us your email address (no spam — we promise):