How to Select App Development Frameworks: Native vs. Web vs. Hybrid
When selecting frameworks with which to build apps, the biggest consideration is what kind of apps organizations plan to deliver: native, Web, or hybrid.
Join the DZone community and get the full member experience.Join For Free
As companies start to build their own mobile apps, they'll have to choose app development frameworks.
It's an important first step to take an existing process and make it accessible from a mobile device. But apps become transformative when they take advantage of the rich features a mobile device can provide, such as location-based services, push notifications and seamless data sharing. When selecting frameworks with which to build these apps, the biggest consideration is what kind of apps organizations plan to deliver: native, Web, or hybrid.
Native App Development
Building a native application always results in the best user experience. Mobile operating system makers invest heavily in their own development tools. They want to make sure that the apps developers write in their native languages can take advantage of all the latest OS features and perform at their best.
Companies that have no prior experience with mobile development may be hesitant to have their developers learn separate languages to write apps for both Apple iOS and Google Android, however, because of the extra effort required to support multiple OSes. In situations where a company is standardized on one OS or requires tight hardware integration -- such as with embedded devices, kiosks, point of sale and other special company-issued devices -- it may be more important to develop native applications.
Browser-based Web Apps
They're attractive, but browser-based apps have many drawbacks. It's only possible to send users push notifications with a few specific browsers, and app logins and sessions can expire quickly. Plus, Web apps can't take advantage of all the latest OS features -- some of the most unique and important traits that make mobile apps so valuable.
For all these reasons, mobile browser-based Web apps have limited use cases in the enterprise.Another problem: Web apps are just less convenient than native apps. Users have to remember how to navigate them, dig into bookmark menus to find them or know how to place Web bookmarks on their home screens. IT administrators can push these bookmarks to devices with mobile device management, but they still require different management processes than other apps.
Hybrid apps are Web apps that run inside of a native app shell. Conceptually, this approach brings the best of both worlds. Developers can write the core logic of the app in a Web-based language that's portable across multiple mobile platforms, and the shell can use native code to interact with the device's unique features. As a result, IT can manage and deploy a hybrid app just like any other native app.
Hybrid apps can be as simple as a Web page embedded inside a native app, or they can be much more complex. Many app development frameworks can take apps developers write in Web-based or other languages and compile them into complete native apps for different mobile OS's. Some app development frameworks provide only the user interface for hybrid apps, using native code and all the OS-appropriate design elements.
The hybrid app concept is popular but can have drawbacks as well. Using one codebase for multiple OSes means that developers have to make some compromises. For example, iOS doesn't have full near-field communications support, and Android and iOS apps have different navigation conventions.
In some cases, with all the extra effort needed to make the "write once, deploy anywhere" concept actually work on multiple platforms, it can be easier to just invest in native app development after all.
Enterprise mobile apps also need to connect to infrastructure components for push notifications, management and security, analytics, data syncing and connections to enterprise databases and feeds.
Some people say hybrid and Web apps are good enough for enterprise apps. Others say user experience is more important these days, and apps should take advantage of the native features a mobile OS offers. But different apps and situations call for different development approaches and considerations.
Opinions expressed by DZone contributors are their own.