While getting an app into Android stores is fairly easy,
Apple's App Store has an approval process that's often strict, confusing, and
not always consistent. There have been
grumblings in the developer community because PhoneGap apps are thought to be nearly
impossible to get into Apple's App Store.
Originally, Apple rejected all hybrid apps, but after about 6 months,
they started allowing them and will no longer reject applications solely
because their user interface is built using HTML. In fact, many of Apple's own apps or
advertising platforms for iOS are entirely built with HTML/CSS/JS. Apple is
rejecting some PhoneGap apps because they are essentially nothing more than
webpages wrapped in a browser, marketed as an app.
The Apple Store will reject any app that doesn't "feel like an app." An app must offer a user experience consistent
with IOS's other apps or offer other advantages over a mobile web experience.
The following is a list of possible PhoneGap related issues that may result in an app being rejected from the app store:
- The app is just a website wrapped in PhoneGap
- The app requires the user to pinch/zoom/pan
- The app is just text on a page with hyperlinks and no native-like styles.
- The app is just a content aggregator or collection of links.
- The app is slow, jumpy, and animations are awkward.
- The app provides the same experience as the website.
- The app deviates from native functionality.
- The app contains inappropriate keyboard types.
- The app doesn't or improperly manages lost connections.
The following is a list of solutions to help a PhoneGap app get into the app store by giving an IOS app user experience as opposed to a web user experience:
- Focus the
Websites usually offer lots of tasks and options to visitors, this generally does not translate to an IOS app. App users expect to see useful content immediately. Avoid screens with lots of links and buttons, and trying to do too much with the app. Most apps offer a single service. While more can be offered, it's advised to keep it to a minimum.
- Make sure
the app lets people do something
People won't generally download an app just to look at marketing info. An app has to let the user accomplish something.
Don't try to replicate web styles in the app. Use native UI interactions such as buttons instead of text links, similar menus with transitions, lists that look like IOS lists, etc.
When designing a website, we generally put the most important information on the top half of a page ("above the fold") but on an IOS application, scrolling is easy and an expected part of the experience. Avoid resizing fonts to make them smaller or putting links to more content ("next" buttons).
the homepage icon
Websites usually have a link to go to the homepage on all pages of a website. This is unnecessary on IOS apps, and a dead giveaway that you just wrapped a website.
- Look and
Make sure lists, buttons, icons, and text match native styles and behaviors.
On websites, spinners are sometimes used when data is loading asynchronously. On IOS apps, they should always be used.
Avoid anything that will make the app lag, flicker, or jump. Use CSS transitions and animations since they are hardware accelerated. They will be smoother and more aesthetically pleasing.
Don't try to put every possible feature into the first version of the app. The initial approval process is the most difficult and time consuming one, updates take less time and are usually much easier.
and Bug fixes
Apple will not allow apps with bugs into the app store. Letting an app go for approval with bug fixes will result in a rejection and delay of the app appearing in the store. Make sure the app is tested on all supported devices.
Apple App Review Guidelines (requires developer account)
PhoneGap, Apple Rejections & UI/UX Guidelines
IOS App Approvals Wikipedia Article
How to avoid App Store rejections (Video)
Apps Created with PhoneGap