Group iMessage Apps are problematic

I get the distinct feeling, based on the WWDC presentations, that group iMessage apps are either incomplete or not really thought out. Add to this that there are no group conversations possible in the simulator. The group message part of the demo was just a couple of slides and he used the phrase "we are recommending for the moment" which leads me to believe that Apple probably has unfinished business here. I think that the idea of making MSSession the carrier of data and make each subsequent message create a stack of unprocessed responses so that when the user clicks on the bubble it sees each response and can process them one by one.


What I'm wondering is, in the same section, they talk about privacy. So each device will get different identifiers for each user. If you are using the cloud, I don't see how you can then aggregate responses correctly. Take this scenario:


I send an iMessage App (IMA) to two of my friends and it asks them to pick what they want for lunch.


  1. Friend A responds with Chicken Sandwich
  2. Friend B responds with Chinese


Now we saw in the demo that this isn't going to work well as chances are you will only end up opening the response that comes in second. So Apple's solution is for you to have your friends devices upload their preference to the session URL. So far so good. Now we have our cloud service (which we will have to build) and it can accept and aggregate all responses. The only trouble is, it would look like this:


  1. Friend A responds with Chicken Sandwich: their phone uploads { "EA0...": "Chicken Sandwich" }
  2. Friend B responds with Chinese: their phone uploads { "D39...": "Chicken Sandwich" }


Assuming that you are using their local device user identifier for the key.


Now when your app downloads this data, you have no way to tell who is who. Because your device has it's own private identifiers for these users which will not match the ones uploaded. I guess each device could add the name of it's user to the payload but that's a hacky way of doing things. Privacy is great but this seems to lay down the gauntlet for developers to work around Apple's privacy and effectivly leak data into the cloud service.


Apple demoed a restaurant menu app that allowed them to all see who was ordering what. I wonder how they went about this given the deliberate obfuscation of user IDs? They must have also been using a cloud service to store the menu selections?

Accepted Reply

From what I see this is a known issue as Apple doesn't want us to be able to easily gather the names of the participants due to privacy concerns. I think the only workaround now is to have your users authenticate with your cloud service and provide their details.

Replies

I agree this seems to be a problem and cannot find an answer on if this is a known issue or a misunderstanding from the talk.


Can anyone clarify?

From what I see this is a known issue as Apple doesn't want us to be able to easily gather the names of the participants due to privacy concerns. I think the only workaround now is to have your users authenticate with your cloud service and provide their details.

isn't the solution to display with a dollar in front within the conversation.


let message = "$\(remoteParticipantIdentifiers[0]) wants a Chicken Sandwich"


That should give you in the message the name as human readable.

I tend to agree. Which is unfortunate. I'm all for privacy and obscuring the user name etc would be quite okay. But I don't see the point of the device local random generated identifiers. It makes it impossible to aggregate group data unless you do push to a cloud service. Without using the cloud, my iPhone and iPad are not even able to reconcile my options within the app.


Perhaps we'll see a better API for this next year. In the meantime, it's roll your own cloud service to support an iMessage App that (in theory) could have used iMessages for ALL transfer of information.

Hi holger. Thanks for the reply but I don't think you understand the question. This is specifically talking about the issue Apple highlighted with group messages in the session on messages and stickers. We are talking about aggregating group iMessage responses with a cloud service.