Need advice about which tool to choose?Ask the StackShare community!

Apache Cordova

706
893
+ 1
218
Capacitor

255
323
+ 1
2
Add tool

Apache Cordova vs Capacitor: What are the differences?

Apache Cordova and Capacitor are both frameworks for building cross-platform mobile applications using web technologies. Let's explore the key differences between the two.

  1. Cross-platform support: Apache Cordova is primarily focused on providing cross-platform support by packaging web applications into native mobile apps using WebView. It allows developers to write code once and deploy it across multiple platforms like iOS, Android, and Windows Phone. Capacitor, on the other hand, is built on top of Cordova but provides additional cross-platform support for features like InAppBrowser and Camera that are not available in Cordova by default.

  2. Plugin architecture: Cordova follows a plugin-based architecture which allows developers to extend the functionality of their applications by adding plugins. These plugins provide access to native device features that are not available through web technologies alone. Capacitor also follows a similar plugin architecture but with a different approach. Instead of relying on Cordova plugins, Capacitor uses its own set of plugins which are built specifically for Capacitor and offer better performance and reliability.

  3. Modern development workflow: Capacitor offers a more modern development workflow compared to Cordova. It allows developers to write modern TypeScript or ECMAScript 6+ code, use modern JavaScript frameworks like React or Angular, and leverage modern tooling such as webpack or Babel. Cordova, on the other hand, has a more mature ecosystem but is based on older web technologies and may require additional setup or configuration for modern development practices.

  4. Native API access: Capacitor provides direct access to Native APIs, allowing developers to call native functionality directly from their JavaScript code. This eliminates the need for plugins in many cases and provides a more seamless integration with native platform features. Cordova, on the other hand, relies heavily on plugins for accessing native functionality, which may introduce some overhead and dependencies on third-party plugins.

  5. Community and ecosystem: Cordova has been around for a longer time and has a larger community and ecosystem compared to Capacitor. This means that Cordova has a vast number of plugins and resources available for developers, making it easier to find solutions and add new features to applications. Capacitor, being relatively newer, has a smaller but growing community and may have fewer resources available compared to Cordova.

  6. Migration from Cordova to Capacitor: Capacitor provides a migration tool that allows developers to easily migrate their existing Cordova projects to Capacitor. This makes it easier for developers to switch from Cordova to Capacitor without having to rewrite their code from scratch. Cordova, on the other hand, does not provide any official migration path to Capacitor, which may require developers to manually refactor their code when transitioning.

In summary, Apache Cordova is a well-established choice for cross-platform development, while Capacitor, with its focus on native features and performance, provides a modern alternative for building mobile applications using web technologies.

Decisions about Apache Cordova and Capacitor
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 2 upvotes · 413.7K views

I've done some Hybrid Mobile apps with both technologies Apache Cordova and React Native and described my experience in my blog.

In a few words, I would suggest to use each technology in accordance what what is your current code base and what do you want to achieve.

React Native is a great option if you need that extra edge in performance with multi-threading and native UI rendering. Or you already have a web app based on React which you want to port to mobile.

On the other hand, if you have an existing web application code and you want to reuse some or all, including the ability to use web third-party libraries, then Cordova is the best option.

See more
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 2 upvotes · 113.7K views
What is Proguard?

ProGuard is the most popular optimizer for Java bytecode. It makes your Java and Android applications up to 90% smaller and up to 20% faster. ProGuard also provides minimal protection against reverse engineering by obfuscating the names of classes, fields and methods.

How to use it in Cordova app?

I didn't find any plugins for it. So I've implemented it by myself and shared it on GitHub.

Feel free to use!

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Apache Cordova
Pros of Capacitor
  • 48
    Lots of plugins
  • 35
    JavaScript
  • 26
    Great community
  • 25
    Easy Development
  • 18
    Easy to learn
  • 15
    Cross platform
  • 7
    Open Source
  • 6
    Easy, fast, not buggy in my experience with my code
  • 6
    Lots of descendants; PhoneGap, Ionic, Intel XDA etc
  • 4
    Can use CSS3
  • 4
    Rich HTML 5
  • 4
    Easy debugging
  • 3
    HTML, CSS and JS
  • 3
    Fast and hot reload
  • 3
    Rich css ui
  • 3
    Use what you code in your browser
  • 2
    Need a light system
  • 2
    Native Web Technologies
  • 2
    Without extra tooling needed
  • 2
    One code base everywhere
  • 1
    Full compatible with ios
  • 1
    Modern

Sign up to add or upvote prosMake informed product decisions

Cons of Apache Cordova
Cons of Capacitor
  • 2
    No native performance
  • 1
    Hard to install
  • 0
    Hard to install
    Be the first to leave a con

    Sign up to add or upvote consMake informed product decisions

    What is Apache Cordova?

    Apache Cordova is a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a smartphone app to be developed with just HTML, CSS, and JavaScript.

    What is Capacitor?

    Invoke Native SDKs on iOS, Android, Electron, and the Web with one code base. Optimized for Ionic Framework apps, or use with any web app framework.`

    Need advice about which tool to choose?Ask the StackShare community!

    What companies use Apache Cordova?
    What companies use Capacitor?
    Manage your open source components, licenses, and vulnerabilities
    Learn More

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Apache Cordova?
    What tools integrate with Capacitor?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    Blog Posts

    Vue.jsSpring BootUnity+7
    2
    1260
    What are some alternatives to Apache Cordova and Capacitor?
    Xamarin
    Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.
    PhoneGap
    PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status.
    React Native
    React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
    Electron
    With Electron, creating a desktop application for your company or idea is easy. Initially developed for GitHub's Atom editor, Electron has since been used to create applications by companies like Microsoft, Facebook, Slack, and Docker. The Electron framework lets you write cross-platform desktop applications using JavaScript, HTML and CSS. It is based on io.js and Chromium and is used in the Atom editor.
    Ionic
    Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.
    See all alternatives