Projects‎ > ‎

Tweeter!

I've finally created an open source project for Tweeter! on SourceForge.net. I'm rewriting it from scratch because honestly, the old code was really horrible in lots of ways - poor coding style, no comments, no object oriented concepts, no separation of concerns among others. The text below is what I'd put up for the old releases and you're welcome to take a look at those releases and browse the repository for the source. I've lots planned for the new app and so it's going to take a while to actually release something!
You can browse the SVN repository or download the older releases



A Java desktop client for Twitter

After about two weeks of work, I'm pretty much done with how much I planned to with Tweeter! : a client for Twitter. It's inspired by Twitteroo, in fact, a primary reason for my building this app was that as of now, Twitteroo doesn't support proxies so I can't use it from work. It has been developed using the excellent API from ThinkTank: jTwitter.



Download

You can download the older releases from here


Using Tweeter!

Using the app is simple. First get the latest JRE ( you can get the one I tested on from SUN; about 7 MB ). Or you can use the button below:

GetJava Download Button
Java is a trademark of Sun Microsystems, Inc.



Download Tweeter! 1.0  ( about 337 KB ) and run it. If all goes well and you have your JRE setup fine, you'll see something like this:


 
 

If your system has the .jar file extension associated with WinRAR or some other application, you can run Tweeter! manually from the command line as:

java -jar Tweeter1.0.jar

(or whatever else you've named the jar file)

If you connect without a proxy and are already connected to the net, you'll probably see the public timeline ( the one that appears on the Twitter homepage ) almost immediately. If you do use a proxy, once you fill in your details under Tools > Preferences, you'll be set.

If you need to use NTLM authentication, fill in the username/ password under the proxy tab in anycase ( they are shared ) and make sure you check the 'Use Proxy' checkbox. Then, fill in the domain name under Experimental. This feature is still being tried out so I can't guarantee it'll work, but it's worth a shot.

To switch to the 'Friends' timeline, you need to enter your Twitter username and password. This will also let you send a 'tweet' ( the Twitter status message ); this is limited to 140 characters. While the tweet is being sent, the Send button will be disabled.

Periodically, you'll see the Follow radio-buttons getting disabled; this happens while the timeline is being refreshed to avoid the data from the two timelines getting mixed up in case you happen to switch just as the update was happening.

When an image has not yet loaded, you'll see a question mark like in the screenshot above. Images will start getting loaded in the background and will be cached so that the next time you want to view it, it'll load faster. This'll be more apparent in the case of your Friends timeline since the public timeline changes too frequently for images to be repeated very often.

If you close the window or minimize it, Tweeter! will get out of your way and sit pretty in the system tray:

 

 

Double-clicking the icon will bring it back up. While it's in the system-tray, Tweeter! doesn't unecessarily refresh the public timeline; it'll wait till it's visible to refresh. This has a slight side-effect of your seeing the timeline that you minimized Tweeter! with, but this should be refreshed almost immediately. The friends timeline will be refreshed every 5 minutes in this case. Twitter has a limit of 70 refreshes per hour on your password protected data. Over this, you'll be temporarily blocked.
 

The timelines are refreshed everytime you do the following:

  •     Click on one of the radio buttons, it doesn't matter which one or if it's already selected. The refresh will happen all the same.
  •     Everytime you click OK in the Options window
  •     Everytime you minimize to the system tray and maximize

So be careful you don't overdo these actions! Or you'll be getting an error message popping up in your system tray every minute!

If you see the timeline is unchanging for a while ( minimum time is 1 minute ), you should check your proxy settings, your Internet connection and then finally, the Twitter site since they are changing, upgrading and improving all the time; which means the site is down sometimes for short whiles.



Change Log

Version 1.0

This is the final version I plan to release unless people actually start using this and want more and/ or I get the time and inclination to add more features.

New

  • Resizable full screen display

  • Images visible on the timeline; they load in the background to minimize delay

  • Add/ Remove friends right from your desktop

  • Send direct messages to your friends ( replies are still sent the same way: @username )

  • Notification on updates to the friends timeline, even when minimized to the system tray ( the public timeline is going to be different in any case, so no notifications there! )

  • Customizable UI ( you can set the colors i.e. :D )

  • Turn off notifications from the system tray when minimized

  • Select a format for the data from Twitter in case of problems (the default  'JSON' option is still recommended and is required for most operations)

Bug fixes/ Improvements

  • Better image caching. Fixed bug with a potential for causing memory to run out

  • Images will load in a separate thread from the display and will update the timeline later if it is still showing

  • Reduced the refresh rate when minimized to reduce chances of denial of service due to high refresh rate ( Twitter offers 70 fetches per 60 minutes of your protected data; just over 1 fetch per minute )

  • Minor UI changes with improved icons



Version 0.7

New

  • User settings can be saved (barring passwords for security reasons)

  • Notifications (timeline updates still to be added)

  • Option to turn off notifications

  • Relative time in the timeline ( '1 min ago' etc)

  • NTLM authentication against domains (still experimental)

  • The count of characters shows up on the 'Send' button and the limit of 140 characters is enforced ( yeah I missed those on the last release :D )

 Bug fixes/ Improvements:

  • Changed the behaviour of the status pane; now will popup only after hovering for half a second

  • Changed location of status pane; now will always display under cursor

  • Improved threads' handling

  • Fixed problem in timeline on displaying fewer items

  • Minor changes to UI

 


Version 0.6b

New

  • Lets you update your Twitter status from your desktop

  • Supports proxies

  • Display public timeline ( without logging in )

  • Display logged in user's 'with friends' timeline

  • Pop-up on hover on a timeline item

  • Caching of images

  • Minimizes to system-tray



TODO

I'm might work on adding the following. If anyone has suggestions for the hyperlinks/ international characters, let me know. I'm stumped!:

  • Friends control ( Add/ Remove etc )

  • Direct messages to friends

  • Notifications in the system tray

  • Improving the image caching

  • Saving user information across application sessions

  • Replies/ Direct Messages timelines

  • Deleting a previous status

  • Pop-up menu's for copying/pasting etc ( as of now, the keyboard shortcuts will work just fine )

  • Following links

  • International character support ( right now, you'll see lots of squares when someone tweets in Japanese! )

Creative Commons License
All content licensed licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License to no.good.at.coding unless noted otherwise.