If you want to teach your team or students how to program and learn programming languages, you would not want to utilize Phone Gap software. The Phone Gap software creates an easy fix to avoid learning every programming language for mobile devices. This creates a learning curve for some programmers because they no longer need to learn every language to be successful. However, for personal growth, this could pose an issue if programmers need to change jobs and are only capable of programming in web languages and then translate them using Phone Gap. Adobe Phone Gap works wonderfully for what our company uses it for. We use it because we have app launch deadlines and our programmers are invested in the company; therefore, they are aware that output is our goal, not actually learning the various languages, but more making sure the client is happy
Appium works well for well-structured mobile applications test automation that is particularly easy to leverage when different pages of the app use similar building blocks. If it takes time for some content in the app to be rendered, ask your dev team to add progress indicators and ensure they are accessible. That might be more complicated to do with Appium, though, if there's no good contact with Dev team established so you can request accessibility IDs added quickly enough when needed. Appium supports another locator strategies as well though (such as xPath or iOS class chain on iOS) but they wouldn't work as fast so you may get really slow tests.
There are a number of expected methods that are not implemented, yet. With a similar sounding name as Selenium with similar functions, people who are familiar with Selenium try to use methods that appear to be available, but give a "not yet implemented" exception when run.
Documentation can be confusing.
Setup was a difficult process. This may not necessarily be the case once you figure everything out, but the whole figuring it out process was difficult and I ran into many, many problems when I first started.
I would like to give 9/10 rating to Appium because of it can easily integrate with popular frameworks and CI/CD tools, as well as it is reliable, flexible and easy to use. The setup can bit complex in initial step, but once on configured it's very easy to use and enables stable and scalable mobile automation for real and cloud devices.
We selected Cordova since it provides ease of doing business and ease of use. The best thing about Cordova is that you can code once and run it on multiple platforms. Cordova provides add-ons that connect your code with native features of various mobile platforms. And you do not need to learn anything new since you can use your javascript skills
Most of mobile testing tools which are available in the market are paid license tools. But Appium is Open source mobile testing tool. We can create customised automation framework using Appium. It also supports various languages such as Java, Javascript etc. And also supports various operating systems such as Android, IOS etc. We can easily integrate Appium frameworks with CI/CD [Jenkins, Git etc].
Development timeline for making Cordova apps targeting multiple platform is lower than developing individual native apps for each platform.
Its easy to learn and set up. Coming from a native app development background, the learning curve for me was fairly small to get started with my hybrid app.