Is it possible to have a self-updating iPhone application?
I believe the answer is no, but I am not sure.
I have a database driven app that is in effect a catalogue of products. I want the database to be on the users iPhone so the catalog is fast to use. However, periodically the content in the database changes.
I could create a push notification to tell the user that there is a database update ready, but it would be better if the app updates itself.
As fluchtpunkt answered, an iOS app can download new data, it just can’t download new code. Many iOS apps, such as the multitude of Twitter clients, primarily download and display data.
Where an app will get into trouble is if its interface doesn’t make clear the app is downloading data. An app shouldn’t use up an iPhone’s data plan allotment without the user knowing. Letting the user know can range from explicit notifications including the option to cancel the download to making the concept of the app all about downloading data (e.g. Twitter clients).
The user must also be notified if the app is sharing any information with the server. The app may want to send such data to selectively download specific data. For example the app could use location information to tailor the database, downloading only items available in the region the device happens to be. A login process may be sufficient notification, if the data is account specific.