So you want to build a mobile app. Should you choose native or hybrid mobile application development? Each choice has advantages depending on your projected use and time to market.
What is a hybrid mobile application?
Mobile apps generally fall into two categories, native and cross-platform or “hybrid”. A native mobile application is just what it sounds like: it uses the SDK (Software Development Kit) and hardware features specific to a particular mobile operating system. Hybrid mobile applications also fall into two general categories, hybrid HTML5 apps and native cross-platform apps.
Hybrid HTML5 applications rely on back-end servers for handling application logic. These apps are designed for smartphones and tablets and use a native container to wrap a web app. They look and feel like native apps and have access to some of the device’s built-in capabilities like file storage, accelerometer, contact data, and notifications. Many hybrid HTML5 apps are built using Apache Cordova (previously known as PhoneGap).
Native cross-platform applications, often built using Xamarin or React Native, provide an experience that is closer to native apps. Developers can create a unified API running on top of a native SDK. Performance of native cross-platform apps is significantly better than that of HTML5 apps.
Popular tools for hybrid mobile application development
There are multitudes of mobile app development platforms, but the lion’s share of the market is held by Ionic, Xamarin, Apache Cordova, and Unity.
The Ionic Framework is a very popular choice among mobile developers. It is build on top of Apache Cordova and offers many of the best features of both cross-platform and native development.
Ionic gives developers access to all of Apache Cordova’s plugins. It combines this with familiar Angular tools as well as its own UI library. Other features of the Ionic framework include a command-line interface and integrated emulators. It allows native-looking UI designs as well. With this combination of features, Ionic has a large following.
Xamarin uses both native libraries and C# wrapped in the .NET layer. This allows developers to use a mature language and framework, with up to 96% of the source code being reusable. It also allows developers to create a UI code layer that’s specific to a given platform.
Unity is very popular for developing games and other 2D/3D applications. It supports not only iOS and Android but also Windows and Xbox. Unity is especially good at presenting 3D content. However, it can use a lot of memory, and performance issues can be hard to identify and resolve.
Native or cross-platform? Pros and cons
Which approach is the right one for your project? That depends on a number of factors, including the intended use of the app, budget, depth of integration with device hardware, and time to market.
Hybrid mobile application advantages
- Faster initial speed to market: If a mobile app development project needs to be ready in less than about six months, hybrid tools will do the job.
- Portable code: Maintenance is far simpler and cheaper with a single code base across platforms.
- Access to plugins: Plugins provide access to various hardware/software capabilities.
- Lower origination costs: Faster development + portable code = lower budget.
- Exposure to a broad user base: Compatibility with more hardware and operating systems delivers your mobile content to a bigger audience.
…and disadvantages, mainly for game development
- Speed: HTML5/CSS can be a heavy load for mobile device processors.
- May not have access to *all* device hardware and/or OS capabilities
- UI design issues: This applies more to apps where a single UI needs to meet design standards for multiple platforms. Users may have a steeper learning curve if the UI isn’t familiar.
In August of 2012, Facebook released its native iOS application. This new app replaced the original HTML5 version and solved several complaints about the old app. Its story illustrates many of the pros and cons of hybrid apps. Jonathan Dann posted his notes about the rebuild in Under the hood: Rebuilding Facebook for iOS. While there have been a lot of changes in the mobile development space since 2012, his experience is still worth reading.
Native mobile application advantages
- Performance: Native apps are faster. Period.
- This mainly affects games; modern smartphones can handle the demands of regular applications.
- Tight hardware integration: There’s no need to depend on plugins.
- Again, this mainly affects games. Other apps aren’t likely to need such deep integration with device hardware.
Hybrid mobile application development is faster and less expensive to maintain than native app development, while native apps offer superior game performance and tighter hardware integration. For the great majority of apps, hybrid tools will be the better choice.