making a mobile application from an existing website

In addition to the good response of @Joel, you should first understand what kind of features you should offer to the user, if the major feature will only be able to view the website using UIWebView just to be able to distribute the app on the store, as @Teofilo said it is not allowed. Currently there are different solutions for developing cross-platform applications, (ie PhoneGap), which allow you to develop apps for different platforms using technologies such as html5, ajax etc through UIWebViews.
It depends on the type of functionality that you want to offer to the user, the performance will certainly be best in case of native development, because you have more control over the application and on the device, but may still be convenient to use a cross-platform solution if the shared features are easy to implement, in order to obtain the same result on different platforms. Also not so much matter what kind of technology you use on the back end, the important thing is to use standard formats / protocol for communication (ie. http / json). This is just my point of view, I hope someone can give his perspective on this topic, because I noticed that is very recurrent today.
However good question.


See clause 2.12 of App Store Review Guideliness

https://developer.apple.com/appstore/resources/approval/guidelines.html#functionality

...Apps that are simply web sites bundled as apps... may be rejected


Let's start with the basics.

A mobile site is a website accessed through the phone's web browser. The HTML pages are served from a web server (and the UI is optimized for the phone layout).

A native application (often referred to as "app") is essentially an executable application that is downloaded to the phone. For iPhone these are written in Objective-C. For Android they are written in Java. For Windows Mobile they are written in C#, etc.

Here's the bad news you are facing:

-In order for your application to launch from the "home screen" of the iPhone it must be compiled using Objective C. Same with Android/Java.

-In order to access the camera, it needs to be compiled using Objective C (or Java for Android).

So here's some good news for you:

-You can easily write your native app to be a purely UI front-end and call your existing server side code using a REST API model for the business logic. You just have to expose the functionality you need to expose to the app. So that's 1 way to reuse existing code base and make the app simpler. There are good Objective C frameworks like RESTKit that make this pretty easy.

-You could make your app really cheesy and essentially make it a web browser to your site, but that may not be approved by Apple if you don't customize it for iPhone somewhat. And it will be a poor experience for iPhone users who expect an app to perform like an app. I would not recommend this.

-If you plan to release onto multiple platforms, or really don't want to have to maintain an Objective C project (and Java project in the future), you could use something like PhoneGap, Appcelerator Titanium, or Sencha Touch. These are wrappers that will take an application written in web technologies (HTML 5) and compile them into native apps. These HTML 5 applications can access the camera, etc. Your existing developers don't have to learn Objective-C and can use their HTML/JavaScript skills they already have. There is a lot of upside to these technologies. The downside is your app will not look/feel quite as good as a native app or use any of the "cool" features of the phone. It will perform sorta like a good mobile website. If you have good UI/design people, you can create something pretty good using these web technologies. But if you are just looking to emulate a website into a native app (and not create the next killer game), then it's probably your best bet for a number of reasons.

If you google native app versus phonegap (or sencha touch) there are is a ton of information on the pros and cons. That's probably a good place for you to start learning.

Tags:

Ios

Iphone

Mobile