Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best server client communication protocol to use in Android and iOS?

We have a server application (implemented in Java) that will provide some data for our mobile apps. The apps will be created for Android and iOS.

Which is the best protocol / library for this purpose? The overhead of the protocol should be as small as possible.

Thanks.

Edit: It should be a request->response szenario. Data lost is not acceptable. The answer could contain a long list of data and therfore less overhead is required.

The client shall request the data (a specified key and some definied parameters) e.g. "give me all file from folder x that have the extension y". The server answers with the list.

The first idea was using XMLRPC, but the generated responses are too large.

like image 877
André Avatar asked Nov 25 '10 16:11

André


2 Answers

For most applications, HTTP(S) is the best protocol to use. The overhead (i.e. headers) is pretty small, the transfer can be gzipped, the connection can be secured (via SSL). Also, ports 80 (HTTP) and 443 (HTTPS) will be open in 99% of cases. Other ports are not -- for example some carriers block all other ports unless you pay extra.


As for the implementation, I suggest a RESTful web service using the JSON format. JSON is well standardized, has small overhead and you have good libraries for working with it in any language (check out org.json, which is bundled with Android but can be downloaded as standalone for other applications as well). Check out this question, too:

  • https://stackoverflow.com/questions/338586/a-better-java-json-library
like image 170
Felix Avatar answered Nov 14 '22 21:11

Felix


Use Jackson parser or Gson parser instead of JSON Parser.

1.Jackson is 2X faster than JSON and it is suitable for parsing complex and extremely big jsons.

2.Gson competitively faster than JSON.

like image 28
XEENA Avatar answered Nov 14 '22 22:11

XEENA