If the project budget is extremely tight, building native apps for iOS, Android and Windows Phone is the worst possible option: either your budget will cover only one platform, or the feature list will shrink to the unappealing minimum. In this case, doing with a decent mobile website is more thoughtful, as it will ensure reach of the widest possible mobile audience while delivering a value-added service.
Note: In certain cases, kicking off with an app for just one mobile platform is part of the business strategy. In this case, native development will work, provided the feature set it covers is complete and actually attracts customers.
With a medium budget, you have to decide between coverage of a larger audience and providing a stunning user experience to a narrower part of it.
Based on the feature list, a system analyst evaluates how good the app is to be accessed via a mobile browser, or whether native mobile app/cross-platform option shall be considered instead. For example, if you aim to build an online calculator with 3 controls and a result display, developing a mobile web app is most reasonable: bringing it up in the browser is a way easier than visiting the app store, downloading, installing and launching the application… all for the sake of a 2-second operation. However, if you are building a new “Skype”, even cross-platform is a bad choice as it won’t beat its native counterparts in terms of performance and look-and-feel.
When deciding on what format to choose, ask yourself:
- how often shall the app be updated?
- who will be doing the updates?
- do developers need to be engaged for every update?
- how long can users wait for the update delivery?
With native apps, it can take from several hours up to 10 days to have the update published. With a mobile web app, you can introduce on-demand textual updates on your own using a content manager system.
A Few More Words about Cross-platform
Although cross-platform app development technologies have progressed in recent years, their major drawbacks persist:
- A cross-platform app is usually slower than its native counterparts, mostly due to poor UI responsiveness: cross-platform means one more abstraction layer and, as a consequence, increased data processing. However, all client-server interactions are in par with what one can get when using a native app, so this deficiency is mostly applicable to the apps with heavy user interface;
- The typical UI in cross-platform apps is quite generic, which can be a disappointment for those who got used to the apps built specifically for their mobile platform;
- With cross-platform development, certain device/platform features are not available. Some features cannot be implemented at all, or can only be implemented with workarounds, again, due to an abstraction layer added for cross-platform enablement.