Phew. When I was looking at features to add in upcoming versions of Trowl, two things jumped to the top of the list right away. The first was oAuth. I didn’t know much about the technology but knew it was relatively complex, so I figured it might take a little while to implement. The second thing was multiple account support, as it had been requested by several users. This seemed like a relatively simple change — just check multiple accounts for new tweets instead of one.
Turns out I was wrong on both assumptions. oAuth was really easy to implement except for one bug that I eventually hammered out. And multiple account support had a ripple effect that caused changes to occur just about everywhere in Trowl.
But here we are. Testing for 0.5.1 has begun, and for the most part, I’m pleased with the result. As I said, adding multiple account support affected multiple parts of the app, so here is an overview of some of the changes:
1. Login screen. I had the option of just showing a text list of authorized account names, but I decided to kick it up a notch and show account pictures. It downloads the picture (or re-downloads it, if necessary) each time you log in. So the icon you see at first may be the default "no picture" Twitter icon, or it may not be your most recent. But after a successful login, it should update.
You can also view your settings and manage your accounts from the login screen now as well.
2. New Tweet. With multiple accounts, you can choose which account to send your tweet from. If you are replying, retweeting or DMing someone in response to a tweet, the account will be "locked" to the account the original tweet was received on.
There is now also an option to enable or disable the automatic URL shortening.
3. Settings. This is where the biggest changes are, and most notably on the first tab. A lot of people, including myself, liked the simplicity of the first tab, so I tried to keep that simplicity intact as much as possible. Essentially this is the same screen that you know from previous versions, but repeated for each account that you’ve authorized for Trowl. If you only use one account, the screen is practically the same — just a little wider so that you can see your pretty avatar looking back at you. :)
A couple of notable changes: "DM Communication" and "Growl missed tweets" options are per-account, so have been moved to the first tab. Likewise, the interval for checking accounts is NOT per account, so has been moved to the second tab. If there is demand to have the interval per-account, then I will work on doing this. Unfortunately it is not a trivial change, so it will take a little bit to implement that.
And of course, you can add new accounts and remove existing accounts on the first tab. You cannot remove the last account on the list. If you need to re-authorize an account for some reason, just go through the Add Account process again. When Trowl verifies it, it will see it is the same as an existing account, and just update it with the new authorization.
4. Growls. This is an example of something that I didn’t think would change — but as I thought about it more, I realized it might have to. With multiple accounts, I figured some people will need to know what account a tweet was received on. I posted a message on the Google Group for feedback on this (thank you for all the responses!) and came up with two solutions.
The first is to append the account information next to the tweet’s author. For example, if you receive my tweet on your account, it will say something like "mageuzi «YourAccount»". There is a setting to turn this on and off in the settings.
The second is more subtle, and I think more useful. It will put the account’s avatar in the upper left of the tweet’s author’s avatar. If you recall how Twitter shows reply avatars, you’ll get the idea. You can enable this setting in the settings too. There is a slight overhead using this, since Trowl has to process the avatar pictures, but it shouldn’t negatively affect anything.
I also made it so that if you have more than one account, it will show the account the tweet came from after the timestamp. (e.g. "one hour ago on mageuzi") Timestamps only show up on displays that support it.
Okay, I think that’s it. Questions, comments, suggestions and of course bug reports are all welcome. Anything non-critical that requires a major change will have to be put off until a later update. But I will try to accommodate anything else before I release 0.5.1 for public consumption.
Thanks for testing!