Mobile Applications: Web vs Native

When building mobile applications there is an important decision to be made each time: should the application be developed natively to one or more particular platforms or be web-based? There is no right or wrong answer as each application is totally different. Both paths have their pros and cons, and hopefully we can help make the choice more clear.

37Signals - Basecamp Mobile Web UI

Performance

When you require maximum performance, native apps cannot be beaten, they are compiled into machine code that is interpreted as close to the CPU as possible - simply put: the less time spent translating code the faster it will run. This is why most mobile games are native, because they require every ounce of performance they can garner. That said, this is becoming less of an issue as devices become faster and faster.

Cross-platform compatibility

The web was designed to be a generic protocol that can be accessed from any device, so if you're looking to target more than just iOS devices, a lot of time can be saved by removing the need to recode the project for each platform.

It is still possible to run into inconsistencies across platforms when using the web, as every browser is different but the time overhead of fixing those issues is usually much, much less than developing separate native applications.

Another thing to bear in mind is that you have one central system with web-based apps so when problems do occur, they can be fixed once rather than having to be fixed for each individual device.

API access

Operating system vendors like Apple and Google tie in various helpful APIs into their SDKs to allow easy access to features such as the cameras, location, orientation, sound effects etc and whilst it's not necessarily slower to code these for the web, they may not all be supported. An example of this is that Apple don't support file uploads or the camera within Safari, so if your app requires these, it must be native.

Marketing

Apple's App Store is now one of the biggest search engines in the world and pays out billions of dollars each year to developers for the sale of their apps. It sounds great, but there are two sides to this coin: whilst you can instantly reach a massive market of people who have the specific device(s) you support, you do have to give up a percentage (30%) to Apple for the privilege (other app stores' charges may vary) - whereas with the web you keep all the profit.

Budget

In an ideal world time would be spent building native apps for any device your customers or employees might use, however that's not going to be cheap. As mentioned in above, web-based systems don't require full rewrites for every different platform so they are generally much more affordable - especially if you already have/want a web application.

Making your decision

Unfortunately without hearing from you we can't really comment on what's your best option but hopefully this information has helped you think about what your priorities for your app are.

If you'd like more information on developing mobile applications both native and web-based, the links below are some great projects.