Thursday, 5 July 2012

Swift local history

Local history support is beginning to take shape. Using a sqlite database, the client now logs outgoing or incoming messages. The database API is similar to the functionality provided by xep-0313, making the implementation of the remote archiving support a simple matter of synchronization. Users are able to browse through their logs, though searching is not yet available.
The next step is adding the calendar widget which will allow viewing logs from specific dates.

Tuesday, 19 June 2012

Swift Chat History Support

Chat logging is one of the most basic features in an IM client as users often find themselves in need of viewing past conversations. This summer, I'll be working on adding history support to Swift.
After a rather slow start, I've finished the UI details as well as the target functionality details.

How it looks:

How it works:
By default, the history viewer will display recent conversations, the user being able to select specific contacts from the roster on the left. Logs will displayed with unlimited scrolling - logs are appended as the user scrolls for older/recent conversations. The calendar on the bottom left allows jumping to specific dates and it will permanently reflect the date of the currently viewed logs.

Users may also choose to search for keywords in order to find certain conversations. The contacts roster will only display users matching the query, while the 'next', 'previous' buttons allow iterating through search results.

Next step:
I'm currently working on the local history support feature for situations when server logging is unavailable. The database will be managed using sqlite as it seems the most straightforward solution.