I am surprised to not see Jami ( http://jami.net ) mentioned here yet. It is a GNU project and is fully cross platform. I use it to send files and messages between my devices, as easy as Telegram or Whatsapp.
EDIT: I removed my password and instead of relying on the app for scanning the pin, I used the iOS built-in camera app to scan the pin and copied it to the app. Now it works. But that was poor experience nevertheless and I wish it was better designed.