Part 3 of our 7 part series where we look at most common myths about mobile app development. Don't fall into the trap!
Myth #3: To save cost we should not build native apps per platform
Reality: If you want an excellent app, native mobile app development is your best bet. No doubt about that.
It seems simple and logical to code something once and you can push it out to everyone using any device. LinkedIn thought the same initially, as did Southwest Airlines and Facebook. But this convenience was countered by some pretty dramatic downsides. In 2012, Mark Zuckerberg called 'Betting on HTML5' his biggest mistake.
Initially, Southwest used a cross-platform toolkit to code and distribute its mobile app across devices. Soon, at every conference people would use it as the example of the worst app in the App Store.
Southwest, Facebook and LinkedIn have since then re-developed their mobile apps to create a much better experience.
Startups still get lured to cross platform mobile app development. They do not want to invest time and money into developing mobile apps separately for every OS. So they try to rely on HTML5, hybrid mobile apps and cross-platform toolkits, but none of these work well enough to build the high-end mobile experience that smartphone users expect.
All these approaches to mobile app development have their own set of drawbacks:
- HTML5 Suffers from Cross-browser compatibility issues and behavior differences between browser versions that are difficult to resolve. Debugging is difficult and time consuming. Lacks optimization tools and requires a lot of data. Eventually you end up needing to optimize for each platform anyway.
- Hybrid Apps These offer part HTML5 and part native functionality however they are often a poor abstraction layer (for example the URL bar shows up every time you refresh a screen), and the communication layer between the web view and app is complex and littered with errors.
- Cross-Platform Toolkits Toolkits are abstractions over native code but the logical flow for platforms still require coding to follow the patterns of the native platform. So essentially you are using a common language to write the code multiple times for each platform. Worse you are stuck with the toolkit to provide upgrades when a new OS version is released and are at the mercy of toolkit providers. You still need knowledge about native platforms and after a while it seems native coding would be better.
If you were to develop a sample with any of these tools and compare that with native built version from the end user perspective, the native approach to mobile app development wins every single time without exception.
Building native is the only way to build great apps that leave a good first experience for your users, period.