ttmsg is a messaging app based on MQTT, a publish-subscribe protocol.
Introduction to MQTT, including architecture diagram can be found here and protocol specification is found from OASIS site: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html. MQTT Essentials is also a good reading.
Web site mqtt.org describes protocol as: "a machine-to-machine (M2M)/"Internet of Things" connectivity protocol", but nothing prevents using MQTT on human-to-human messaging and that's the main use case of ttmsg-app. The other use case is human-to-machine messaging.
Publishing, or sending, messages is simple. MQTT client, ttmsg-app in this case, connects to a broker and publishe message to a topic. Topic can be a string, such as "helloworld". In order to receive messages, client needs to subscribe to the topic. After subscribing all messages that are sent to a topic are received. This also means that if client is not subscribed to a topic, nothing is received.
See this video that briefly shows how to use ttmsg: https://youtu.be/r5KmaNiHqhU.
The app is simple to use and in the video, you see it too. You see how to publish messages, how to subscribe to topics, how to publish images and see the settings page.
App Store Review Guidelines includes section 1.2 User Generated Content. ttmsg includes flag- and block-commands which are implemented to comply with guidelines. Block-command enables user to block content so that similar content and content from same publisher is no longer received (limited to topic). Flag-command enables users to flag messages so they are no longer received in any topic, and it also sends a command message to block the user (who sent the flagged message) from sending messages to the topic.
Questions, feature requests, etc.? Contact me.