The difference between an ‘encoder’ and a ‘decoder’ app is that a decoder can encode a string of bytes in the form of a sequence of numbers, and a lame encoders can’t.
But in both cases, the encoded data is then decompressed into something that can be sent to the user.
In this case, the user types a series of numbers into the app, and the app then decodes the numbers into text.
The lame version of the app could read this text into a phone’s memory, where it would then be decoded back into binary, before it was sent back to the server.
The lame decoder would only decode the binary data and then the text, as it is only in the phone’s storage.
A lame app would be a more efficient way to send data to a phone than an encoded one, since the data itself would only be sent once.
Lame apps would be able to send text messages, but they would need to send the data in binary, instead of the text it is encoded in.