Gartner has predicted that by 2016 more than 50 percent of mobile apps deployed will be hybrid. Hybrid apps are cheaper to build, have shorter development turnaround, and are fast enough to meet the majority of companies’ needs. Native still offers a better experience, but a growing market of tools are helping hybrid apps near- or even match!- native performance.
The challenges facing hybrid apps revolve around performance and user experience. Consumers tend to be loyal to their favorite platform, as demonstrated by the popularity of “Android versus iOS” jokes. Hybrid apps in their basic form can’t provide the intuitive navigation users have come to expect from their apps.
Performance is a major concern. Users expect an app to open fully within two seconds, and 80% will stop using an app after three failures. Experts cite poor performance as the leading motivation behind the more than 26% of installed apps which are abandoned after the first use.
Fortunately, modern hybrid frameworks are working to compensate for these structural problems. No single framework has solved all of them (yet), but several have come very close. Here’s a rundown of the best frameworks around for building fast, functional hybrid apps.
Xamarin uses C+ to build cross-platform mobile apps. It creates a platform-specific user interface layer, giving apps the familiar look and feel of their preferred platform.
The unique approach to coding also allows apps built with Xamarin to access specific-device features. Need to use the compass on an iPhone? No problem. Want the accelerometer to track movement on an Android phone? Done. Combine that with the fact that Xamarin is natively compiled and it’s easy to see how it simulates the power of a native app.
Maintenance and development is relatively simple. Developers can share as much as 75% of the code across platforms, which shortens the development cycle.
The downside is that Xamarin isn’t suitable for graphics-intense applications. It also demands a much higher skill level, has limited access to OS libraries, and is slow to support new platform updates. Finding a developer with the experience needed to build good apps with Xamarin may be difficult.
However, the tradeoff for that speed is flexibility and performance. Though it bills itself as a freemium solution the free version is too unstable to use. Developers need to buy upgrades for it to work. Some developers have criticized .
Second, PhoneGap has powerful APIs for accessing device functions. It can access features other basic hybrid frameworks can’t, such as the address book, camera, accelerometer, and more. The enthusiastic PhoneGap community continues to offer support in the form of tutorials, enhancements, and shared case studies for fine-tuning its use.
PhoneGap doesn’t handle background threads well, though. Applications that rely on background threads, particularly those that are analyzing user input as it’s entered, won’t run smoothly. In general the performance surpasses most hybrid frameworks, but performance can still be a little lacking as the app’s complexity grows.
While PhoneGap can approximate a native feel many developers have complained about it taking longer to fine-tune. There’s less code-sharing than solutions like Xamarin, which makes for slightly slower development cycles.
On the other hand, Ionic can be slow compared to PhoneGap or Xamarin. In-app execution can lag. Structuring navigation is generally considered unnecessarily complex; the UI router can be hard to maneuver.
Users note that the UI has a distinctly iOS feel. This can be off-putting to those who dislike the iOS format (namely, everyone except iOS users).
Different frameworks work for different solutions. Xamarin best approximates the look and feel of a native app but has high technical expertise requirements. PhoneGap is open source and offers a near-native experience, but has some situational performance limitations. Ionic has a large library of plugins and lots of support, but leans towards one UI style. Appcelerator Titanium has lots of performance flaws but is perfect for rapid prototyping.
For more info on this subject, check out our blog post, Should You Choose Titanium, Xamarin, or Native for Your Next Mobile Application.
If you’re looking for other ways to build a mobile app and going the hybrid route is not one of them, you might want to consider creating a mobile web or native app instead.