In our previous blogs, we have discussed the Key Considerations for mobile application development and the Factors influencing the choice of technology stack as well as the various implementation options. In this blog, we would like to present a primer on Hybrid Application Development, which is increasingly emerging as the preferred implementation choice for mobile applications.
As we have outlined in our earlier blogs, it is appropriate to opt for Hybrid mobile application development under the following scenarios:
- When the application has to be deployed across multiple mobile platforms and devices
- The application has to leverage the native device features such as GPS, Camera, Accelerometer etc.
- You would like to optimize your development and maintenance costs and target multiple platforms (code portability) with a single code base
- When time to market is a constraint; it is usually much faster to develop and deploy Hybrid apps, compared to Native apps
Quick wins vs Tradeoffs of Hybrid Apps
One must be aware of the tradeoffs as well as the quick wins with Hybrid apps and factor them into the architectural design considerations. While user experience and performance are better with a native app, code portability for deployment on multiple platforms, faster time-to-market, lower development and support costs, make Hybrid mobile applications an equally attractive option.
Architecture of Hybrid mobile applications
Hybrid applications will have a multi-tiered architecture comprising of the presentation, business, and data layers.
- Presentation Layer or the front end comprises of the user interface and the functionality responsible for facilitating user interaction. Additional components link to the core business logic within the business layer.
- Business Layer or the service layer is responsible for implementing the core functionality and business logic of the application. Typically, this layer has an application facade that acts as a generic interface for the business logic components by combining multiple business operations into a single operation.
- Data Layer will comprise of the logic required to access the stored data. For a hybrid application, the data would be stored remotely and the processes for communication between the layers will need to handled appropriately. The data and service layers together are part of the backend of the application.
The ideal architecture of any mobile application is largely dependent on the enterprise needs and the pain points the application intends to solve. Some universal considerations such as caching, communication, security, and power management must be factored into the design of the Hybrid app. Using a robust hybrid application development framework enables multi-platform support, lowers production costs and facilitates usage of the device’s native features through plugins.
Once the application is developed, there are multiple frameworks available for packaging the code into deployable apps. PhoneGap and Cordova are two popular frameworks for generating distributable cross-platform hybrid apps. These frameworks enable you to build apps for iOS, Android and other popular mobile platforms through powerful APIs. The hybrid apps can be deployed either through a cloud-based or an on-premise setup.
Cloud-based deployment is considered a no-frills way for deploying a mobile application. Popular cloud services such as Microsoft Azure, Google Cloud, and Amazon Web Services offer enterprise-friendly deployment solutions that are scalable, and secure. ‘Pay-as-you-use’ makes it very very attractive for enterprises to opt for a cloud-based app deployment, as they can completely avoid the need to invest in their own deployment infrastructure.
On-premise deployment is a preferred mode when one has to deploy an app accessed only by internal users, or when there are concerns with security, and compliance. But one must be aware of the need for investment in physical infrastructure to support the on-premise deployment, which makes it somewhat expensive from an initial cost perspective.
Ease of development and deployment coupled with the ability to ‘build once – deploy everywhere’ has made Hybrid the preferred implementation choice for mobile applications.