It's been six months since the last #release, and for the 0.18 – Oterma one there's a lot to show!
So let's dive in this list of exciting features and changes that you will find in this new release.
Notifications
0.18 is coming with quite some changes regarding how the notifications are handled and displayed within Movim. This also came with lots of bug fixes to ensure that the counters are up-to-date everywhere across the UI and between all the devices.
One of the first notable changes you will find is how the global chat counter is behaving.
This counter is now displaying the total number of unread discussions and not the total number of unread chat messages anymore.
Related to this change, an update on the chatrooms bookmark specifications is now allowing you to save a per-chatroom notification configuration. With this new feature you'll be able to choose, for each chatroom, if you want to “always be notified” for each new messages, “only when you're mentioned”, or “never”.
Movim can now use sound to notify you of a new incoming message, if you allow it to (see the configuration panel).
Stickers, drawing and emojis
We also improved some existing chat features. Some work has been done by Christine Ho on the Draw widget. The drawn lines are now smoother, even on large resolution pictures. The feature has also been extended to allow you to draw on existing pictures you upload from your device.
Christine Ho also improved the existing emoji picker to add useful search bar, you can find it when trying to add a reaction bellow a message.
A new pack of fresh meme stickers was also added to the stickers panel.
And finally, the Movim emojis support has been updated to Unicode 12.0, bringing a pack of new emojis in.
Video conferencing
A big part of the time spent on this release was focused on the video-conference features. The related code was heavily reworked to ensure a smooth compatibility with the #Conversations Android client, it's still not perfect but works already quite well.
This was especially because of the integration of XEP-0215: External Service Discovery in the project. Allowing the web browser to easily perform STUN/TURN discovery (it's a way to discover alternative routes on the Internet for the video and audio feeds to be streamed on) using the #XMPP server services.
The call flow was also split to conveniently allow audio-only calls.
And the screen-sharing feature was integrated on the video-side. Useful when you want to quickly show a document or a presentation during your call!
Video-conferencing is hard. For this release we made quite a lot of work to improve the user experience but we are still not totally satisfied with the result. Some more work will be needed in the upcoming releases to really deliver the best we can offer for that feature.
And a many other things…
Chat and chatrooms
The interfaces between the chat and chatrooms (header bar, drawer menu) are now unified to display general information the same way. A little gallery was added which displays recently sent and received pictures.
The pictures handling in chat messages has been improved. Movim is now trying to resolve picture URLs, even if they were sent using a client that doesn't embed pictures in messages.
The scrolling behavior in chat was greatly improved and simplified, a little "go to bottom" button was also added.
Movim now handles the XEP-0319: Last User Interaction and can therefore be more precise to tell you the last time your contacts were seen active.
Post publication
Movim was already automatically saving your draft posts while you were writing, but since this version it actually displays when a draft has been saved. The post publication panel was also slightly redesigned to be clearer and more accessible.
Performance
On the technical side, a PresenceBuffer system was added to handle wave of presences coming from the network and mass insert them in the SQL DB. This reduces by a factor of 10 to 100 the number of requests that are done to the database during those "spikes" of incoming presences from the network. This little feature greatly improves logins speed and shortens the time it takes to join a new chatroom.
Favicon
The favico.js library, that was handling the little counter in the browser tab icons had been removed and rewritten using only vanilla JavaScript, keeping only the required bits which also made it way smaller. This was actually the last (external) JavaScript dependency coming with Movim.
XMPP Authentication
Regarding the authentication process, Movim now supports XEP-0368: SRV records for XMPP over TLS to directly connect to XMPP using an encrypted socket (better than the historical STARTTLS negociation system that is still used as a fallback mechanism). Regarding the IP resolution Movim now uses the Happy Eyeballs mechanism to resolve the server IP on IPv4 or IPv6.
Android application
Finally, the official Android app gained nice features thanks to the improved integration of Movim on your phone.
The notification handler has been reworked to handle newer Android versions, conversations are now stacked properly.
From any application you can now share a URL to Movim directly and publish it in a Post. In the future we are planning to add more sharing capabilities like this one (share to contacts or chatrooms for example).
Related to the video-conferencing improvements, audio and video calls are now launched in a separate task to allow you to switch back easily to your chat or publications while having your call. This makes it close to the experience you can already have on desktop.
Finally some work was done in #Movim and on the Android app to improve the general performance, especially regarding the touch features and general responsiveness.
To conclude…
As always you can test all those features on our official pod, or deploy them in a few steps on your own server :)
We always need some funding to help us promoting Movim and covering project costs, feel free to help on our Patreon.
And stay tuned for the upcoming releases, it seems that there are some interesting features already planned ;)
That's all folks!