I not a huge fan of Cordova or its derivatives: PhoneGap and Ionic. Whenever possible, I prefer to build entirely native applications. Swift is already the best thing since sliced bread, and Go for Android is coming along nicely. Hell, if you really want to stick with one language, RubyMotion is kick ass! However, I had an application recently that was already a responsive angular app and needed to be packaged for mobile. What I quickly found is that I actually don’t hate Cordova and Ionic quite as much as I initially expected, and I also have come across a few caveats for getting started that I wanted to share…
Don’t install everything under the sun
My buddy did this last night. 50 gigs later he was out of space on his hard drive. I think the best solution (assuming you’re working with Mac) is to brew install and then run Android SDK Manager:
brew install android-sdk . /usr/local/Cellar/android-sdk/24.2/bin/android
Here is what I installed to get an ionic app to build and run on both simulator and attached device:
I believe it started out as an independent effort to standardize and make cordova plugins into proper ionic plugins. Since then, it seems that ionic has embraced the toolset, which is great! ngCordova makes it incredibly easy to use the most common cordova plugins in your application, and by reading through the source, you will get a feel for writing your own wrapper should you need it.