Hybrid mobile apps are applications that are installed on a device, just like any other app. What differentiates them is the fact they possess elements from native apps, applications developed for a specific platform such as iOS or Android, with elements from web apps, websites that act like apps but are not installed on a device but are accessed on the Internet via a browser.
Hybrid apps are deployed in a native container that uses a mobile WebView object. When the app is used, this object displays web content thanks to the use of web technologies (CSS, JavaScript, HTML, HTML5).
It is in fact displaying web pages from a desktop website that are adapted to a WebView display. The web content can either be displayed as soon as the app is opened or for certain parts of the app only i.e. for the purchase funnel.
In order to access a device's hardware features (accelerometer, camera, contacts…) for which the native apps are installed, it is possible to include native elements of each platform’s user interfaces (iOS, Android): native code will be used to access the specific features in order to create a seamless user experience. Hybrid apps can also rely on platforms that offer JavaScript APIs if those functionalities are called within a WebView.
Hybrid apps offer a certain number of advantages:
Testing a hybrid app can be done in a similar way to a web app. For each test case, a script will be written and at first glance the test phases seem to be simplified.
Learn more with our Automated Testing Guide
Complexity arises when the application also contains native code, which is frequently the case. Each test case will consequently have multiple test scripts, each written in the native language of the platform on which the tests have to be conducted.
One will have to address bugs that can exist individually on platforms, whilst keeping the versions synchronized.
Manual tests for a hybrid app will also differ from the tests conducted on native applications. If this is a given when the testing strategy is written the effort, the type of tests and the steps will have to be adapted to address the graphical aspects thoroughly.
- Calling a WebView introduces an additional risk to the app with a fragmentation notion linked to calling a page in a container: one will have to check that the WebView integration is properly done (no double header or menu for example) but also that there is a proper adaptation to the devices’ screen resolutions (which implies that the scope of the devices that need to be tested will have to be widened).
- Functional tests will also have to be more thorough, particularly on click zones for example or on Call to Actions (functioning, size, …).
- Mobile behavior could also have an impact (no signal, data loss, change of orientation, interruptions) on the web app component. Therefore, special attention should be paid.
- Finally one will have to look into the native-WebView interactions with regards to the account / session dimensions. For example, when a user logs into the native part of the app, a seamless WebView experience is required (no need to reconnect for example).
The challenge with manual testing will therefore be to validate that the user experience is smooth. The choice between a native app and a hybrid app is purely technical and has to do with an internal and organizational decision only. It shouldn’t have any impact or limitation for the users.
Before deciding to develop a hybrid app, an organization will have to take into account a certain number of factors in order to launch a digital product that brings its future users full satisfaction and the expected business results.
The following questions will help choosing an adequate development strategy for the project to succeed.
…whilst still having the advantages and limitations of hybrid apps in mind.
To learn more about QA Testing, download our white paper, How and Why to Test in the Digital Transformation Era.