Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I write a desktop application that syncs with the iPhone?

For example, how would I write a program like senuti? Are there any libraries I can use for this? It would be ideal if I could do this in Python or .Net, but I'm open to other things as well.

like image 799
Jason Baker Avatar asked May 24 '09 19:05

Jason Baker


People also ask

Can you integrate iPhone with PC?

Using a USB cable or adapter, you can directly connect iPhone and a Mac or Windows PC.

What happens when you connect your iPhone to your Mac?

After you connect the device, the device icon appears in the Finder sidebar and selecting the icon displays syncing options. You then select which items to sync. If you have an iPhone (with iOS 5 or later) or iPad, you can also set up to sync wirelessly when your Mac and device are connected to the same Wi-Fi network.


2 Answers

There are three things you can do:

  1. Add some code to your iPhone application which acts as some kind of server (http, SMB, etc). Then your mac/windows full client application can connect to this server over wifi. This is safe and reliable, but unfortunately the app will have to be running on the iPhone at the time of sync.

  2. Sync to the "cloud". EG: Have your iPhone app save some data to a web server on the internet (you could use amazon EC2, windows Azure, or even just a PHP script running on a cheap hosting account), and then have your windows/mac client also connect to this web server to retrieve the data. This is the most user-friendly, but it requires you to pay for the hosting of the web server, and will be unsuitable for large amounts of data

  3. Violate the EULA and try to reverse engineer the way iTunes communicates with the iPhone. This is how senuti works, but I wouldn't recommend it, as they're constantly having to play catchup with apple changing the format underneath them, and they are probably exposed to some kind of legal action, if apple ever bothered to sue them.

like image 107
Orion Edwards Avatar answered Oct 18 '22 00:10

Orion Edwards


i believe Version 3.0 will resolve this as it allows you to program apps to the USB interface. check out some of the documentation for that in the External Accessory framework.

it would still require the app to be open, so essentially would mean two syncs (or more if you have multiple apps)

like image 4
Bluephlame Avatar answered Oct 18 '22 02:10

Bluephlame