Hybrid mobile apps can be defined as mobile applications that are built using web technologies, then wrapped in a native wrapper for app stores. They are built using web technologies, like HTML, CSS and JavaScript, as opposed to native mobile applications, which are built using technologies native to the specific mobile platform. Native iOS apps are built using Objective-C. Android apps are built using Java. Windows Phone apps are built using C.
Building a hybrid mobile application offers various advantages over building a mobile application using native technologies. Hybrid apps are built using web technologies, the lingua franca of all web designers and developers, so the developer base is much larger than the native app developer base. If you build a hybrid app, you can reuse the same code for apps on iOS, Android, Windows, BlackBerry, Symbian, Bada, FirefoxOS, Tizen, etc. Costs for one native app can range from $1000 to $1 million. Rather than spending 50K building an app for iOS, then another 50K building the same app for Android, you can build once, and distribute everywhere.
People typically criticize hybrid apps for slow performance. Hybrid apps don’t necessarily perform worse than native apps as a result of the technology. It’s more likely the case that web developers have been developing websites for a number of years sitting at a desktop computer with a T1 line and unlimited bandwidth, and just haven’t spent much time troubleshooting the issues we see on mobile devices like bandwidth limits, latency and network connections dropping. The team at Sencha even built a version of Facebook’s native app called Fastbook, but used web technologies, and showed that not only can performance be matched, but HTML5 apps can perform better than native apps, when done right.
There’s a set of best practices that are emerging for developing fast, optimized, modern hybrid applications, which have been reenforced around the industry by experts like Christophe Coenraets and Paul Irish. They involve things like making sure you generate your user interface on mobile devices, caching your data, selectors, and UI elements, using CSS to offload processing to mobile device hardware, and avoiding reflows.
As the differences in processing power starts to become negligible, developers become more savvy with developing specifically for mobile, and the proliferation of devices that can display HTML content continues, we’re going to see an explosion of hybrid apps as the cost of developing them drops with the shrinking costs of technology in general.
To learn more about hybrid mobile apps, including the history, tools and process around building them, try reading my book. It’s short, so you’ll be back on the job creating your own hybrid mobile apps before you know it.