A January 2014 Forrester Research Paper
noted that, although HTML5 is a capable and mature technology, the mobile-centric apps built in HTML5 are still lagging behind native apps. And, developers prefer native app frameworks because of application speed and performance.
Today, the big choice mobile developers need to make comes down to choosing between Responsive Web Design (RWD) and Native App development. There are many reasons why RWD may work better for your team and project: support and requirements for multiple devices and screen sizes, data-heavy application content, complex UI/UX design, or simply the nature of your project may not warrant the investment of time and money into building a native app. Plus, mobile browsers (e.g. iOS Safari, Android Chrome) have become quite powerful engines capable of rendering complex UI/UX web designs and delivering speedy results to the end-user.
So why go native? Native app development offers something that RWD or any web-based development strategy isn’t able to accomplish and successfully execute: the integration with hardware device features, such as Bluetooth, the phone’s camera, and, also, the ability to store and access data offline using the phone’s hardware disk storage.
There are many ways you can create a native app depending the mobile platforms you’re targeting (e.g. iOS vs Android vs Windows Phone) and also budget and timeframe. Apps can be built natively for each platform using the tools provided by platform makers or, you can use an app accelerator framework that allows apps to be built once and then deployed to multiple mobile device platforms.
At Primacy, we work with a number of native and web-based development frameworks. Here’s an overview of some we’ve used on recent projects.
Native Development Frameworks
Google has been catching up to Apple for past few years and has a really strong programming platform that allows developers to create smartphone and tablet apps and also Google Glass
apps. Platform-specific Android apps can share common libraries though UI/UX templates, but may require some rework for each device and platforms.
We built an Android and Google Glass app
that we’re using at Primacy to book a conference room using Microsoft Exchange Web Services. We were able to re-use the code for network and data handling between the two platforms but had to write a custom UI/UX layer for the Glass app.
: Best performance for native Android application. Full integration with Android hardware devices and official Google support. The framework offers lots of documentation, sample code, tutorials, and a very passionate developer community.
: Knowledge of Java development language. Device and platform fragmentation. Limited visual development capabilities (e.g. requires coding for UI/UX template changes).
The iOS framework has been improving and making the lives of native iOS developers a little bit easier by introducing better UI and iOS modules with each release. The latest iOS7 release offers support for emerging technologies, such as Low-Energy Bluetooth (LBE), and contextual computing and integration with smart appliances.
: Best performance for native iOS application. Full integration with all iOS devices and official Apple support. The framework offers lots of documentation, sample code, and tutorials. Decent support for visual UI/UX template development.
: Knowledge of XCode development environment and Objective-C programming language. Requires a Mac workstation (XCode won’t run on Windows). The framework requires a steep learning curve to get up to speed and comfortable using Objective-C language and XCode.
: Speed of development and market availability. Multi-device support. The framework offers fast development cycle using HTML5 and Web-Based technologies.
: Not as robust as native apps. The entire app runs from within the browser and requires a web-rending engine in your app, which gets sluggish when dealing with complex UI/UX templates. You may spend lots of time fixing UI/UX related bugs. The framework offers limited hardware device integration and may not support the latest Android and iOS native framework features. Limited developer and vendor support compared to the Android and iOS development communities.
: The framework offers limited hardware device integration. You may spend lots of time fixing UI/UX related bugs. May not support latest Android and iOS native framework features. Limited developer and vendor support comparing to Android and iOS development communities.
The Xamarin framework allows developers to build apps for Windows, Mac, iOS, and Android using C# - a language many Windows and Web developers are familiar with. This approach allows developers to use the skills they already have to build native mobile apps for multiple mobile frameworks.
: Speed of development and speed to market. The framework offers native app speed (code written in C# gets translated into native code for iOS and Android). The development environment is very robust and familiar for C# developers.
: The Xamarin framework overhead (huge .NET assemblies and framework libraries). The framework offers limited UI functionality and re-usability across multiple platforms (e.g. templates built for Android can’t be shared for the iOS build). The framework may not be up-to-date with latest Android and iOS UI/UX libraries and standards. And, the Xamarin community and ecosystem are quite limited comparing to Android and iOS.
The reviews in this article should provide you with a solid starting point for deciding on a development route. Take the time to evaluate each framework. RWD is a great strategy that we frequently use and recommend to clients. But, if your app requires stellar UI/UX performance, integration with a device’s hardware features, and reliable offline support, you may want to consider building it using a native development framework.