Gwibber Roadmap
Features for Gwibber 2.0
Todo
- Prompt for required Facebook permissions
- Plug new error reporting system into the Gwibber UI
- Make close buttons work in the sidebar tree
- Add CouchDB backend for account configuration
- Fix services that aren't supported by new backend
- Finish and merge autocompletion UI code
- Improved first-run experience
- Fix busted icons
Make clicking on the indicator raise gwibber instead of toggling (KenVanDine)
Finished
- Parallelized loading and sending
- Separate backend with a D-Bus interface
Support for FriendFeed and the Facebook streams API
- New tree-based user interface
- Refactored templates for theme system
- New multiline input textbox with scrolling and overflow
- Support for viewing individual streams
- Separation of replies and direct messages
- Pervasive use of service icons
- Built-in search box
- Menu refactoring
- Filter for message sending based on the UI view
- Fix reply/retweet
- Limit number of messages displayed in stream ("More" button)
- Added Qaiku and OCS
Public timeline support (Twitter, Identi.ca, FriendFeed)
Implmented in 1.2.x but need to be merged into 2.0
- Libnotify and messaging-indicator support
- Public timelines in the backend
- Support for the Qaiku service
Features for future versions
Todo
TweetDeck-style multi-column UI
- Contact lists and message filtering
- Geolocation and mapping
Integrate GrabberSnap for social imaging
- Tracking of unread messages
- Geolocation
- Qt UI frontend
Notes (Old)
Contact lists and message grouping
Users want to be able to organize their contacts from various services into groups and lists that can be displayed separately. We should have feature parity in this area with Tweetdeck. Gwibber should support grouping and filtering based on a variety of parameters, including contact lists, tags, services, text matching, etc. The user interface for this feature could be modeled after Evolution's filtering system.
Qt frontend
Although GNOME desktop integration is a high priority for Gwibber, we should also support other platforms. A PyQt frontend for Gwibber would make it possible to deploy the application on Windows and Mac OS X. It could also be used as the basis for mobile ports for Maemo, Symbian, and Windows Mobile.
Alternate configuration backends
The only major GNOME-specific dependency that is used extensively in Gwibber is the GConf configuration system. We need support for alternative configuration backends that are fully portable. These backends need to expose the same dict-like API as Gwibber's current GConf wrapper layer so that we can swap between configuration backends and not have to have diverging code paths in the microblog library.
Geolocation support
Geolocation capabilities are becoming increasingly important because of the popularization of netbooks and MIDs. Gwibber should provide geolocation functionality and support for location-aware web services like BrightKite. I experimentally implemented support for BrightKite using Microsoft's web-based mapping service (Google Maps can only be used in web mashups and not desktop apps). The mapping service is extremely memory intensive and it increased Gwibber's footprint by hundreds of MBs. We need a more efficient and flexible way to display mapping information in Gwibber.
One potential solution is libchamplain which uses Clutter and various free map tile services. The library is already being used in other applications within the GNOME ecosystem, including Empathy and EOG. We can also use GeoClue to obtain location data. For more details about integrating location-aware technologies into the GNOME ecosystem, read my article: http://arstechnica.com/open-source/news/2009/01/location-awareness-comes-to-the-linux-platform.ars
Social image integration
Images are becoming a core part of the social networking experience. Gwibber should integrate with GrabberSnap, a client application that provides support for basic image annotations and uploading to multiple social networking services including TwitPic.
Avahi support
Microblogging has become a very popular way for users to interact at conferences and other events. Gwibber users should optionally be able to advertise their microblog service identity on the local network via Avahi so that other Gwibber users can easily find and follow them.