Before you dismiss XMPP and seek for alternatives that need at least another 5-10 years to be actually usable (looking at you [matrix]) you might want to take a look at how far XMPP has come in the last 2-3 years. The Android client Conversations ( https://Conversations.im ) is a prime example on what can be achieved with XMPP today. In band images, emojis, End-to-end encryption, group chats…
when someone using conversations writes to me, what i expect is that i get the message on my desktop, as well as on my mobile client. but conversations will ALWAYS ask the user where he wants to send the message, if on my phone or on my desktop client. this should not happen. it should just send it without the resource set, and let the xmpp server figure it out.