O’Reilly recently released the book Beautiful Testing, a collection of essays about testing and QA in general. As I mentioned earlier, I wrote an article in that book on (unit) testing XMPP protocols, using Swift as a motivating example. Since the book’s scope may (oddly enough) not always be as interesting for developers in general, I released my article under a Creative Commons Attribution license (thanks to the good folks from O’Reilly for encouraging us to do this), which you can find here (or directly from my Git repository). The original excerpt from the book (including the index, list of biographies, and all the fancy artwork) is also available for download under the same license.
I of course encourage you to buy either the PDF or dead tree version of the book, as all the proceeds of the book go to charity.
]]>We’ve been making progress steadily over the last 6 months. One of the first things we got going was the chat interface:

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:

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.
Although there are many types of testing being done in the XMPP world, the chapter focuses on the beauty of testing the functionality of XMPP protocol implementations. After a brief introduction on XMPP, it starts out with a description of unit testing simple IQ request/response protocols, and then gradually moves on to higher-level testing of more complex, multi-stage protocols such as session initialization. As you might expect from a developer like me, the chapter is quite heavy on the (C++) code, but I’m told it compensates for the rest of the book
As with all other books in the O’Reilly “Beautiful” series (which started with Beautiful Code, but has since been followed up by Beautiful Architecture, Beautiful Teams, Beautiful Security, and Beautiful Data), all proceeds of the book go to charity, in this case “Nothing But Nets” (which provides mosquito netting to malaria infested areas of Africa). This means that I can plug this book as much as I want, and still have the feeling I’m actually doing a noble, unselfish thing. (contrary to when I casually mention that you can buy our book XMPP: The Definitive Guide at very sharp prices these days). Some time after the book’s release this summer, I will even make a free version of the chapter available here, so check back soon!
]]>
]]>We’re working to a monthly internal release schedule, but we don’t have a date set for a public release. There are plenty of good XMPP clients already, and we don’t see any value in adding to this until Swift can distinguish itself.
We’re writing all logic and protocol code in a toolkit-agnostic way. We’re currently working on a Qt-based GUI layer, and others are on the cards.
We honestly don’t have an answer to this yet. We want Swift to be free, and we want the source to be free. We also want to investigate options for supplying Swift and its library commercially. Until we know the best way to do this, there’s an open question here.
Not at all. While we’ve both been a core part of Psi for more years than we can count, Psi’s future is looking bright, and I’m sure that’ll continue.
We have no plans for Swift to speak any protocols other than XMPP.
A bunch of reasons. We could have forked Psi, but Psi was always designed with different goals in mind than Swift’s. Psi’s had to make lots of decisions over the last 8 years, and some of them we’ll make differently for Swift’s different aims. Plus we’ve both been working on Psi for a long time; it’s good to try something new.
No. At least, not initially. Our focus is on adding only the core functions to Swift, and getting those “just so” before we move on to adding a new feature.
Yes, we’re targeting Windows, Mac OS X and Linux with our first GUI layer. We may add to this later.
]]>Until we launch the project and its website, you can subscribe to the Swift blog and identi.ca group to stay up to date with the latest news and developments around the project. Thanks to Dave Cridland for lending us his graphical capabilities and drawing us a pretty logo.
]]>