You'll need to clarify what you mean by 'secure'. Secure against what exactly? What are you worried about?
That said, https (http over SSL) is a good starting point, this will allow you to authenticate the website to the device (or browser) and is ubiquitous.
If you want to authenticate the device, that's a bit more tricky. You can generate and store a shared secret (a random number) and when first connecting to the site, provide that in the GET/POST....there are many variations on this but the simple ones all stem from establishing a shared secret and anything else is probably overkill. This will allow you to recognise that the same device is connecting again the next time it connects. Think of it like a password for the device to log in with (however it doesn't need to be a word, and probably shouldn't be).
The difficulty with this is that if the program is deleted that secret will be lost, and depending on what you want to do exactly, that may be a problem as the next time the program is run on the same device you'll need to establish a new secret. In that case you'll have no way to know that the device connecting this time is the same as the one that connected before. If you need that, you'll need to use some kind of reset mechanism, which is difficult to do, and amounts to authenticating a user rather than a device.
Note, iphones have a unique identifier but that's not really a secret and providing it doesn't really provide any proof that a given device is connecting. It is no harm to provide it as well, but it's more like an assertion 'I am device foo', rather than a proof of identity. Think of it like the username part of a login - you still need some shared secret.