Q: What kind of data-type would be the most efficient/fastest to use when transfering data between a webserver(/other?) and a mobile phone, ie ios/android/other?
- JSON ?
- XML ?
- HTML ?
Q: What kind of serverside technologies should be used?
- php + mysql ?
Q: What kind of API should be used?
- Restfull?
- RPC ?
Any thoughs ?
Have you looked at Google Protobuffers? this is an efficient binary formatter with cross-platform capabilities (java, c#, python, objective c, PhP. There’s even a JScript implementation knocking about but I wouldnt trust it!)
Have you looked at messaging frameworks such as AMQP? I have successfully implemented a cross-platform binary messaging system using AMQP as a message router, Protobuffers as binary serializer and Rabbit MQ as C# and Java client. It was extraordinarily fast and could perform a roundtrip request/response from client to server and back (including serialization/deserialization, excluding network times) in only 0.5ms.
The messaging stack becomes:
JSON is your next fastest serializer but nothing can compare to binary for speed and efficient use of bandwidth.
It also depends on how your data is going to be stored. Are you storing relational data? Then use a relational database. Are you storing time series data? Then use a column-ordered database or even a flat file. PyTables is an excellent example of python-based file centric database which is highly suited to storing scientific datasets and timeseries.
The answer to this question really is “It depends” – on what you want to do. I would also consider developing in a serverside technology you know well rather than pick one based on numbers as they are all fairly similar.
Best regards,