I recall seeing an iOS app that will allow you to text non-iPhones for free if the app is installed on the receiving and sending phones. Have you heard of this? I cannot seem to find it.
In general you can text with any other person/phone without installing an additional app.
When the other user has an iOS device it will try to send it via iMessages, when the other person has another phone it will simply be send via SMS.
As for Apps the options are plenty, Skype, Line, Kakao Talk, Messenger, ICQ, WhatsApp, etc.
Whether SMS are free or not depends on your contract. In most cases you have like a thousand included per month. All the other options, be it iMessages, Skype, WhatsApp require mobile data or WiFi connection.