This is a guest blog post written by Norton Lam from Magenic. Norton is a seasoned software engineer who took his 16 year passion for Java, extended it to developing mobile solutions around the Android platform, and now leads the Magenic Mobile development team at Magenic. Magenic Mobile creates transformational mobile software for the enterprise across every platform including iOS, Android, Windows, and RIM.
Many companies are trying to determine whether to develop mobile apps native to the platform, or employ a cross platform approach with technologies such as HTML5. So, what’s the answer to the Native vs. HTML5 question? As with all choices, there are advantages and disadvantages to each.
Native vs. HTML5
Native applications are going to give the best app experience, hands down. Tapping into the native API allows for rich, intuitive user interfaces and the best performance. In addition, it adheres to the platform’s paradigm which requires less training to be productive with the application. Developing natively will also allow for immediate access to any and all features available to the respective platform.
However, native development requires Objective-C knowledge for iOS, Java knowledge for Android, and C# knowledge for Windows Phone. These are specialized skills and can be expensive. Each platform also has to be developed independently. While there might be some cooperation regarding application features, none of the code can be shared.
Mobile web and HTML5, on the other hand, can share code across platforms. Developing code for one generally can be used for another. Web development skills are much more common and much less expensive than the specialized skills needed for native development.
It is also keeping pace with native APIs fairly well. A lag will always exist between new native features and what mobile web will provide, but it does eventually catch up.
Developing for multiple platforms, however, implies developing to the lowest common denominator for all the platforms. This is true with features as well as user interfaces. This could mean sacrificing features that aren’t available on all platforms or writing special code for features on one platform but not another. Developing to the user interface common to every platform generally breaks native user interface paradigms that could confuse users and cause frustration.
Probably the biggest challenge for mobile web development is in adapting to the screen sizes and resolutions. Where the native OS will take care of that for you, mobile web has to do it by hand. This could mean a lot of man hours dedicated to testing and tweaking user interfaces for specific devices unless one targets a smaller, specific set of devices. Keep in mind that the browser implementation of standards can be different on each platform as well. Accounting for all browser variations can take a considerable amount of development time.
Most recently, hybrid apps have taken the industry by storm. These combine the feature set of native APIs with the inexpensive, available web development skills of mobile web. In many ways, hybrid apps combine the best of both worlds. However, the disadvantages of both development methods also tag along. Be sure to understand the negatives as well as the positives before embarking down this route.
As with all corporate decisions, native vs. mobile web or a combination thereof is a decision that will be based on many factors. How important is the user experience? How important is performance? Is the money available to develop natively? Is outsourcing a possibility? What resources are available to support the app upon completion whether developed in-house or outsourced?
Answering these questions and understanding the pros and cons of native and HTML5 development will help an enterprise make an informed decision on which technology to pursue.