What is the difference between apache cordova and ionic?
- Ionic vs Cordova: First of all I would recommend starting with Ionic because its better to have with some UI widgets to start with rather than a blank screen (Cordova) and to start from scratch.
- Hybrid Apps: These are not Native apps but rather use WebViews (browser built-in your app) to display your views (coded in HTML) and fetch user input and then use JavaScript (or Angular etc) to process them. Although they are not native but they have access to some of the Native APIs i.e. to take picture using camera, record video/audio etc.
- Suggestion: If you want to develop native apps using a single code base use React Native, which uses HTML, JSX (JavaScript + XML) and CSS.
PhoneGap is the base, cordova is from Apache which acquired Phonegap. They both are nearly the same now, and ionic is a framework to enhance frontend UI
- Apache Cordova is a community project, letting you build mobile apps for various mobile platforms with one unique code base, as you develop your app with web technologies (HTML5, Javascript and CSS3) instead of relying on platform-specific (native) APIs like those of Android, iOS, or Windows Phone.
- Phonegap is a version of Cordova but it's an Adobe product.
- Ionic Framework is a set of css classes and a library of Javascript directives and modules, built on top of Cordova, with AngularJS.
Here is an extract from Apache Cordova Wikipedia page, but that is true for PhoneGap and Ionic as well:
The resulting applications are said to be hybrid, meaning that they are neither truly native mobile application (because all layout rendering is done via Web views instead of the platform's native UI framework) nor purely Web-based (because they are not just Web apps, but are packaged as apps for distribution and have access to native device APIs).
All three projects are free and open-source.