Reliable Messaging in Swift

Knowing whether your messages have reached your server is a common problem for people on unreliable connections, and XMPP addresses this with XEP-0198: Stream Management. Support for XEP-0198 has been slow to take off, but we’re starting to see a network effect of clients and servers supporting it, with a patch available for Psi, support in the upcoming release of Prosody and a working prototype for Isode’s M-Link, so we’ve reached the stage that it makes sense to add it for Swift.

Remko’s written all the code we need in our Swiften library, and I’ve plugged the UI together to produce XEP-0198 support for Swift, demonstrated in the video below. This has so far been tested against Prosody and M-Link, and has already shown itself to be useful.

Support will be included in the next beta release of Swift, or is already available in the source code repository.

Swift 1.0-beta4 released

Working hard to keep up with the great feedback we’ve been getting on the previous betas, Remko and I are pleased to announce our fourth beta of Swift.

These are the changes since 1.0-beta3: * The chat window shows the total unread message count, not only the selected chat. * Room subjects are now shown on join. * The Find Room window now resizes correctly. * The Windows installer now puts start menu shortcuts in a sensible place on re-install. This will take effect the second time you run an installer with this fix. * Fixed a crash involving disconnects or reconnects. * Various small fixes

Full details at

As with the previous betas, please grab the new release and let us know how you get on - what’s good, what’s not so good, and just generally discuss the project in the MUC room -

First public Swift beta released.

Over a year ago (while writing XMPP: The Definitive Guide with Peter Saint-Andre) Remko Tronçon and I were reviewing the current state of XMPP clients and saw a gap for a simple cross-platform client targeting normal end-users who just want to chat. Swift is the client that we’ve been working on since then to fill this hole, and now we’d like your help with the project. Swift assumes that what you want to do most in your client is chat - either with a single person or a group of people - and that the experience should be based on making this easy and enjoyable.

The first public beta (preview) of Swift is now released, and we’d like you to help us. Primarily, we’d like feedback from you as to what needs to be done now, and also to find any issues - either technical or in usability - with what we’ve already done. This isn’t a final release, so you shouldn’t download it unless you’re willing to find issues in it, and report them back to us so we can improve it.

Swift Roster The roster

Swift Chat View A chat room.

We’ve got Windows and Mac binaries ready so far. The source compiles on Windows, Mac and Linux, and with a little coaxing I even managed to give a demo on an N900 Maemo phone at FOSDEM this year.

The Swift 1.0-beta1 release page has links to the downloads and the source, visit it now and get started with Swift, and then use the mailing list, or the MUC room ( to start discussing it.

'XMPP: The Definitive Guide for $9.99'

I’ve just read that O’Reilly are doing just about every ebook in their store for just $9.99 today, so if you’ve not got your copy of XMPP: The Definitive Guide yet, this is a great opportunity to save some money (oh, and they sell other books too)., use code ‘FAVFA’ at checkout.

More Swift teasings

It’s been quite a while since I posted a teaser of the login window and people have been asking for updates since then, so here’s a quick post to appease everyone.

We’ve been making progress steadily over the last 6 months. One of the first things we got going was the chat interface: Chat window screenshot It’s minimal, but that’s quite comfortable for us, at the moment. We’ll review that over time, so you may see buttons and icons appearing there in the future.

More recently, we’ve spent quite a while working on the contact list: Contact list screenshot. I was initially reticent to use custom rendering code for Qt’s views but in the end it seems to have turned out alright for us.

So where does that leave us - will it be another 6 months before we blog again? I hope not - Remko and I are working towards an internal 1.0 Release Candidate quite hard now, and it hopefully won’t be a vast amount of time before we post about that. After 1.0RC, we’ll start making the builds gradually less private (to manage the amount of feedback we get) until we work to the big 1.0 release day.

Newer posts Older posts