Caution / Next Steps
When you are developing an app to be consumed on a mobile device, it should go without saying that the best environment for testing is going to be that target device itself. Some things to specifically note and keep in mind while testing with the browser platform are listed below:
The desktop browsers often differ in the support for certain features and APIs versus the mobile browsers, and between platforms. You should refer to the Can I Use site for specific details of which features your apps use and what is supported.
The browser does not have a soft keyboard to test with so you cannot test the effect it might have on the UI/screen layout when using form controls/input fields.
- Certain devices may support hardware features that cannot be tested in a desktop browser.
- Apache Cordova Plugins expose native features that can't always be mocked properly since they are native to a platform.
- The application is being served from an IP address rather than a filesystem affecting the way security is handled.
- Performance testing for things like low battery, poor network coverage, low available memory and interrupt testing for situations like incoming/outgoing calls, texts, notifications etc cannot be properly tested in the browser.
Development/Testing Options:
Use the browser to develop as much of your app as possible with the tooling you already know and use daily while being aware of the limitations noted above.
Use the PhoneGap Developer App on a physical device to pair and test your app being served from either the PhoneGap CLI or the PhoneGap Desktop App in addition to the browser platform. See the Getting Started Guides for more details.
Get a compiled version of your app using the PhoneGap/Cordova CLI or PhoneGap Build (to avoid having to set up platform SDK's) and test on the platforms you're targeting with a physical device or simulator. Apple provides the iOS simulator as part of Xcode, and Google offers the Android Emulator as part of the Android developer tools. There's also the Genymotion emulator which can be used to test your Android apps and often runs faster than the emulator packaged in the Android tooling.
Leverage mobile testing and automation services (Sauce Labs, Appium etc) and mobile app intelligence services (Apteligent, Crashlytics) to provide crash test reporting and other analytics to ensure your app is providing the best user experience once delivered.