Android phones may soon be able to send and receive iMessages thanks to a new open-source app called PieMessage.
You can check out the work-in-progress app in action in the video below. It was created by iOS/Android app developer Eric Chee, who has the source code for PieMessage on GitHub if you'd like to take a look, as well as instructions for setting it up at home if you're comfortable working with AppleScript, Java web servers, and Android Studio.
PieMessage needs a server to run on, but instead of running on sketchy third-party servers, PieMessage can connect via an OS X client on your Mac. So this should let people use their own Mac to set up a server to send and receive iMessages from their Android devices without compromising the privacy of their conversations.
Essentially, PieMessage sends the message from your Android phone to your Mac, which then relays that message to your recipient on iMessage. When you get a new iMessage from the recipient, your Mac will the relay it to your Android phone.
So, it's not the greatest solution. But if you have an old Mac sitting around at home, you could leave it on to act as your server so that you could send iMessages when you're away from home. Although, it's probably worth it just to get my iPhone friends to quit pestering me about how "horrible" it is that my SMS texts show up green instead of blue.
There's no support for sending group iMessages (though you can receive it), so it's best to stick with one-on-one iMessages at this point.