title: Use XMPP instead of HTTP
body: <p>My friend and I, we are working on iPhone application. This application uses XMPP protocol to provide chat functionality. Right now we are designing architecture for the application.</p>
  
  <p>So my friend is working on iPhone side, and I am ruby on rails guy. </p>
  
  <p>My friend suggested, that we wrap every call, that is usually served via HTTP into XMPP. So, user registration, users search, profile editing, photo uploading, everything goes via XMPP. No HTTP at all.</p>
  
  <p>My friend wants to use XMPP, because he says, that it's much easier to implement XMPP on client-side rather HTTP. As for me, this is bullshit, but we've got a product owner, who have been working with my friend for a long time and he trusts him.</p>
  
  <p>So what I'm trying to do is to convince my friend and product owner that using XMPP for what HTTP can work find — is totally not the best idea. </p>
  
  <p>I feel, that if we implement everything on XMPP, we will have a pain in an ass till the end of lives. But how do I prove it?</p>
  
  <p>P.S. I'm not against chat over XMPP, I am against users search, photo uploading, rankings, nearby search and various other restful requests.</p>
  
  <p>Please, leave response. Any help appreciated.</p>
  
  <p><b>A little update:</b></p>
  
  <p>Yesterday we had a long discussion. And it turns out, it's quiete hard to receive response from both XMPP and HTTP in Objective-C. Because every single object and its data should be stored in Core Data model, while this model can't be securely modified from various places. Say, if you use HTTP transport, you always want to use only HTTP transport to update data in your model. And if you use XMPP, you should always use XMPP. So, you can't use both. </p>
  
  <p>That's what my iPhone buddy told me. 
  It sounds weird for me, can anyone explain me that? </p>