State of Snikket 2023: The Apps

Posted by The Snikket Team on August 9 2023

As promised in our introduction to the series, welcome to the first of our ‘State of Snikket’ update posts! This installment features all the app development news you could wish for.

So what’s new in the world of Snikket apps?

UI/UX

If you’ve been following Snikket development for a while, you might remember that we were receiving UX advice on making our apps easier and more fun to use, thanks to the team at Simply Secure. Recently they’ve been busy with a UX transformation of their own, including renaming themselves SuperBloom. From the blog post announcing this on their website:

“A superbloom is a rare event, when long-dormant wildflower seeds bloom together to transform a harsh landscape with renewed energy and resilience. We believe technology design is at a Superbloom inflection point, and we’re excited to be shaping it into a beautiful future.”

We’re pleased to have them working with us again, creating some mock-ups (or “wireframes”) for updating the look and feel of the Snikket apps.

These will guide the ongoing evolution of our existing Android and iOS apps, and we plan to use them when we begin prototyping web and desktop clients, using the new Snikket SDK (more on that later).

So what about the existing apps?

iOS

The release of our iOS app was the last big news we shared on the app front, and Snikket iOS was warmly welcomed! However it’s also fair to say it has had a couple of teething problems and is still a bit less polished than our Android app.

Some of these issues are due to various constraints in iOS, requiring apps to be designed very differently to apps on other platforms. We have also had difficulties finding people who are familiar with both XMPP and iOS development, and who have time and motivation to work with us on Snikket for iOS.

Nevertheless, we have a good relationship with the developers of Siskin - which our iOS app is based on - and we’ll continue to work on improving it. If you’re keen to help, we’re always looking for additional beta testers.

Android

Meanwhile our Android app, the first app we released, continues to be widely used. It derives from Conversations by Daniel Gultsch (iNPUTmice, also creator of the Ltt.rs email app for Android). We also maintain a good relationship with Daniel, and keep a close eye on upstream improvements.

In fact, our app follows Conversations so closely that maintaining it as a build flavour upstream is under consideration as a potential option for the future. That would automate some of the work of releasing new versions, allowing us to bring new Conversations features and bug fixes to people using Snikket more quickly.

Speaking of new features, the release of Conversations 3.0 will come with a whole Santa sack of them (nitty-gritty technical details here), which will eventually make their way into Snikket on Android.

Some of the anticipated features include emoji reactions, multimedia messages, improved message editing (including edit histories), and full support for replies, which Daniel says will include allowing us to jump to the original message that was replied to.

Another big change is in the handling of attachments, such as photos and files sent in chats. Once Snikket is rebased on Conversations 3.0 these will be invisible to other apps on your device, unless and until you choose to export them. Just as you’d expect when they arrive in chats that are end-to-end encrypted, to protect your privacy.

One change that we’re really excited about will finally bring the concept of Snikket’s circles to the app’s interface. This will allow people to easily filter their chats, for example between “Family”, “Friends” and “Work”. If you join a circle - for example one called “Family” - everyone in the Family circle will automatically be added to your contact list, and you’ll be added to theirs.

After Conversations 3.0 is released, we’ll be able to group the chats associated with each circle together in your contact list, rather than having them all mixed together as they are now. Once the new interface arrives, you can safely share dank memes with your gaming friends in the “Game Night” circle, with confidence they won’t be accidentally shared with your family.

So when will all these new features arrive?

Initial plans aimed for a November release, but it’s well established that software development can be unpredictable. Especially in the open-source world where maintainers are often stretched between many responsibilities. So even if it takes a bit longer to spit and polish, we’re not worried - and we’re fairly confident the first version of Snikket based on it will be appearing next year. Watch this space!

Okay, we’ve covered Android and iOS. So what about these web and desktop apps we’ve listed as a goal of ours for some time?

With more development time becoming available (more on that in a future post), we’ve been exploring how we might finally make these a reality.

The future of building Snikket apps

One such exploration has resulted in a prototype ‘Snikket SDK’ (Software Development Kit).

“A what now?”

Basically, it’s a cross-platform library that can handle all the digital smoke signals involved in communicating with an XMPP server. It presents developers familiar with other chat APIs with an expert smoke signal interpreter, which they can connect to any chat app interface they design.

Our hope is that this will make it easier to develop Snikket clients for the web, desktop, and potentially other platforms. This includes mobile GNU/Linux devices like the PinePhone, used with interfaces like Phosh by distros like PureOS, Mobian, and postmarketOS.

If this works out, whenever we make improvements to the SDK they can easily be shared by all the apps using it, massively reducing the work involved in supporting apps for an increasing number of platforms. But let’s not get ahead of ourselves.

So far its an early prototype - we haven’t even made a final decision on programming language yet.

Currently, we’re experimenting with Haxe, which can be compiled to a number of other languages, including JavaScript. Using this approach will allow us to build on existing XMPP libraries for the target platforms.

By providing an easy-to-use development kit with all Snikket’s features already implemented, we hope to make it easier for per-platform development to focus on just the UI/UX layer, instead of getting dragged down reimplementing XMPP and business logic for every platform.

It’s important to note that we are not aiming to produce another XMPP library - many of those already exist. Rather, we’re focusing on a layer above that - an SDK that allows developers to easily work with a Snikket (or compatible XMPP server) with zero knowledge of how XMPP works.

We’ll share additional progress as it happens, so once again, watch this space!

That’s all the news we’ve got for today.

The next post will focus on the work we’ve been doing to set up hosting of Snikket servers as a human-friendly subscription service, and an ethical source of ongoing funding for Snikket development. It will also cover how Snikket has been funded so far and what we’ve been spending the money on.

After that, we’re planning to take you on a deep dive into new laws like the Digital Markets Act in the EU - and a similar ones in the UK and elsewhere - and how they could impact social enterprises like Snikket, developing Free Code software for use in decentralised networks. There’s potentially some good news here and some rather worrying news.

So keep an eye out for those over the coming weeks.