BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles Can Cordova Fit Your Target Industry?

Can Cordova Fit Your Target Industry?

Bookmarks

Key Takeaways

  • Cordova is an alluring option for mobile app development, promising fast delivery to market at a reasonable price.
  • Most complex apps created with Cordova, though, turn out to be unsuccessful and disappoint users, who quickly abandon them due to underperformance.
  • To reduce the risk of failure, it is important to understand which kinds of apps are best suited for Cordova development.
  • Cordova is not an option for healthcare apps, games, and financial apps; it can work reasonably well for business, education, and messaging apps; and it is best for lifestyle, adversiting, and news apps.

Cordova is an alluring option for mobile app development, promising fast delivery to market at a reasonable price. What’s more, it’s a great opportunity for many web developers to reuse their existing skills in creating apps without having to learn Java or Objective-C.

What’s the catch? Developed with HTML, CSS and JS technologies alone, Cordova (or, if we talk about its identical yet proprietary version, PhoneGap) apps will be very limited in their functionality (this article talks about how and why it happens in more detail). Although Java, Objective-C and C++ experts know plugin tricks that help to overcome limitations, a large part of the Cordova community has to make the best of what they know and have.

A good workaround then is simply to know where Cordova alone can fit in, and where it will surely fail. This sounds like an obvious tip, but some developers still push Cordova to its limits. Not only has this stubbornness resulted in unsuccessful app projects (like this one, or a number of cases mentioned here) but it has also casted a shadow on Cordova as a development tool, as more and more mobile engineers recommend against using it.

What smudged Cordova’s record

AppBrain statistics show that Cordova, with all its limitations, is persistently used in development of complex apps for quality-demanding industries. In other words, developers are simply making fish climb trees, as they use Cordova for projects it wasn’t meant for from the very start. While Cordova takes up only 1.40% of U.S. top-500 apps, its installs are even lower - mere 0.49% - which only proves that the results of the developers’ attempts aren’t satisfying the users in the least.

The low adoption figure also hints at the fact that most of complex apps created with Cordova turn out to be unsuccessful and disappoint users, who quickly abandon them due to underperformance. Then, most likely, developers blame it all on the tool instead of accepting that they asked too much from it. Mere frustrations of the developers, wanting Cordova to be not only cheap and fast, but also almighty to the extent it never claimed to be – this is what should have created Cordova’s reputation.

To set the record straight, both future app’s requirements and the possibilities of the development platform should be questioned and analyzed in detail prior to a project start. Basically, when it comes to considering Cordova as a major development tool, making sure it is actually compatible with your needs should take priority.

Cordova is not an option for…

Healthcare apps

In most cases, complex medical apps heavily rely on sensors – either those already present in a device (gyroscope,accelerometer, etc.) or in connectable sensor-equipped gadgets, like wristwatches, headbands or chest straps. With the help of these sensors, mobile apps measure patients’ blood pressure, heart rate or steps.

For any of these apps to work properly, mobile software should have a direct access to hardware, so that it could actually get data from sensors. And that is something Cordova can afford only with the help of plugins. Basic plugins for in-device sensors are already offered by the community and are quite stable, but others should be customized or developed from scratch with the help of extra programming knowledge.

Games

High-quality graphics, smooth animation and precise push-back – all of these are out of Cordova’s league entirely. So when it comes to games, a Cordova app will end up mediocre, with or without plugins. The best developers can do is to create a very simple Snake-like game with a catchy UI designed in a UI framework, such as Onsen or Ioniс (both can be easily used on top of Cordova). Another option is to go for primitive pixel graphics – like BrowserQuest does. Yet frequent lags and sudden crashes will be quite common in such a game, and they certainly won’t build much of a user experience.

Financial apps

As mobile banking apps let users remotely access and manipulate their bank accounts, these apps should provide the highest level of security possible. Cordova can’t guarantee that, since its HTML-, CSS- or JavaScript-based code combined with the WebView technology leave apps vulnerable to XSS attacks. This means there is a risk of a banking app receiving malicious code that will freely access app’s data and tamper with it. The use of security plugins is also a double-edged sword in Cordova: any plugin would create a breach in the WebView that contains a Cordova app, and hence will compromise its security as such.

Cordova can be quite good for…

Business apps

With enterprise apps, it all boils down to the type of an app and its specific purpose. Cordova can excel at apps for salespeople to use in the field (as described in this telecom sales app concept) or at on-boarding for newcomers to get acquainted with a list of products, services and guidelines of their company. The platform is also suitable for delivering task instruction manuals, HR employee surveys and contract forms, as the basic processes in these apps don’t require high FPS and hardware access to run without a hitch.

However, if contained in a Cordova app, a contract can’t be signed electronically without special plugins for touch input and manuals can’t be interactive due to graphics FPS limitations. Product catalogues can’t be too complex, since simply loading all the data into Cordova’s WebView will take an app too much time. For this reason, their structure and view modes should be planned out carefully.

Educational apps

Mobile apps for educational purposes have a good chance to be a success when built on Cordova. Used as a supplement to the main material at educational facilities or as corporate training guidance at workplaces, these apps can deliver efficient performance even without additional plugins. One of the use cases is the RNAO (Registered Nurses' Association of Ontario) Nursing Best Practice Guidelines app, which is a handy reference tool for nurses in practice, developed on Cordova for Android, iOS, and Blackberry.

As Cordova speeds up the development process, additional time can be spent more wisely on: thorough testing, debugging or tailoring UI/UX to the needs of a particular audience. For example, instead of spending efforts on delivering a simple multiplication table app for kids on Android and iOS natively, developers can create an attractive and colorful interface that will make junior school students want to open the app on a whim and refresh the material.

Yet, when it comes to voice input and interactive manuals, which can be quite useful features for language learning or industrial training apps, Cordova hits the wall yet again until crammed with natively-written plugins.

Messengers and social media apps

World-famous messenger Line was developed on Cordova mainly because its developers, NHN Japan, needed to finish the cross-platform solution in the shortest time possible due to the extreme situation in the country after the earthquake. As they aimed to release the app on the global market, Line was enhanced with plugins that expanded its functionality and brought in VoIP, video conferences and even social media features. Still, many users report recurrent lagging behavior in the app, which only hints that being extremely feature-rich, Line is too much for Cordova to handle.

Nevertheless, the platform can be a suitable choice for developing messengers and social media apps that target quite a narrow audience and have non-complex functionality. Apps like FanReact and Hockey community, for instance, offer timelines, give personal space to all users’ accounts and allow text and media exchange. Overall, they can provide decent performance without plugins, because they aren’t overloaded with features and still carry out their mission.

Cordova works best for…

Lifestyle apps

Many lifestyle apps take forms of calculators and notification tools that can be effectively developed on Cordova. Basically, these apps may stay on mobile devices unnoticed until they have to send their user a pre-set reminder or until the user needs to input some information to be stored or calculated on their own. Examples of such apps are those that help people control their hydration rate, sugar/calorie intake or even their productivity level, like they can do with the GetItDone Cordova-based task manager app.

Other types of lifestyle apps include workout timers and manuals (such as BitTimer and Sworkit), databases of medical experts to consult with (HeatlhTap) as well as lists with healthy lifestyle tips (like those offered in a series of apps developed by Beconfident Skin Care AB).

Event and advertising apps

‘Events’ are the second most-popular category of Cordova-based apps on AppBrain, and it’s easy to see why. With events being temporary, there’s no need of large financial and time investments, which will be inevitable in case of native app development. Meanwhile, Cordova lets businesses get a functional advertising app in a matter of days and for the cheapest price on the development market.

What allows advertising apps to be smoothly developed on Cordova is their being rather simple and not providing advanced features. There is no problem for such an app to introduce a customer to some promotional information on its timeline, to allow users to share offers via social apps, or to let them use the app as an on-screen promotional card. When used for large campaigns, advertising apps can also be integrated with the company’s website and have the information about special offers automatically updated in correlation with the newest information online.

News, books and magazines

Cordova’s environment can be just as cozy for information viewing as a common browser is. The platform takes advantage of the native and invisible WebView browser, where the app itself is contained, and is capable to effortlessly display all kinds of text and static image data. This way, Cordova is a stable foundation for reader apps to scroll website news or read books, online newspapers and magazines.

Addressing incompatibility

When there are doubts regarding Cordova’s ability to cope with a planned feature of a particular app, it’s better to address them at the very beginning, rather than to ignore them.

If an app of questionable complexity is yet in planning, it will be reasonable to consider a development platform other than Cordova. Other tools will require specific mobile development skills and won’t be as fast and cheap as Cordova development is. However, going for a more powerful cross-platform tool from the very start is still faster and cheaper than a ’double investment’. Instead of taking the risk to create a feature-rich app in Cordova only to find out it doesn’t meet your requirements after all and then re-launching the project on another platform, it makes perfect sense to develop an app with Xamarin or React JS right away.

Re-launch may not always be the only possible option though. If a Cordova app has already been delivered and lacks responsiveness or has limited hardware access, enhancing it with a limited number of plugins may do the job. Some plugins that offer fundamental features, such as camera access, have already been developed and are available for Cordova community’s free use.

Still, some features will need to have their plugins customized or developed from scratch. In this case, outsourcing native or C++ plugin development will be cheaper than development of an entire mobile app from the start. The key point is not to think of Cordova plugins as silver bullets. One or two of them can offer somewhat more power to the app, but a large number of plugins will have negative side-effects on both performance and security, which is a delicate subject in hybrid apps.

Don’t bite off more than you can chew

Persistent development for quality-demanding industries – that is the main reason why Cordova gained poor reputation and its apps faced low adoption rates on the market. The situation can change if Cordova will find its industrial and functional niches. And for that, developers should understand the boundaries of both Cordova and their own skills.

About the Author

Anastasia Yaskevich is an enterprise mobility researcher at ScienceSoft, a software development and consulting company headquartered in McKinney, Texas. She started out in IT with research on cloud computing and UI design, and now writes on mobile technology and mobile design trends.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • nice paper

    by Zhou Jianhui,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Nice Paper. It help me understand which types of project can use Cordova

  • Very Informative Article

    by Vishal Bhatia,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Developing apps by using PhoneGap app development platform not only saves lots of money, but also time for the developer and the entire development industry as a whole. This technology enables developers to make cross-platform and highly interactive applications which would work seamlessly on all platforms just like their native apps would.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT