Do most iPhone apps communicate via web services? - iphone

Do most of the popular iPhone apps that communicate with a back end Internet server communicate via web services? I was assuming this was the case.
Some apps I'm thinking about would be: Facebook, Bloomberg, NY Times, ESPN, etc.

Well a web service is just an API - Application Programming Interface
The apps you mentioned would probably all implement their own API for exchanging data between the client and the server so yeah, I would say the answer is yes. You can implement your own API via XML, JSON etc. You just need to define the protocol. You can implement existing concepts in your own apps. Have a look at the following:
REST
SOAP
JSON

Most of the Apps that I've written use web services of some sort, I prefer being RESTful, but I have been forced to use SOAP.

Related

RESTful webservice hosted on iPhone

My question is, Is there a way to host RESTful webservice on iPhone? This is possible in java based mobile.
RESTful Web Services Implementations in Mobile Devices
EDIT:
I want to host and consume RESTful web services from/within different mobile devices. I cant use socket for my project.
I normally use ASIHTTPRequest for webservice on iPhone, it supports RESTful. Give it a try, I am sure you will like it.
You'll want to check out something like this:
http://cocoawithlove.com/2009/07/simple-extensible-http-server-in-cocoa.html
Or, implement your own HTTP server on iOS (I suppose).
It's definitely possible.

iOS Device communication

I am keen to get some apps built that can communicate with other devices/ web etc. i have played around with FTP and can get so far. But what is the best way to do this? We don't have any Servers with databases etc, but do have a site that we are currently uploading and downloading files to.
can anyone suggest a good/ better way to get the device to send/ receive files?
thanks
sam
If it's HTTP communication you're wanting to do, the simplest and most powerful tool is ASIHTTPRequest.
HTTP is the protocol your web browser uses to talk to web servers. If you have a site you're storing and downloading files at, it's almost certainly HTTP you're talking to it.
For iOS device to device communication one can use Bump API.
EDIT: I don't know of a generic framework for device <-> server communications, but having built applications that use web services of other providers like Yelp, Yahoo, Google Maps, I would say the way to go for this is to have REST based web services which exchange data in JSON format.

Publish Subscribe from WCF to Android, Iphone, WP7

Is there a framework that supports publishing (pushing) messages from a WCF service (REST or SOAP) to various clients like IPhone, Android and WP7? I'm thinking I can use the WSDualHttpBinding to do dual communication between WCF and WP7. However, I'm assuming WSDualHttpBinding is not supported in the other two platforms since is not a WS-* standard and there's a lot of stuff that WCF does to establish a receiving channel on the client side. Is there any other way to accomplish this? How would I about rolling my own?
I'm thinking about exposing my WCF service as a restful endpoint and implement a COMET style pub/sub and calling it good.
I'm stuck. Any help would be greatly appreciated.
Since you already have a solution for WP7, you could probably use urbanairship.com to handle the pushes for iPhone and Android. I've used them on a prior project with good results. (I don't work for them.)
I found this "Cloud to Device Messaging", C2DM, yesterday and thought it may serve your question:
http://www.makeurownrules.com/archives/category/android
Have you considered using SignalR? It'll fallback gracefully from WebSockets & Server-Side Events through to long polling. There's a mono implementation of the client-side library.
We're successfully using it in a large-scale realtime application and it works a treat. A bit further down this page it details how to communicate with clients from outside the SignalR infrastructure which may be useful if you want to talk to clients from your WCF service.
Cheers,
Dean

How call SOAP based web-Service using PhoneGap in iPhone?

I am newbie for PhoneGap and our client's requirement is to access SOAP based web-service in iPhone using PhoneGap, basically accessing the web-service using javascript, any help would be appreciated.
calling a webservice with phonegap is the same than calling it directly from your browser (but you have to think about the same orign policy).
Some performance implications are here to consider was well because processing big chunks of xml in javascript on mobile phones might be slow. So you could use some kind of weserver to talk to the webservice end send some simplified json to your phone or you can take a look at this tutorial from ibm describing how to call a webservice directly from javascript:
http://www.ibm.com/developerworks/webservices/library/ws-wsajax/
as i know, call web service from mobile device just like call web service from out side of that web service. So we need cross domain.
To cross domain, we need the support from server side, such as: Jsonp or proxy

How does iphone apps interact with server?

I am a new programmer who is new to iPhone development and server stuff. I have a lot of questions to ask.
You don't have to answer all the questions; any help is appreciated!
How does iPhone apps interact with server?
Is there a particular kind of server i should use to interact iphone app with server?
If there is no particular kind of server then what kind of server can be used?
What are their advantages and disadvantages?
What should the iPhone app (which is the client) do in order to interact with the server?
How does the server know which iPhone to send data to?
What should the server do in order to interact with iPhone app (client)?
Your best bet is to have your iPhone make web requests of a web server. Your iPhone app acts just like a web browser, making http requests to a web server, and parsing the response.
I'm building an app right now that hits PHP scripts I've written that do database work, etc, and return JSON objects. It's not fancy--I could have built a whole SOAP or RPC web service, but I didn't do that, it just makes GET requests with query-string arguments.
There are handy libraries you want to know about. Google "iPhone JSON" to find the JSON library written by Stig Brautaset, that's the one most people seem to be using. Also, rather than putting yourself through all the hoops that the iPhone's built-in web client framework requires, go get ASIHTTPRequest, a very powerful and MUCH simplified web client library.
As a general rule, you want to do as much processing on the server as possible. For instance, there's a place in my app I'm searching for events happening within a user-specified range of their local coordinates ("within 10 miles of me"). I wrote PHP to build a latitude/longitude bounding box, and query from the database based on that. That's WAY faster than bringing a bunch of events down and then asking Core Location to calculate their distance from where I'm standing.
You've asked quite a few questions so I'll try my best to answer them all:
First, you need to be a bit clearer, what type of server are you talking about? Email server, web server, lolcat server, it depends.
At the basic level, the iphone communicates over the internet. The internet uses Internet Protocol, and there are two standard protocols built atop of IP: Transmission Control Protocol, and User Datagram Protocol. Each has it's own uses and functions.
TCP/IP and UDP/IP make up the backbone of internet communication.
A more specific application protocol is built atop of these two internet protocols, with a specific format to a given application. For example, HTTP is the standard protocol for transferring HTML and other Web information between a web server to a web browser client, over TCP.
So, your iPhone would use whatever protocol is required to commuincate with the server. For more common server communication, the iOS SDK provides methods to construct messages (for example if you wish to make an HTTP request to a web server, you can use initWithContentsOfURL to send a GET request).
If you built a custom server, then you will need construct the required message protocol on the iphone, and send it to the server, using either TCP or UDP (whatever your custom server expects).