Introducing Element Voice Messages, all new VoIP, and so much more...

August 16, 2021
Element app

Hi all,

We’re incredibly excited to release major new versions of Element across all three platforms, introducing Voice Messages at last as a first class citizen! Element Web/Desktop 1.8, Element iOS 1.5 and Element Android 1.2 are here today (today-ish, depending on time zones and platforms), fulfilling all your voice messaging fantasies. Grab it whilst it's hot! Want to instantly send a message without typing? Want people to remember what you really sound like? Want your friends to be able to hear what you’re listening to right now? Want to send yourself voice messages like a 1980s dictaphone? Now you can, simply by pressing the all-new voice message button next to the composer!

On Mobile you can use the button two ways - either press and hold to instantly send a message, or press and drag it up to ‘lock’ the recorder if you’re sending a long message, which you can then review before sending. You even get beautiful animated waveforms (inbound to the Matrix spec via MSC3245). Meanwhile, on desktop, it looks like this:

Suzie, do you copy, over?

This has been one of our oldest and most upvoted feature requests ever, so we are incredibly happy to unleash our first version of it at last. It’s been a surprisingly involved process as we’ve ended up completely reworking the composer in order to incorporate it - for instance iOS now has an entirely new implementation, complete with beautiful animated buttons, typing notifications and funky Reply design, in order to help incorporate the transitions to & from Voice Message mode.

But wait, there’s more…

Over the last few months we’ve been adding a huge amount of other refinements which have been landing bit by bit - and we’ve been so busy working on them that we forgot to announce them properly. So, better late than never, here are all the other improvements which have landed recently!

A whole new world of VoIP

If you haven’t been using one-to-one VoIP calling in Element recently, you’ve seriously been missing out. Over the course of this year we’ve had a dedicated band of folks doing nothing but improving and maturing Native VoIP in Matrix - both to ensure that 1:1 calls are stable and robust... and to pave the way for native Matrix decentralised + encrypted conferencing in future!

This has meant an entirely new design for 1:1 voice and video calls, complete with full screensharing support on Element Web and Desktop, and intelligent call entries in your conversation timeline which clearly tell you how long a call was, and even let you answer calls from the timeline on Web/Desktop. We now tell the other person when you’re on mute (on Web/Desktop) and you can even play switchboard and put the call on hold if you want. Huge thanks go to Šimon Brandner for contributing screensharing, mute state, timeline improvements and loads of other stuff in this release!

Meanwhile on Element Mobile the UI has improved enormously, CallKit is working well on iOS, and voice calls look beautiful now. If you look hard enough you can even find a dial pad, ready for letting you talk to the public phone network in future ;)

Video call with screensharing between Element iOS & Web!

Under the hood, this work also implements a lot of major Matrix spec improvements to make VoIP properly robust - see MSC2746 and Dave’s excellent KrankyGeek talk for all the gory details.

All change in the timeline

There have also been some major improvements to the conversation timeline on the various platforms. One of the most important ones is that we finally killed off the old grey->green->black transition used to show the various sending stages when you send a message - which gave an unfair impression of the app being slow, when in practice the speed at which you send a message is typically limited by the network. Instead, we now show a circle on the right hand side when you send a message, which is filled with a tick once the message is received by the server. Once people read the message, their circular read receipt drops down from the heavens to replace the send receipt, and then the circle of life continues.

Send receipts and read receipts, beautifully unified at last

Another huge improvement in the timeline is the addition of blurred placeholder thumbnails on Element Web/Desktop and Android. This technique is called blurhash, and lets the sender include a very compact description of the blurred thumbnail when they send a file with a thumbnail on Matrix (see MSC2448 for the Matrix specifics). This means that you instantly get to see a useful placeholder in the timeline for a given thumbnail rather than staring at a blank gap until the thumbnail loads - particularly useful on slower connections. This is available in today’s release!

Web work

On Element Web and Desktop, we’ve completely reworked how replies appear - switching to a much more compact representation (including sensibly replying to images with thumbnails):

Meanwhile, the ‘lightbox’ used for viewing images has been completely rewritten by Šimon Brandner, letting you now zoom and pan your images to taste and fixing all the idiosyncrasies of the old implementation:

all new lightbox!

We’ve also moved the download button for files to the (much prettier!) context menu rather than clogging up the timeline with download links...

On encryption: we made a major improvement on Element Web and Desktop a few months ago: when you invite someone into a private encrypted conversation, the app will automatically share the conversation history with them… assuming the history is set to be visible. (Previously it silently failed).

Finally, the timeline code has been given a massive overhaul, meaning messages display much faster than before (especially noticeable if you view a room with thousands of join/part events, which could get quite bogged down). And while talking about performance: Element Desktop now comes as a universal build on macOS - meaning it magically supports both Apple Silicon and Intel CPUs out of the box.

Mobile machinations

Both iOS & Android have had a lot of refinement recently: on iOS, we’ve added the same Left Panel as on Android in preparation for Spaces - simplifying the UI significantly by moving functionality like Settings out to the new left panel.

Similarly, the DMs and Rooms tabs have been massively simplified on iOS - removing the hybrid functionality where the list showed your current conversations as well as acting as a directory for rooms and users. Instead, we have a single standard Search control now for when you want to seek out new rooms and users, and meanwhile your room lists are just plain room lists. We expect to see this simplification continue in the near future!

There have also been unrecognisable performance improvements on iOS: the UI no longer stalls when decrypting messages; we preemptively set up encryption for a room when you start typing in it (so you don’t have to wait for as long when you send the message); and launch time is significantly improved. There’s still another big wave of work on the horizon to speed up launch time further, but the app is unrecognisably improved over the last few months.

On Android, almost all the feature work has gone into implementing Spaces (more about that later!) - but we’ve also landed the same encryption performance improvements as iOS and fixed some nasty encryption issues which were biting some users.

Last but not least...

This is a bit meta, but a huge change to arrive with today’s release is that we have completely rebuilt how our release notes and changelogs work on all three platforms. For the first time ever, we now have coherent changelogs thanks to our all new allchange system for Element Web/Desktop and towncrier on iOS & Android. This is a surprisingly hard problem given Element builds on the reference client Matrix SDKs, and much of the changes which land in the apps are actually from those underlying SDKs. But fear not: power-users and interested developers can now follow along with a comprehensive yet digestible view of what’s new in Element in the official release notes for Web/Desktop, iOS and Android.

Finally, a sneak peek at things to come…

So, what’s next? As always, we have some very exciting stuff brewing in labs. The intrepid amongst you may wish to head over to the Labs setting in https://develop.element.io or Element Nightly and experiment with such beta-grade wonders as… Message bubble layout!

...or Dehydrated Devices! This keeps a spare logged-in client stored for you on the server, so that if you log out of all your sessions, you can still pick up conversations when you return without ever losing a message. It’s good news for people who only ever use Element Web, and whose browser keeps logging them out. On the other hand, it does mean that if someone steals your login credentials and recovery key/passphrase, they can steal the dehydrated device and use it to completely impersonate you. Just for a change, it’s a trade-off between usability and privacy.

Talking of encryption, there’s still a lot to be done on improving cross-signing, login and registration in general. We’ll be kicking off this work in the coming weeks.

Finally, the biggest thing by far we have on the horizon is Spaces coming out of beta: letting everyone curate sets of rooms - including private rooms in private spaces, meaning that (at last!) users can join private rooms purely by being members of that space. Never again will you have to explicitly invite users to join the private rooms in your organisations: you just add them to the space, and then they’ll magically be able to view the room hierarchy for that space and enter any room they have permission to. We can’t overstate how transformative this will be: it landed in Labs a few days ago and we’ve just started to play with it internally in Element, and it’s very clearly the shape of the future. We’re also very excited to have landed a Communities->Space migration tool to help us kill off the old Communities feature as rapidly as possible.

Hopefully next time you read a blog post like this, it will be announcing that Spaces have exited beta!

Anyway, all this and more will be coming in future releases - until then, please enjoy today’s release and let us know how you get on at #element:matrix.org, #element-ios:matrix.org and #element-android:matrix.org.

Thanks,

- Team Element.

Related Posts

By the same author

Thanks for reading our blog— if you got this far, you should head toelement.ioto learn more!