I run Prosody XMPP server on a cheap VPS, and appreciate how it's a stock Debian package, greatly simplifying security updates. It's delightfully lightweight on the server.
I use Conversations as a client in Android, and Gajim in Linux.
The basics like OMEMO, file attachments, push-to-talk voice memos (in Conversations, but not Gajim) work well. All comms are at least client-to-server-encrypted, and the OMEMO-protected comms are end-to-end encrypted.